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

目录

  • 前言
  • 回顾
    • 1、Eventing
    • 2、Filesystem
    • 3、Time
    • 4、Utils
  • 总结
  • 下一个计划

前言

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

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

回顾

OvTools 模块是 工具的集合,共包括了四个相对独立的小模块:Eventing、Filesystem、Time、Utils,现在让我们一一简单回顾一下吧(已附上链接):

1、Eventing

核心是一个 Eventing 类,主要利用 哈希表 作为基础的数据结构,实现 回调命令 的添加、删除、存储等功能。

详见:<2021SC@SDUSC> 开源游戏引擎 Overload 代码模块分析 之 OvTools(一)—— Eventing(包含 OvTools 模块的概述)

2、Filesystem

核心是一个 Filesystem 类 以及外来引入的开源 C++ XML 文件解析库 tinyxml2。

Filesystem 类负责 处理文件,主要利用 哈希表 存储,并能进行读取、修改等等操作;

tinyxml2 可以进行存储简单数据、配置文件、对象序列化等不是很大的数据量操作。

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

3、Time

核心是两个类,Clock 类Date 类

Clock 类负责 时间计算,主要是利用 chrono 文件的 time_point 与 duration 等类 实现计算时间差、记录时长等功能;

Date 类只有一个 GetDateAsString() 函数负责 格式化输出当前日期

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

4、Utils

核心是六个类:PathParser、Random、ReferenceOrValue、SizeConverter、String、SystemCalls。它们大多是独立实现自己的功能。

PathParser 类负责 处理路径,可以修改格式、识别文件功能类型等;

Random 类能 按需生成随机数 等,主要依靠 random 文件的 uniform_int_distribution (均匀分布函数)类

详见:<2021SC@SDUSC> 开源游戏引擎 Overload 代码模块分析 之 OvTools(四)—— Utils(上)

ReferenceOrValue 类能 简化变量声明形式,无需在意是引用还是实值,主要使用到了 variant (变体)类型

SizeConverter 类能 换算字节单位,范围从 Byte 到 Tera Byte;

详见:<2021SC@SDUSC> 开源游戏引擎 Overload 代码模块分析 之 OvTools(五)—— Utils(中)

String 类负责 处理字符串,能替换关键词、生成唯一可用断言等;

SystemCalls 类负责 处理显示文件或对象,主要依靠 Windows.h 的 ShellExecute 系列函数 实现。

详见:<2021SC@SDUSC> 开源游戏引擎 Overload 代码模块分析 之 OvTools(六)—— Utils(下)

总结

通过回顾,我们可以发现这些 “ 工具 ” 的一个共同特点:大量地用到了库函数。由此可见,微软提供的函数库都有着非常强大的功能且方便使用,这值得我们在以后的工作项目中多多利用。此外,这些类实现的都是包括游戏引擎以外,也很常见于其它多个项目的功能,我们虽然不能完完全全记下来,但是能多看多理解,将它们的逻辑和调用的函数融汇于心,便于日后使用。另外整体看下来,命名空间的使用也是非常重要的,避免文件太多的时候会重复定义并出错。

下一个计划

根据原定的计划,分析完了 OvTools,接下来就是 Overload 的另一个重要部分 EXE 的 OvGame;其余模块的探究可以在 2021SC@SDUSC Overload 系列的其余作者中找到。

