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, 单元测试, 可扩展性, 图形学, 快速原型开发, 控制反转, 数据擦除, 数据驱动, 整洁架构, 模块化设计, 渲染管线, 游戏开发框架, 游戏引擎, 系统编程, 自动化修复