目录
什么是游戏引擎
常见引擎
游戏引擎的设计
High-level Architecture
开发工具
开发环境
Building System
Graphic API
Script API
GUI
Introduction
Notes for Chapter 1
什么是游戏引擎
制作,开发,管理游戏的软件平台
也可用于模拟,建筑虚拟化,训练,以及工业中的媒体互动
常见引擎
Unity:小型跨平台
Unreal
Godot:开源
GameMaker
CryEngine
Lumberyard
游戏引擎的设计
主要组成的部分有:
Render Engine
Physics Engine:
PhysX, Bullet Physics
Sound Engine:
SDL_Mixer, OpenAL, FMOD
Scripting Engine: 负责管理 game state, 更新游戏世界,处理用户输入。通常使用脚本语言:C#,lua, python 等,用于实现游戏机制和 AI。
Assets Management: 管理,导入导出游戏资产:比如模型,贴图,字体,音频等
Scene Editor
High-level Architecture
游戏行业没有指定实现的蓝本
好处:创作的自由性
坏处:缺乏标准化
游戏引擎的特性
高适应性
每个游戏带来的需求都不相同
本书的 alignment
使用封装的库
Game.exe
:用户主要使用的程序
Empy.exe
:用于场景创建以及引擎版本准备
开发工具
语言:C++
开发环境
IDE:VS-code
Building System
目的:将 source code 编译为可执行的程序或库
用于管理依赖,决定哪些部分需要在更新时重新编译
使用系统:Cmake
外部包管理
使用 Conan
Graphic API
角色:应用层与硬件(GPU)之间的中间件
常见的 API:
DriectX, OpenGL, Vulkan, Metal
本书使用:OpenGL,跨平台
Script API
用于定义 gameplay 的内容,比如 AI,游戏内的事件
允许对游戏原型的快速迭代
本书使用:Lua
GUI
使用 Dear
GUI