简介
了解 Awesome Engine 的组成、可以从源码中学习的内容,以及各个系统状态的含义。
本页内容
可以深入探索的 2D 引擎
Awesome Engine 是使用 C++20 编写、基于 SFML 构建的游戏引擎。其核心把场景与渲染、资源、输入、音频、界面和持久化服务连接起来。仓库中的游戏展示了如何通过 C++ 代码使用这些服务。
本文档以 提交 5a6dfac 为参考,描述该修订包含的功能。仅在本地工作树中发现的改动会标为开发中。
包含哪些内容
- 七个游戏场景: Bounce、Clicker、MemoryCard、TicTacToe、MineSweeper、Runner 和 Tetris。
- 2D 渲染: SFML 可绘制对象、中间纹理,以及 Bloom 和 Monitor 后处理。
- 基于动作的输入: 支持键盘、鼠标和手柄,同一动作可绑定多个输入。
- 共享服务: 资源、时间、音频、粒子、JSON 存档和 PNG 截图。
- TGUI 界面: 与窗口事件集成的控件和暂停覆盖层。
这些系统通过 EngineContext 连接。每个游戏实现 Scene 接口,并维护自己的对象和规则。本文档所述修订没有 ECS 架构或可视化编辑器。
建议的阅读顺序
如何理解状态
| 状态 | 在本站中的含义 |
|---|---|
| 已实现 | 参考修订中存在具体代码,但不代表已认证所有平台或所有使用场景。 |
| 开发中 | 本地工作树中存在尚未包含在参考提交中的实现或改动。 |
| 实验性 | 代码已经存在,但集成被禁用,或不参与本文描述的常规流程。 |
| 已计划 | 需要项目提供明确记录的计划依据。没有证据时,不会把功能归为此状态。 |
AudioGroup、SpriteAnimator、SweptAabb 和用于冷却计时的共享时钟是在本地改动中发现的。克隆参考修订时,不应期待其中包含这些 API。
平台范围
仓库包含适用于 Windows、MinGW、Ninja 和 GDB 的开发配置。本次审查未验证 Linux、macOS、移动设备或浏览器上的编译和运行情况。仅凭所用库支持这些平台,不能认定整个引擎完全兼容。
引擎代码采用 MIT 许可证。历史记录中的条目对应真实提交,并非虚构的发行版本。
源码参考
基于已验证的源码。发现问题了吗? →