Vico Bill< 刘 利 波 > 的个人网站

记录关于学习、工作中的技术点滴

C,C++,Rust,Ruby爱好者;热衷于游戏开发、任务自动化与跨平台;沉迷于游戏引擎与图形表现;深信'简单、多元'哲学的力量。


访问主页

游戏引擎-游戏运行

基本流程

  1. 每个平台通过启动器启动整个游戏。(会暂存命令行)

  2. 引擎初始化。解析引擎相关的命令行部分;会加载所有必需的模块/子系统(命令系统、命令行变量、控制台、平台系统、网络系统、文件系统、资源管理系统、并行管理、事件系统、渲染系统、音频系统、UI系统);加载或创建引擎必需的资源(如shader,纹理,材质等)。加载游戏系统。
  3. 游戏初始化。加载游戏所需模块或插件;读取游戏配置,解析游戏相关配置(如窗口大小,按键绑定,国家化文字等);多线程预加载游戏必需的资源。
  4. 引擎后期初始化。加载额外模块(物理)。根据配置文件,创建窗口,开启多线程(全速)渲染。播放引擎Logo动画。
  5. 游戏后期初始化。创建主菜单。播放主背景音乐。
  6. 主循环。生成事件。处理事件循环中队列的事件。交换渲染缓冲命令。同步帧率。处理网络消息。处理GUI事件消息。处理渲染命令。

主要事件

地图加载:

  1. 根据地图文件,实例化地图配置中的实体。
  2. 实例化完成后,根据配置文件,实例化玩家控制的角色。
  3. 应用实体物理设置。应用AI设置。初始化地图内的脚本。

实体事件

事件 时机
Spawn 在刷出时
Think 每帧更新
Begin Dormant 处于active 列表,但在PVS之外 。休眠。
End Dormant 结束休眠
最近的文章

游戏引擎-研究报告

游戏引擎研究报告@refer:Torque3,TombstoneEngine,CryEngine,Unreal4,Unity,Lumberyard,Source2,Panda3D,Leadwerks,Xenko,id Tech 4,Blender Game Engine,Love2D编程语言现今的3D游戏引擎通常使用OOP编程语言,特别是无垃圾回收的静态编程语言,因为游戏引擎需要的高性能(C++)。附以带垃圾回收、动态、简单上手、易扩展的脚本语言作为逻辑编写语言(如Lua,mruby,py...…

继续阅读
更早的文章

游戏引擎-Unity开发笔记

对待破解游戏制作流程(Unity) 从破解游戏中,获得资源或代码,或两者皆有 导入到引擎中,进行还原。 还原场景:场景布局;场景中物体挂载的脚本; 还原代码:物体挂载的脚本代码。主要是逻辑代码(C# AssemblySharp,Lua) 导入原插件:NGUI,LuaFramework,EasyTouch,Spine, Protobuf 等等常见插件。 还原属性:GameObject属性取值的还原. ...…

继续阅读