案例
OpenRiseOfNations:原生 macOS 引擎重新实现
以原生 macOS 应用重新实现 Rise of Nations: Extended Edition 引擎,包含 Metal 渲染器、确定性模拟、电脑对手,以及兼容的 BigHugeScript 编译器与虚拟机;美术、地图、规则和脚本均从使用者自有的 Windows 版安装目录读取。项目依据对带调试符号的可执行文件进行 Ghidra 研究后撰写的子系统规范及 JavaScript 参考工具,在大量使用 Claude Code 的情况下编写 C++17 实现。该早期版本可游玩教程与场景,其逐位一致性检查仍为项目报告。
使用条件与局限
- 所审阅的固定版本为 0.1.1;v0.1.0 与 v0.1.1 发布日期均为 2026-10-14。README 称这一 C++17 引擎尚处早期但可游玩,运行于 macOS 12+,使用 Metal 与 AppKit,涵盖教程与内置场景、单位操控、经济、建造、战斗、电脑对手及游戏脚本。随机地图与遭遇战设置界面、征服世界战役、多人联机、存档与录像、驻军、英雄及其他若干系统尚未实现。
- 使用者须拥有 Rise of Nations: Extended Edition,并提供 Windows 版游戏目录,其中 Data 与 scenario 目录提供美术、地图、规则、脚本和音频;README 列出用 SteamCMD 下载或从 Windows 电脑复制两种方式。仓库及未经公证的 DMG 不包含游戏文件或原程序代码,唯一声明的例外是粉丝改编的主菜单标志。从源码构建只需 Apple 命令行工具和 build-mac.sh。
- README 称游戏可执行文件附带完整调试符号,因而可借助 Ghidra 研究;docs/ 中约三十份规范以转述方式描述各子系统,并按名称和地址引用原函数,re/tools 中的 JavaScript 参考工具读取游戏数据。README 称开发大量使用 Claude Code,并由维护者指导和审查。STATUS.md 称逆向工作由后台智能体执行、各自产出一份规范,而作者回复称他本人在 Ghidra 中逆向并撰写规范;现有来源无法确定这一分工。
- 验证结果均为项目报告。C++ 检查工具将全部 169,312 组攻击方/目标的伤害、价格、收入与界面布局同参考工具比较,将规则表同录制对局的内存镜像比较,并在 156 个内置场景上比较世界网格;无界面运行框架检查确定性。模拟以逐位一致的锁步行为为目标,但尚未与真实录制对局比较,渲染则通过查看快照检查。本合集未运行这些工具。
- 引擎采用 GPL-3.0;菜单标志不在此范围内,其权利仍归原所有者。项目声明与 Microsoft、Big Huge Games 及 SkyBox Labs 无关联。.gitignore 将反编译输出、符号转储和提取数据排除在仓库之外,但 re/jobs 下提交了两份列有原地址的小型指令搜索输出。所审阅来源未确立 REA 使用。
关于此条目
- 类型
- 案例
- 类别
- 独立重建案例
- 关联
- 独立重建项目
- 目标
- 游戏
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · ben-wright-1/OpenRiseOfNations · 修订 2a0dfde
- docs/STATUS.md GitHub · ben-wright-1/OpenRiseOfNations · 修订 2a0dfde
- build-mac.sh GitHub · ben-wright-1/OpenRiseOfNations · 修订 2a0dfde
- .gitignore GitHub · ben-wright-1/OpenRiseOfNations · 修订 2a0dfde
- VERSION GitHub · ben-wright-1/OpenRiseOfNations · 修订 2a0dfde
- LICENSE GitHub · ben-wright-1/OpenRiseOfNations · 修订 2a0dfde
- https://x.com/benw_____/status/2111116976168779845
- https://x.com/benw_____/status/2111260204884967933