基本流程
-
每个平台通过启动器启动整个游戏。(会暂存命令行)
- 引擎初始化。解析引擎相关的命令行部分;会加载所有必需的模块/子系统(命令系统、命令行变量、控制台、平台系统、网络系统、文件系统、资源管理系统、并行管理、事件系统、渲染系统、音频系统、UI系统);加载或创建引擎必需的资源(如shader,纹理,材质等)。加载游戏系统。
- 游戏初始化。加载游戏所需模块或插件;读取游戏配置,解析游戏相关配置(如窗口大小,按键绑定,国家化文字等);多线程预加载游戏必需的资源。
- 引擎后期初始化。加载额外模块(物理)。根据配置文件,创建窗口,开启多线程(全速)渲染。播放引擎Logo动画。
- 游戏后期初始化。创建主菜单。播放主背景音乐。
- 主循环。生成事件。处理事件循环中队列的事件。交换渲染缓冲命令。同步帧率。处理网络消息。处理GUI事件消息。处理渲染命令。
主要事件
地图加载:
- 根据地图文件,实例化地图配置中的实体。
- 实例化完成后,根据配置文件,实例化玩家控制的角色。
- 应用实体物理设置。应用AI设置。初始化地图内的脚本。
实体事件
事件 | 时机 |
---|---|
Spawn | 在刷出时 |
Think | 每帧更新 |
Begin Dormant | 处于active 列表,但在PVS之外 。休眠。 |
End Dormant | 结束休眠 |