Orion2re:Master of Orion II 游戏引擎的开源修复项目
Orion2re: A restoration effort for the Master of Orion II game engine
Orion2re 是面向 Master of Orion II 游戏引擎的开源修复项目,采用 GPLv3 或更高版本许可,代码由 AI 智能体在人类指导下协助开发。项目不包含原版游戏数据,玩家需自备 GOG 或 Steam 版本的游戏文件,支持 macOS arm64、Linux 及 Windows(MSVC 与 MinGW-w64 交叉编译)构建。
本项目是对《Master of Orion II》游戏引擎的修复工作。也请查看我们的文档门户。
《Master of Orion II》及其资源、商标和相关知识产权的一切权利均归其各自所有者所有。
本仓库不包含原始游戏数据。要游玩,你必须拥有《Master of Orion II》的合法副本,并提供来自受支持发行版(如 GOG 或 Steam)的原始游戏文件。
许可证
原始 orion2re 代码和文档是自由软件,依据 GNU 通用公共许可证第 3 版或任何更新版本授权。完整许可证文本见 LICENSE。
本许可证不适用于《Master of Orion II》、其资源、商标或其他知识产权。第三方组件在其源文件和 vendor 目录中保留各自的许可证和版权声明。
AI 辅助开发
本项目是在人类指导下由 AI 代理协助构建的。人类贡献者编写代码、审查、测试并批准 AI 辅助的更改,并对最终成果负责。
要求
- CMake 3.20 或更新版本
- Ninja
- Either:
- 具备支持 arm64 的 Clang 工具链的 macOS 构建环境
- 具备 MSVC 工具链的 Windows 构建环境
- 具备可选 MinGW-w64 交叉编译器的 Linux 构建环境
- 来自 GOG 或 Steam 的原始《Master of Orion II》游戏文件
支持的构建路径:
- 原生 macOS arm64 构建
- 原生 Linux 构建
- 使用 MSVC 的原生 Windows x86 和 x64 构建
- 在 Linux 上托管的面向 Win32 和 Win64 的 MinGW-w64 交叉构建
macOS 构建使用原生主机架构。
内置子模块
本项目使用内置子模块管理第三方依赖。
克隆仓库时包含子模块:
git clone --recurse-submodules <repo-url>
如果你已经克隆了仓库但未包含子模块,请使用以下命令初始化并更新它们:
git submodule update --init --recursive
构建
使用预设进行配置和构建:
cmake --preset win32-debug cmake --build --preset win32-debug
原生 macOS 示例:
cmake --preset osx-debug cmake --build --preset osx-debug
仅路由器 Linux 示例:
cmake --preset linux-router cmake --build --preset linux-router
这会跳过 orion2re 游戏目标,当你只需要 orion2re-router 时这是首选路径,尤其是在无头 Linux 机器上。仅路由器工作请优先使用 -DORION2RE_BUILD_GAME=OFF。
测试是可选启用的,默认不构建。要配置、构建并运行当前单元测试:
tools/run-tests.sh
完整的预设列表和各平台详情,请参见 CMakePresets.json。
受支持的源码自有 mod 存储在 data/mods/ 下。常规游戏构建会将 data/base/ 打包为 data/base.zip,将每个源码自有 mod 打包为 data/mods/<package>.zip,并在配置了 ORION2RE_GAME_DIR 时部署所有归档。
仅构建可分发的 mod ZIP 归档:
cmake --build --preset win32-debug --target package-supported-mods
归档文件写入构建树下的 data/mods/<package>.zip。要仅将 mod 部署到已配置的目标游戏目录,请使用:
cmake --build --preset win32-debug --target deploy-supported-mods
游戏不会自动启用已部署的 mod。将 enable <package>; 添加到 data/orion2re.cfg,例如标准 1.50 使用 enable v150;,单人 1.50 Improved 配置文件使用 enable v150i;,或其多人覆盖使用 enable v150i-mp;。
随机序列不匹配会记录每个已记录的原始调用者和捕获的本地调用者,包括绝对地址和用于符号查找的可执行文件相对 RVA。
发布构建示例:
cmake --preset win32-release cmake --build --preset win32-release
从 Linux 交叉编译 Windows 构建
首先安装 MinGW-w64 交叉编译器和 Ninja。在 Debian 或 Ubuntu 上,所需的软件包通常为:
sudo apt install gcc-mingw-w64 g++-mingw-w64 binutils-mingw-w64 ninja-build
然后配置并构建其中一个 MinGW 预设:
cmake --preset mingw-win32-debug cmake --build --preset mingw-win32-debug
或:
cmake --preset mingw-win64-release cmake --build --preset mingw-win64-release
可用的 MinGW 预设请参见 CMakePresets.json。
来源:Hacker News · github.com