序言
秋招结束,我作为一名游戏引擎研发新人,继续开始新的征程。关于这篇文章,是为入职前先深入了解游戏业务,为之后的MINIGAME和工作打下基础。目标是进行2个月的不间断更新,对目标的业务逻辑点进行研究和概述。后续会陆续放出Github连接。
作为一名游戏引擎研发工程师,我给目前的自己定下两个方向:
- 尽可能多的了解游戏业务方向的内容。
- 继续深入引擎架构的学习。
一方面是为了尽可能好的了解游戏目前业务拓宽知识的广度,另一方面不能放弃对自己专业深度的追求。
目标记录
2020.11.25
完成事项:
- 复现球体求交、平面求交、AABB求交功能,实现反射、折射的光线追踪框架功能。
- Unity 背包系统的Inventory功能完善,以及Slot功能实现。
- BIBM会议演讲PPT以及稿件准备。
待完成:
- 继续研究DX12、继续学习引擎知识。
- 研究光子映射算法。
2020.11.22
完成事项:
- 学习了游戏引擎中如何数据结构框架的构建。以及如何使用C++实现委托,并且利用Event来实现多播功能。
- 引擎的初始化顺序以及数学库构建需要的功能。
- Unity背包系统的JSON读取功能以及背包类的逻辑构建。
待完成事项:
- 继续深入学习DX12、引擎研发知识。
- 继续构建Unity的游戏框架。
- 完成多线程离线光线跟踪代码框架。
发现的问题:
- 查询并且了解SSE是如何使用在数学库的构建中的。
- 欧拉角、矩阵、四元数三者之间的关系。
2020.11.20
完成事项:
- 学习引擎的内存管理框架搭建,深入理解了UE3的内存管理算法,使用引擎内部内存管理方式重载全局New达到加速内存分配的目的。
- 学习RTTI在引擎底层的用途以及实现方案。
- 学习SSR算法的基本原理以及实现思路。
- 论文提交学校查重。
目标事项:
- 学习复习一下FFT的数学推导以及其在大规模海浪仿真中的应用。
- 完善多线程的光照追踪框架。
2020.11.16
完成事项:
- 学习DirextX12渲染框架的优化方法。关于渲染数据的封装:帧资源、常量封装、渲染项等。
- 学习引擎底层的内存管理方式。以UE3引擎的内存管理为例,理解了大型系统的内存管理方式。后续需要详细研究一下代码。
- 论文降重至9%。
待完成事项:
- 继续开发背包系统。
- 基于学习到的内存管理设计思路,构造自己引擎的内存管理模块。
2020.11.15
完成事项:
- 使用DirectX12完成了一个Box绘制,在完成对概念的理解的前提下,建立了基于DirectX12的渲染框架。
- 阅读书籍《游戏引擎原理与实践》1-3章。
待完成事项:
- 大论文降重以及修正。
- 深入学习理解DX12。
- 继续开发背包系统。
一些新思路的思考:经过对书籍的阅读,感受到了腾讯引擎开发工程师对引擎的深刻理解。记录一句非常深刻的语句:
游戏引擎的目标是:底层维护分离,具有统一的架构,可以通过底层为不同游戏提供不同的支持。
2020.11.13
完成事项:
- 使用OpenGL完成自定义Bezier曲面的绘制,并Kill掉相关BUG。
- 设计了一种数学方法用来生成NxM的Plane,并自动计算Plane的Normal。这为自定义引擎的自定义物体提供了一种解决方案。
- 阅读并且理解行为树的设计及具体理念。
待完成事项:
- 大论文降重以及修正。
- 深入学习理解DX12。
- 继续开发背包系统。
2020.11.11
目前的事情:
- 构造背包系统的Item类和ItemUI类。
- 图形学部分补充了Bezier部分的知识,目前在实现一个小的Bezier曲面的OpenGL应用,目前在实现流程中。
需要加强的事情:
- DX12的学习仍需要继续加紧。
2020.11.9
经过长期的思考,并为了进一步深入商业游戏逻辑开发。目前对于游戏业务方面的目标:
- 深入了解行为树框架,读懂行为树框架代码逻辑。
- 使用行为树框架开发一个3D Demo。
- 深入了解ECS框架,掌握一个轻量级ECS的代码框架。
- 使用ECS框架开发一个轻量级Demo。
- 了解RPG Backpack的代码框架,并且尝试开发一个轻量级的背包系统。
- 阅读Melee的人物动作框架,尝试将代码与行为树框架进行合并。开发出一个动作流畅的3D行为树框架。
- 快速过一遍《Unity3D游戏开发》,了解游戏业务了解一遍。
为了加深对游戏引擎专业领域的理解,定下如下的目标:
- 学习DX12 API,达到熟练程度。
- 研究C++轻量级UI框架imgui。
- 基于DX12开发一个轻量级游戏引擎,支持现代图形学特性:包含PBR、IBL、DS等。