2021SC@SDUSC
本学期围绕一个项目,小组对该项目的源码进行分析观察。我们小组选择的是Flax Engine,一款开源的游戏引擎。
在该引擎之前,我只接触过untiy,在下载部署FlaxEngine后发现编辑界面上两者十分相似,这省去了初期的繁琐学习成本。
安装过程:由于该系统是一个较为成熟、完善的开源游戏引擎,因此安装该系统只需要在官网(https://flaxengine.com/ )进行下载安装即可。而其项目代码均在Github上可以看到。
作者已经将项目代码的具体部分划分清晰。
设计开发一款游戏引擎,它需要囊括渲染系统、物理引擎、GUI前端系统、脚本系统等,是个十分复杂并且需要全面考虑的工程。因此,我们需要先从引擎的架构开始分析。
在《游戏引擎架构》一书中,作者Jason Gregory将整体架构整理成这样一张图,从下到上,代表着从游戏系统的最底层到最高层(即直接与用户交互)的结构。而游戏引擎则通过高度封装和复用简化了很多流程,包括初步的渲染系统、基本物理引擎等。
渲染系统主要是对游戏多媒体素材的整合及优化;物理引擎则是创建出一个模拟真实物理环境,在游戏中能够模拟基础的物理功能;动画系统是构建游戏动画效果的模块;
在这次项目学习中,我将主要研究该引擎Engine部分的代码,这一模块在Github中的作用是Merge branch即分支融合,把各系统统合并且构建出最初始的引擎系统,是这个系统运转的核心。该模块将提供引擎配置、内存分配、系统启动终止等功能。
可以看到这部分的代码包括但不限于基础系统的构建、别的模块的引入整合、全局变量的设计等,是该系统的基础骨架。
在后续学习中,我将主要研究这部分内容。