MJRasicci/TyrantGameEngine
GitHub: MJRasicci/TyrantGameEngine
一个采用控制反转架构的模块化、数据驱动型跨平台游戏引擎框架,专注于游戏原型快速迭代和实验性渲染管线开发。
Stars: 0 | Forks: 0
# Tyrant Game Engine 2.0
Tyrant Game Engine (TGE) 是一个模块化、数据驱动的运行时,专注于游戏原型和实验性渲染管线的快速迭代。该仓库提供了核心运行时、支持工具以及构建工作流,旨在跨桌面平台探索引擎概念。
## 目录
- [项目概述](#project-overview)
- [依赖项](#dependencies)
- [设置说明](#setup-instructions)
- [安装前置条件](#install-prerequisites)
- [安装 Tyrant Game Engine](#install-tyrant-game-engine)
- [从源码构建](#build-from-source)
- [使用 CMake 预设](#using-cmake-presets)
- [运行测试和基准测试](#running-tests-and-benchmarks)
- [打包](#packaging)
- [工作流快捷方式](#workflow-shortcuts)
- [输出目录布局](#output-directory-layout)
- [使用说明](#usage-instructions)
- [许可证](#license)
## 项目概述
TGE 强调清晰的抽象、可测试性和可扩展的子系统,以便可以分层添加新的游戏玩法或渲染功能,而不会破坏现有模块。引擎运行时配有编辑器工具和文档,演示了如何引导游戏体验、集成自定义模块以及跨平台快速迭代。
## 依赖项
核心构建要求:
- **C/C++ 编译器**
- Windows: Microsoft Visual C++ (MSVC)
- macOS: Clang (通过 Xcode Command Line Tools)
- Linux: GCC 或 Clang
- **[CMake](https://cmake.org/)** (需要 3.25+)
- **[Ninja](https://ninja-build.org/)**
可选工具:
- **[Doxygen](https://www.doxygen.nl/)** 和 **[Graphviz](https://graphviz.org/)** 用于生成 API 文档
- **[GoogleTest](https://github.com/google/googletest)** / **GoogleMock** / **[Google Benchmark](https://github.com/google/benchmark)** 用于单元测试和基准测试
[(返回顶部)](#table-of-contents)
## 设置说明
### 安装前置条件
#### Linux
使用 Linux 设置脚本来引导所需的工具链,以及用于生成文档和运行自动化测试/基准测试的可选依赖项:
```
./.config/linux/setup.sh
```
该脚本会自动检测 Debian/Ubuntu (APT)、Fedora/RHEL (DNF)、Arch/Manjaro (Pacman)、Alpine (APK)、OpenSUSE (Zypper) 和 Gentoo (Emerge) 环境。使用 `./.config/linux/setup.sh --help` 探索高级用法:
- `-y/--yes` 在安装包之前跳过确认提示。
- `-r/--required` 将安装限制为最小构建工具链。
- `-v/--verbose` 显示包管理器的输出以便进行故障排除。
#### macOS
macOS 设置脚本针对系统 `zsh` shell,并在安装项目依赖项之前处理 Homebrew 和 Xcode Command Line Tool 的前置条件:
```
./.config/macos/setup.sh
```
使用 `./.config/macos/setup.sh --help` 查看用于非交互式或最小化安装的相同便捷标志。
#### Windows
你可以使用我们的 winget 配置自动下载 Windows 所需的所有工具(在提升的 powershell 会话中执行):
```
winget configure -f ./.config/windows/configuration.winget
```
### 安装 Tyrant Game Engine
预编译的二进制文件尚不可用;请按照下面的从源码构建工作流在本地编译引擎。
[(返回顶部)](#table-of-contents)
## 从源码构建
TGE 附带了一个详尽的 `CMakePresets.json`,其中封装了所有常见的配置、构建和测试工作流。预设会自动将输出暂存到 `artifacts/` 目录中,以便运行时资产、库、文档和包保持井井有条。
### 使用 CMake 预设
预设遵循 `{platform}-{architecture}-{configuration}` 命名约定(例如 `linux-x64-debug` 或 `windows-arm64-release`)。每个平台预设都继承了共享的基础设置,因此你可以混合搭配以下任意组合:
- **平台:** `windows`、`macos` 或 `linux`
- **架构:** `x64` 或 `arm64`
- **配置:** `debug` 或 `release`
为你首选的工具链配置项目:
```
cmake --preset linux-x64-debug
```
为活动预设构建目标:
```
cmake --build --preset linux-x64-debug
```
### 运行测试和基准测试
当 GoogleTest/GoogleMock 和 Google Benchmark 可用时,通过 CTest 启用并执行测试:
```
ctest --preset linux-x64-debug
```
基准测试作为 CTest 条目公开,这些条目会转发给基准测试可执行文件。以相同的方式使用 `--preset` 来输出基准测试结果。
### 打包
打包预设仅适用于 **release** 配置。尝试打包 debug 构建(例如 `linux-x64-debug`)将会失败,因为相应的预设不存在。要生成可分发的包,请指定 release 预设:
```
cmake --build --preset linux-x64-release --target package
```
或者利用下面描述的 release 工作流预设,通过单个命令运行配置、构建、测试和打包。
### 工作流快捷方式
工作流预设将多个步骤链接在一起。Debug 工作流执行 **configure → build → test**,而 release 工作流则增加最后的 **package** 步骤:
```
cmake --workflow --preset linux-x64-debug # run configure + build + test
cmake --workflow --preset linux-x64-release # run configure + build + test + package
```
这些工作流非常适合持续集成或完整的本地验证。
### 输出目录布局
默认情况下,所有生成的资产都位于 `artifacts/` 下:
```
artifacts/
├── bin/ # Executable outputs (editor, tests, benchmarks)
├── build/ # CMake cache and intermediate build tree
├── docs/ # Doxygen-generated API documentation
├── lib/ # Static or shared libraries produced by the build
└── pack/ # CPack staging area for distributable bundles
```
此结构将临时资产和可分发资产与源代码分开,从而简化了清理和部署。
[(返回顶部)](#table-of-contents)
## 使用说明
构建文档预设后,打开 `artifacts/docs/html/index.html` 以获取完整的引擎使用说明、API 参考和教程。
[(返回顶部)](#table-of-contents)
## 许可证
Tyrant Game Engine 2.0 根据 [MIT License](LICENSE.md) 分发。有关完整的条款和条件,请参阅许可证文件。
[(返回顶部)](#table-of-contents)
标签:API文档, Bash脚本, C++, Clang, CMake, Doxygen, GCC, GoogleTest, MSVC, Ninja, 单元测试, 可扩展性, 图形学, 快速原型开发, 控制反转, 数据擦除, 数据驱动, 整洁架构, 模块化设计, 渲染管线, 游戏开发框架, 游戏引擎, 系统编程, 自动化修复