参考资料
《GAMES104-现代游戏引擎:从入门到实践》02.引擎架构分层(bilibili)
《Game Engine Architecture》(Third Edition) Jason Gregory
目录
前言
最近在看Games的课程,再加上正好有想写点博客的意愿,于是嘛,就整理些笔记分享上来好了。本篇是第一次写博客,希望可以坚持下去吧,如有不严谨或错误的地方,欢迎指出!
现代游戏引擎01是一节导论课,就不单独整理笔记了,因此这个系列直接从02开始 (๑•̀ㅂ•́)و✧
一、什么是游戏引擎?
游戏引擎提供了构建游戏世界所需要的各种基础组件(如图形绘制、物理碰撞、音频等),是我们构建游戏世界的工具。
二、游戏引擎的分层
1. 总述
游戏引擎要如何分层并不固定,不同的人可能会有不同的理解。课程中所使用的为五层结构,从下(隐藏最深的)至上(使用者所接触到的)依次为平台层、核心层、资源层、功能层、工具层。(怎么让我想起了计算机网络的OSI模型)其中,越靠近底层的部分越稳定,越靠近顶层的部分越灵活。
这是《Game Engine Architecture》这本书中的一张层次图,对应关系在图中标注出来了。
基于这种五层的分层方式,每层的功能分别为:
2. 平台层 Platform Layer
- 屏蔽掉不同平台(Windows、Mac等)之间的差异,为上层提供与平台无关的服务。
3. 核心层 Core Layer
- 提供一个程序需要的基本工具组件,如:单元测试、内存管理、数学库、各类数据结构等。
4. 资源层 Resources Layer
- 将Resources(从别的地方导入进引擎的资源)转化为Assets(引擎可以看懂和便于处理的资产)。
- 实时的资产管理,如资产分配、资产生命周期、资产回收等。
5. 功能层 Function Layer
- 功能层是非常庞大的一层,这里实现了游戏内所有必要的基本功能,如图形渲染、物理特性、粒子特效等(如第一张大图所示,那一大片的区域都是功能层)。
6. 工具层 Tool Layer
- 提供使用者可以直接接触到的编辑器的界面(如图为Godot的界面)。