(好久之前学的东西整理的笔记了,最近准备找工作,拿出来整理复习下)
01.游戏引擎导论
游戏引擎的定义:虚幻世界的技术基础,创造生产力的工具,复杂的艺术
对于程序员来说,一个好的游戏引擎需要一个高自由度的API。
引擎的协作工具链是非常重要的。
由于实时更新的要求,引擎的各个部分间解耦度需要非常高
引擎内容:基础框架,渲染,动画,物理,游戏规则系统,特效系统,网络游戏
工具体系:c++反射体系等。
02.引擎架构分层
游戏引擎的基本架构:
工具层(Tool Layer):编辑器,与用户直接交互
功能层(Function Layer):设定可视化,可动,可交互的相关功能,如动画,渲染,物理功能等
资源层(Resource Layer):管理游戏相关的数据和文件
核心层(Core Layer):一些最基础且最泛用的功能,如容器分配,内存管理,线性变换等等。
平台层(Platform Layer):操作系统平台,使用的硬件系统平台等等。
第三方库(Third Party Libraries):独立的工具或者一套API等。
资源层:定义访问数据的方式
由于数据本身可能存在大量冗余信息,且格式多样,因此在导入外来资源时需要进行一层的转换,将其变为符合我们引擎框架的可用的资产(Asset)