<2021SC@SDUSC> 开源游戏引擎 Overload 代码模块分析 之 OvGame(八)—— 终篇总结

article/2025/10/21 15:44:30

2021SC@SDUSC
开源游戏引擎 Overload 代码模块分析 之 OvGame(八)—— 终篇总结

目录

  • 前言
  • 回顾
    • 1、.rc
    • 2、Utils
    • 3、Debug
    • 4、Core
    • 5、Main.cpp
  • 总结

前言

本篇是开源游戏引擎 Overload 模块 OvGame 的最后一篇了。本篇,笔者将对 OvGame 做一个简单的总结

另外,想先大致了解 Overload 可前往这篇文章,想看其他相关文章请前往笔者的 Overload 专栏自主选择。

回顾

OvGame 模块是一个执行文件,其作用是 调用 Overload 的库及资源,实现游戏的运行展示。它包含了三个文件夹:Core、Debug、Utils,以及一个 Main.cpp 主函数;其次,它还使用了 .rc 文件 以及 resource.h 文件,现在让我们一一简单回顾一下吧(已附上链接):

1、.rc

.rc 文件本质是一个 .txt (文本)文件,一般配合 .h 文件(resource.h)使用;作为一个资源集合包,能引入各种文件,例如脚本、位图、窗口、图标等等。

详见:<2021SC@SDUSC> 开源游戏引擎 Overload 代码模块分析 之 OvGame (一)—— 概况与 .rc 文件

2、Utils

核心是一个 FPSCounter 类,作用是生成一个显示帧速率的面板;因此,也公有继承了许多 Overload::OvUI::Panels 下的类。

详见:<2021SC@SDUSC> 开源游戏引擎 Overload 代码模块分析 之 OvGame(四)—— Utils(终)大纲及 FPSCounter & Debug(上)大纲及 DriverInfo

3、Debug

核心是三个类:DriverInfo、FrameInfo、GameProfiler

DriverInfo 类负责生成显示 Driver Information,驱动程序(硬件和软件)信息,的面板;同样也公有继承了许多 Overload::OvUI::Panels 下的类。而该类显示信息的方式核心是调用 glfw 的 glGetString(),能根据给出名称来获得所需的信息。

详见:<2021SC@SDUSC> 开源游戏引擎 Overload 代码模块分析 之 OvGame(四)—— Utils(终)大纲及 FPSCounter & Debug(上)大纲及 DriverInfo

FrameInfo 类可以生成 Frame Information,框架信息,的展示面板,也继承了 OvUI 的 PanelUndecorated 类;该类是直接读取结构体 FrameInfo 中的数据,显示出三角形个数、批次数、实例数的信息。

GameProfiler 类可以生成 Profiling Information,配置文件信息,的面板;该类具体展示的是一个操作的 “Action | Total duration | Frame Duration | Frame load | Total calls” 的内容。

详见:<2021SC@SDUSC> 开源游戏引擎 Overload 代码模块分析 之 OvGame(五)—— Debug(下)FrameInfo & GameProfiler

4、Core

核心是四个类:Application、Context、Game、GameRenderer;它们之间是不独立,层层调用(包括了上文的 Utils 和 Debug)关系。

首先,最底层的 Context 类,负责处理引擎的环境设置。该类包含了大量的公有 unique_ptr 智能指针,这些指针指向了 Overload 的各个重要模块,从而实现集合调度;因此,该类能够设置包括:资产路径、基础配置、窗口、图形环境、音频、物理引擎、服务、脚本等。

详见:<2021SC@SDUSC> 开源游戏引擎 Overload 代码模块分析 之 OvGame(二)—— Core(一)大纲与 Context

其次,叠上一层 GameRenderer 类,引入上述的 Context 类,负责游戏界面的渲染工作;使用的 OpenGL 接口,实现场景渲染、引擎 UBO(OpenGL 缓冲对象)设置、更新光照 SSBO(GLSL 缓冲对象)等。

详见:<2021SC@SDUSC> 开源游戏引擎 Overload 代码模块分析 之 OvGame(三)—— Core(二)GameRenderer

而后,再叠上一层 Game 类,引入了上述的 Context 类与 GameRenderer 类,以及 Utils 与 Debug 文件;该类负责处理游戏逻辑,其重要的操作是:从 PreUpdate() 启用输入和事件、经过 Update() 更新、到 PostUpdate() 结束输入输出缓存的一套逻辑更新(UBO、渲染器等等)。

详见:<2021SC@SDUSC> 开源游戏引擎 Overload 代码模块分析 之 OvGame(六)—— Core(三)Game

最后,顶层的 Application 类,引入了上述的 Context 类与 Game 类,是 OvGame 模块的接口点;因此,该类的核心就是调用 Context 和 Game 等的内置变量与函数,实现运行应用

详见:<2021SC@SDUSC> 开源游戏引擎 Overload 代码模块分析 之 OvGame(七)—— Core(四)Application & Main.cpp

5、Main.cpp

核心是利用条件编译命令,选择函数名为 int 型 main() 或 INT(重定义前即 int)型 WinMain(),实现总体调控是否进入 Debug 模式;函数体功能则是运行应用程序与中止引擎程序

详见:<2021SC@SDUSC> 开源游戏引擎 Overload 代码模块分析 之 OvGame(七)—— Core(四)Application & Main.cpp

总结

通过回顾,我们可以发现 OvGame 的一个共同特点:层层引用,封装功能,集合调度。由此可见,对于一个应用程序来说,功能之间的独立性是非常重要的,这样既能使代码简明、逻辑清晰,又能使代码拥有很强的泛化能力,即可以之间用于其他项目,这是我们在以后的工作项目中可以考虑的编写方法。

