AWESOME ENGINE / 技术指南

安装与编译

准备 CMake 和 C++20 编译器,构建可执行文件,并从正确的目录启动。

本页内容

项目要求

工具 已确认的要求
C++ 编译器 支持 C++20 以及所用的标准库功能,包括 std::format。
CMake 3.28 或更高版本。
Git 用于克隆项目,以及通过 FetchContent 下载 SFML。
Ninja 如果采用本指南命令中的生成器,则需要安装。
网络连接 首次配置会下载依赖项。

.vscode 中的环境配置使用 Windows、MinGW GCC、Ninja 和 GDB。以下命令来自 CMakeLists.txt 和该配置,并不代表经过认证的构建兼容性矩阵。

获取代码

在工具已加入 PATH 的终端中执行:

git clone https://github.com/Arukado01/AwesomeEngine.git
cd AwesomeEngine

要查看与本文档完全一致的代码,可以在新克隆的副本中切换到已审查的修订:

git checkout 5a6dfacd86414c4cdfaa7157b533330f173a3126

最后一条命令会将工作副本切换到特定提交。如果准备开发改动,请在开始前创建自己的分支。文档中的源码链接也指向该修订,方便与后续更新比较。

配置与编译

cmake -S . -B Build -G Ninja -DCMAKE_BUILD_TYPE=Debug
cmake --build Build --parallel

CMake 将 Engine/Source 和 Games/Source 中的 .cpp 文件构建为名为 AwesomeEngine 的单一可执行文件。依赖项通过 FetchContent 获取:

  • SFML 3.1.0。
  • nlohmann/json 3.12.0。
  • spdlog 1.16.0。
  • TGUI 1.13.0。
  • magic_enum 0.9.8。

如需独立的 Release 构建:

cmake -S . -B BuildRelease -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build BuildRelease --parallel

项目也考虑了 MSVC 编译器选项,但上述步骤使用 Ninja 和当前环境中的编译器。不要在同一个构建目录中混用生成器或编译器。

在 Windows 上运行

让终端保持在仓库根目录,即 Content 所在的目录:

.\Build\AwesomeEngine.exe

本文描述的修订将 Tetris 指定为初始场景。该修订没有注册可用的游戏选择器,初始场景在 Engine.cpp 中定义。

工作目录很重要。配置、着色器、字体及其他资源通过 Content/Config.json 等相对路径加载。从 Build 目录启动可能导致引擎找不到资源。

使用 VS Code

仓库包含构建任务以及使用 GDB 的调试配置。可执行文件路径为 Build/AwesomeEngine.exe,工作目录保持为仓库根目录。

部分编辑器选项包含作者电脑上的绝对路径。请根据本机安装位置调整编译器和工具路径,不要将这些路径当成通用要求直接复制。

编译或启动失败时

请参阅故障排查,其中分别说明工具、依赖下载、资源和代码已知限制方面的问题。本指南不提供安装程序或跨平台二进制文件。

源码参考

基于已验证的源码。发现问题了吗? →