大家好!
我想分享一个我一直在使用 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。
评论 (0)