clapping


http://chatgpt.dhexx.cn/article/l8rTvbCD.shtml

相关文章

WickedEngine 开源游戏引擎

GitHub:https://github.com/turanszkij/WickedEngine WordEngEnter是开源跨平台C游戏引擎,支持DX12和Vulkan渲染器的光线跟踪和路径跟踪。Wicked engine既可以作为构建自己游戏引擎的底层框架,也可以作为自己的完全功能引擎,它增强…

Storm-Engine 基于 C++ 的开源游戏引擎

Storm Engine 是《海狗》和《加勒比海盗》等游戏背后的游戏引擎,该游戏引擎已在 GPLv3 许可下开源。源代码仅包括游戏引擎,并不包括上述游戏的源代码 支持的游戏 海狗加勒比海盗海盗时代 构建项目 需要安装 Conan 并将其添加到%PATH%环境变量中。此外…

阿里自主研发的互动游戏引擎Hilo开源啦!【内有详解】

Hilo,一套HTML5跨终端的互动游戏解决方案。Hilo支持了多届淘宝&天猫狂欢城等双十一大型和日常营销活动。内核极简,提供包括DOM,Canvas,Flash,WebGL等多种渲染方案,满足全终端和性能要求。支持多种模块范…

R语言基础教程1

文章目录 安装运算符判断函数递归 安装 根据自己的操作系统,下载R语言环境后,安装,并将安装路径加入到环境变量,即可从命令行进入R环境 >rR version 4.2.2 (2022-10-31 ucrt) -- "Innocent and Trusting" Copyrigh…

R、Rstudio的下载和安装教程

R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。RStudio是R的集成开发环境,使用R的UI界面Rstudio进行R编程的学习会更加方便。显然,安装Rstudio之前需要先进行R环境安装。R的下载地址…

R/RStudio详细安装流程

一、需要安装的内容 安装的是最新的R 4.2.2,如果电脑本身安装了旧版本的,需要先卸载,重新按照以下流程安装 安装的位置建议在C盘以外的盘,建一个R的目录,存放所有的安装程序,这样不会占用C系统盘的位置 所有…

MacOS下安装R语言和RStudio教程(超完整)

MacOS下安装R语言和RStudio教程 一、前提二、R语言安装三、RStudio安装到此,安装全部完成。四、可能会遇到的问题:关于macOS:在Mac上安装R-警告消息:使用“ C”设置LC_CTYPE失败错误是:解决办法: 五、在RSt…

R及RStudio软件安装教程

R是比较常用的数据处理和分析软件,该如何安装呢?下面就手把手教给大家。 主要包括两部分软件的安装,一是安装R,提供R环境;二是安装RStudio,可以更方便快捷撰写R代码。 首先先安装R软件 安装网址&#xf…

R语言4.04安装教程

R for Windows是一个免费的用于统计计算和统计制图的优秀工具,是R语言开发工具。它拥有数据存储和处理系统、数组运算工具(其向量、矩阵运算方面功能尤其强大)、完整连贯的统计分析工具、优秀的统计制图等功能。提供的图形界面,可…

R语言安装教程

主要参考的是下面这个链接: https://blog.csdn.net/xhmico/article/details/122443660 以及一个知乎的辅助:R语言安装教程-【图文版】 - 知乎 两者大差不差,只是第一个链接在安装完毕最后,多了java环境变量的配置。 安装完毕后…

【数据分析软件】【R语言】第一课:小白安装教程

R author:zoxiii R 1、下载R软件安装包2、开始安装3、打开 R软件 1、下载R软件安装包 1.1、R官网 1.2、往下翻,找到镜像地址,随意选择一个进去 1.3、选择Windows版本的安装包 1.4、选择第一次安装 1.5、开始下载 2、开始安装 2.1、打…

新概念三英语学习Unit1

本人首先会以新概念三每篇课文进行学习,主要是我英语基础不好,还有每天记得要背单词,考研加油

《新概念英语》有声电子书的实现

对IT工作者来说,除了不断提高技术知识能力之外,也要不断的提高英文能力。例如读写,阅读,口语等。为了更好的学习英语,也为了提高移动开发能力,在业余时间,将《新概念英语》文本与音频做了整理&a…

新概念英语,音频文档

这久在学英语,由于有英语基础,看起来不那么费劲,像提升下自己,最终选择从新概念英语入手,各位朋友感觉如何,有没有更好的学习英语的方法资料给推荐分享下,我们一起成长,一起变样

新概念英语第二册课文电子版_新概念英语第二册音频+视频讲解:Lesson 24

教学视频 Lesson 24 It could be worse不幸中之万幸 First listen and then answer the question.听录音,然后回答以下问题。Had the writers money been stolen? I entered the hotel managers office and sat down.我走进饭店经理的办公室,坐了下来。…

新概念英语第二册课文电子版_新概念英语全四册app下载-新概念英语全四册 v6.1.1103 手机版...

新概念英语全四册app是一款全新的英语学习软件,这里能够为用户提供从第一册到第四册的所有口语、单词、听写、作文等方面的海量题库,方便你随时都可以通过手机在线练习,可以帮助用户在最短的时间提高自己的英语成绩;这里还可进行点…

如何学习新概念英语3

如何学习新概念英语3 1. 学好语法2. 精读 讲故事3. 回译 1. 学好语法 在学习新概念英语三之前,一定要做的一件事,就是打好语法基础,不学语法,新三根本学不下去。 虽然新三也有很多语法练习,但是不够系统,…