大家好!

我想分享一个我一直在使用 Claude Code 开发的项目:一个基于开源的《Rage of Mages》(1998) 重新实现,使用 Go 编写。

该项目是一个完整的代理管道实验:代理负责调查、研究并反编译游戏二进制文件,然后基于研究产生的规格构建免费实现。目标是打造一个能够运行原始资产且无明显错误或行为变化的引擎,同时支持跨平台和可 mod。

管道由三大部分组成:

  • 一个协调器:唯一的用户与代理交互入口
  • 研究:一个所有针对原始游戏进行实验的仓库;在该仓库中工作的代理会生成关于游戏的主张
  • 实现:由研究产生的主张构建的游戏引擎仓库

我遵循的关键规则:

  • 任何仓库中均不包含游戏资产。这是一个独立实现,未来可能成为《Rage of Mages》系列任何游戏(包括自定义游戏)的引擎,类似于 OpenMW 的做法
  • 不追求字节级的逐字复制;保持行为,而非原始代码
  • 代理只使用我们自己的研究,而不依赖其他实现或格式规范

实现方式如下:

  • 最初我大量使用规范驱动开发(SDD),但发现它在 token 与时间上成本很高。目前每个任务由一个代理、一个简短文档和一次审阅组成
  • 我向协调器分配任务,并在自定义的看板上跟踪其状态
  • 我不时运行游戏以检查行为是否正确。最初时我做了很多次
  • 协调器还可以通过计算机使用运行原始游戏,以比较 UI 与行为

已完成的工作如下:

  • 几乎完整的《Rage of Mages 1》,不包含多人游戏,仅有轻微行为差异;所有已知差异均列在仓库中
  • 几乎完整支持原始 SAV 格式:AgainROM 中的原始存储可以加载,原始游戏也能加载 AgainROM 生成的存储
  • 对《Rage of Mages 2》的部分支持
  • 一个 modding 接口
  • 一个用于单人地图的自定义地图编辑器

我已在这项目上工作了三个月。我使用 Claude Code Max 20x,之前也使用过 Codex Pro x20,直到它不可用为止。

管道是自定义的:研究代理使用 Ghidra 并配合自编脚本与 Go 工具,未使用现成的技能或逆向工程仓库。

您需要自行准备游戏副本(例如 GOG 版),仓库中不包含游戏文件。

游戏可在 Windows、macOS 上运行,也可编译为 Linux。

仓库链接:https://github.com/againrom/againrom-engine