<2021SC@SDUSC> 开源游戏引擎 Overload 代码模块分析 之 OvTools(七)—— 终篇总结相关推荐

  1. <2021SC@SDUSC>开源游戏引擎Overload代码分析三(OvWindowing结束):OvWindowing——Dialogs

    2021SC@SDUSC Overload代码分析三:OvWindowing--Dialogs 前言 Dialogs 一.FileDialog FileDialog.h FileDialog.cpp ...

  2. <2021SC@SDUSC>【Overload游戏引擎】代码下载及安装配置

    <2021SC@SDUSC>[Overload游戏引擎]代码下载及安装配置 代码下载 安装配置 环境配置 代码编译 注意事项 代码下载 下载网址:https://gitee.com/mir ...

  3. 【Overload游戏引擎】源码分析之十三:OvRendering函数库(十一)

    2021SC@SDUSC 目录 1.Driver 1.1构造函数 1.2InitGlew 1.3GLDebugMessageCallback 2.Renderer 2.1Draw 2.2FetchGL ...

  4. 《Genesis-3D开源游戏引擎-FQA常见问题解答》2014年01月10号版本

    1.Genesis-3D开源游戏引擎主要面向哪些用户人群?有限制吗? 1.我们的引擎没有限制,只要您想了解和使用我们的引擎,就可以加入Genesis-3D的大家庭. 2.我们的主要用户群是各个相关的企 ...

  5. 两大开源游戏引擎Cocos2d-x及OGEngine对比分析

    在近期的全球移动开发者大会上,触控发布了Cocos 3D引擎:而在差不多同时间,以安卓为主的OGEngine也发布了新版本,并宣布将支持跨平台. Cocos2d-x和OGEngine都是当前比较受开发 ...

  6. 《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇:简介及目录》(附上完整工程文件)...

    2019独角兽企业重金招聘Python工程师标准>>> 跑酷游戏制作 游戏类型: 此游戏Demo,为跑酷类游戏. 框架简介: 游戏通常由程序代码和资源组成.如果说模型.贴图.声音之类 ...

  7. 开源游戏引擎_Hatchit:开源游戏引擎

    开源游戏引擎 通过视频游戏,越来越多的学生正在学习开源世界. 像FreeCiv和Minetest这样的开源游戏邀请年轻的玩家来研究源代码,而像SpigotMC这样的项目则使他们能够编写插件来扩展自己喜 ...

  8. HTML5 开源游戏引擎 LayaAir

    LayaAir是HTML5开源引擎 提供Canvas和Webgl同时渲染,如果Webgl不可用,则可自动切换到Canvas模式.引擎为高性能游戏设计,支持AS,TS,JS三种语言开发,一套代码三端齐发 ...

  9. 最常见的开源游戏引擎

    开源即开放源代码(Open Source),游戏引擎好比赛车的引擎,是用于控制所有游戏功能的主程序,从计算碰撞.物理加速系统和物体的相对位置,到接受玩家的输入,以及按照正确的音量输出声音等等.无论是角 ...

  10. 最常用的开源游戏引擎

    开源即开放原代码(Open Source),游戏引擎好比赛车的引擎,是用于控制所有游戏功能的主程序,从计算碰撞.物理加速系统和物体的相对位置,到接受玩家的输入,以及按照正确的音量输出声音等等.无论是角 ...

最新文章

  1. 清华大学微纳脑机接口与机器人实验室:微纳系统机械设计研发工程师招聘
  2. android 之 ListView 里面嵌套 GridView 遇到的问题及其解决方法。
  3. 【渝粤题库】广东开放大学 形成性考核 - 副本 (17)
  4. java类spring加载_spring的加载机制?
  5. 你的押金在这?ofo发文曝光多起贪腐案:总涉案金额达数百万元
  6. 蓝桥杯 ADV-208 算法提高 矩阵相乘
  7. 告别ASP.NET操作EXCEL的烦恼(总结篇)
  8. thoughtworks面试题分析与解答
  9. 通信原理学习笔记4:信道编码、分组码、卷积码、现代信道编码(Turbo码、LDPC码、Polar码)
  10. 世达03017数字万用表的使用
  11. TI DSP处理器中CMD 文件的那些事儿
  12. 读书 - 《许三观卖血记》
  13. MySQL添加新用户、创建数据库、为新用户分配权限、收回权限
  14. 数据库DataBase
  15. Syntax error, annotations are only available if source level is 1.5 or greater
  16. spring boot打包本地idea跑能行,上线jar包跑不行 解决
  17. word中首行缩进、悬挂缩进、左缩进有什么区别?如何操作?
  18. 苹果支付v2 通知(订阅/退款回调通知)
  19. get请求获取不到参数
  20. 重邮计算机专业毕业月薪多少,高校就业质量报告⑥ | 重庆邮电大学2020届毕业生月均收入6800元...

热门文章

  1. vc6.0处理wps文字
  2. 啦啦外卖独立版七牛云配置失败解决方案
  3. 淘淘商城第17讲——引用Dubbo服务
  4. css总常用的font-family
  5. mac版 SimHei添加教程
  6. AE Pixel Sorter 2 for Mac破解教程
  7. 计算机软件系统验收标准,软件相关标准目录.xlsx
  8. 算法设计与分析基础(第3版)
  9. latex 模板使用
  10. 简单制作vbs 对话框表白