展示了利用 Claude Code 将闭源游戏反编译并移植到 Web 端的完整工作流,为复杂代码重构提供了可参考的 Agent 协作范式。
我反编译了可能是我最喜欢的游戏:《战地1942》,并将其发布到网上,支持多人游戏,你可以在这里玩到:
(这是免费共享软件演示版)
这比我之前移植的《雷神之锤》和《毁灭战士》要难得多,因为那些游戏背后已经有大量开源项目和基础工作。
而《战地1942》的情况是,根本没有任何现成的东西可以在此基础上开发。从未有人移植过它,也没有为其提供开源引擎,开发商也从未像 id Software 对《雷神之锤3》那样将其开源。
我六个月前尝试过,基本上放弃了,但今天我再次尝试,使用 Opus 5.5 并询问:“你能尝试把这个文件夹里的 BF1942 演示版移植到网页上吗?”
于是,我和 Claude Code(好吧,说实话主要是 Claude Code)今天搞了一些疯狂的事情:
- 它将 x86 原始机器码反汇编,找到了 57,000 个 x86 函数
- 它将每个 x86 函数转换为 C 函数(例如 mov eax, [esi+0x110] 变成了 eax = READ32(esi + 0x110),顺便说一句,我对这一切的含义一无所知)
- 输出了 100,000 行 C 代码
- 然后使用 Emscripten 将其编译为 WebAssembly
- 其中有 300 个 Windows 和 Direct3D 函数被使用,我们必须将它们重写为 WebGL 2 和 OpenGL,以便在网页上运行
- 然后我们不得不构建自己的网络栈,使其能够通过 WebSocket 连接到我们的多人游戏服务器
我不知道它是如何做到这些的,但它确实做到了,而且似乎能正常工作!😊
来玩吧,并在这里报告任何 bug!
来源:@levelsio · x.com