大家好!我开发挂机游戏,这款游戏是关于建造机器人、生产太阳能板,并突破越来越荒谬的自动化层级的挂机游戏。

最近,我用 TypeScript/React 重构了这款游戏(原版基于 Unity),并广泛使用 AI 代理进行实现和测试。移动端重构版现已上线,我觉得这个过程或许值得在此分享。

对比图展示了机器人、技能和无限的界面,左侧为旧版,右侧为重构版。

我原先已有设计成熟、拥有玩家和存档的游戏,且需确保存档兼容。首要任务是让主游戏功能与旧版持平,同时构建更易扩展的基础。

这意味着大量工作体现在截图看不到的地方。新版需要读取 Unity 原版存档、保留进度,让用户无缝继续游戏。

我的工作流程是将任务拆分为小任务并编写需求说明,独立任务各自创建分支/工作树,随后审查测试结果,最后合并。我用 Codex 进行编码、调查和审查,而游戏设计决策则由我保留。

Git 历史中充满了后续修正。例如修复原生应用在系统暂停定时器时仍保留存档写入权限的问题;又如让活跃游戏和离线时间使用相同的底层模拟步骤,避免离线处理时出现两套游戏数学逻辑。

验证工作包括存档测试夹具、自动化测试、浏览器检测以及移动端后台/重启测试。后续还修复了存档恢复、技能预设和进度边缘情况。达到可运行界面只是一个里程碑;检查导入存档、重新加载或数小时后返回时的表现,是项目的另一重要部分。

我还曾沿着一个方向走得很远,但最终放弃。我构建了“突破无限”迁移以支持更大的数值,随后决定在现有数值范围内添加所需的进度层级。该工作仍保留在独立分支中,但并未成为最终重构版的走向。

重构让我增加了原 Unity 实现中不实用的辅助功能,包括文本转语音、更好的键盘/焦点行为以及减少动画支持。此外,新版除了英语外,还支持法语、德语、拉丁美洲西班牙语、巴西葡萄牙语、简体中文、俄语和日语。

AI 翻译现在太惊人了,我以为会耗掉我大部分配额,但所有 7 种语言两小时就完成了,现在每次变更后代理都会自动处理所有语言,简直不像话??

主游戏功能已与旧版持平,并优化了模拟,将强制重置改为可选的无限。我还恢复了双倍无限积分和调试选项的购买。Steam 版本更新尚待后续。

对我来说,有用的经验是 AI 辅助重构需要多少结构:清晰的决策归属、足够小的审查任务、以及对实际运行游戏的检查。保持现有玩家进度完整至关重要。

我的大量时间其实花在首次迁移后重做基础 UI 上。而突破无限的工作浪费了将近一周。

最终这次重构花了约 35 天才能正确完成。

有其他人用 AI 代理迁移过已发布的游戏吗?我很想知道你们如何检查功能持平,并在项目进展中控制回归问题。