游戏引擎架构
概述
C++ 游戏引擎按模块分层构建,核心层次为 Platform → Core → Render → Scene → Resource → Audio/Physics/Scripting/Editor。先跑通最小链路,再逐步扩展。
关键内容
- 分层模块划分:Platform(SDL2/GLFW)、Core(日志/事件/Timer)、Render(图形API封装)、Scene(场景树或ECS)、Resource(资源缓存/引用计数)、Physics(Box2D/Bullet)、Audio(miniaudio/OpenAL)、Scripting(Lua)、Editor(Dear ImGui)
- 推荐开发顺序:① 窗口+主循环+三角形 → ② 渲染基础(Shader/Texture/Mesh)→ ③ 场景系统(Entity/Transform)→ ④ 资源系统 → ⑤ 编辑器雏形 → ⑥ 高级扩展(物理/脚本/多线程)
-
设计原则:先跑通再抽象;先做 Runtime 再做 Editor;窄而深优于大而全;必须有 Sandbox 测试场景;日志/断言/资源管理不可省
-
Lua 脚本架构模式对比(按性能/灵活性权衡): | 模式 | 代表 | 优点 | 缺点 | |------|------|------|------| | 全 Lua | Love2D、Solar2D | 迭代最快 | 性能上限低 | | C++ 引擎 + Lua 脚本 | 自定义引擎、CryEngine | 平衡性能与灵活 | 绑定维护成本 | | C# 引擎 + Lua 解释 | Unity + MoonSharp | 生态丰富 | 双语言开销 | | Luau 类型化 | Roblox | 安全性+性能 | 仅 Roblox 平台 | | LuaJIT FFI | LuaJIT 平台 | 接近 C 性能 | 复杂性高 |
来源
- C++ 游戏引擎搭建指南 — ChatGPT 对话整理,系统介绍 C++ 游戏引擎的模块划分、开发顺序与技术选型
- lua-gameengine-deep-research — 深度研究报告,第10.2节架构模式对比与 Lua 脚本化的适用场景分析
相关
- 场景树 — 场景层的核心组织方式
- ECS架构 — 场景层的另一种(数据导向)方案
- Dear ImGui — 编辑器层首选轻量 UI 库
- SDL2 — 跨平台平台层首选库
- Lua脚本宿主模式 — Scripting 层的五层架构设计模式