2020 年,一位保加利亚开发者突发奇想,能不能在网页上复刻红警 2?
于是他用 5 年时间,用最极致的人肉逆向,一行行手写代码,对照着《红警 2》去模拟、还原每一个运行逻辑 。
最终写出了网页红警,让每个想怀旧的 80、90 后,不用折腾和配置环境,只要打开浏览器就能回到小时候。
这件事,差评君还给大家写过。
然而就在一个月前,我们身边有人也做了类似的事。
他把西山居早期的三款作品《新剑侠情缘》、《月影传说》、《剑侠情缘 2》,全部复刻到网页版,移动端也做了适配,点开即玩。
这些游戏大家都不陌生。
差评君现在还记得小学放学回家就打开电脑,操控着独孤剑在临安城里乱逛,跟酒楼里的醉郎中聊几句居然能触发隐藏武功。然后又在《月影传说》里操控杨影枫一路捡草药,捡着捡着追一个黑衣人到了蝙蝠洞,结果遇到一群强盗被围殴怎么也打不过去。
时隔 20 多年打开这个复刻版,差评君发现味道很纯正:NPC 对话还是那么啰嗦,按 V 打坐恢复真气也还在,地图角落里那些藏在石头后面的宝箱也没少。
不过让人觉得震撼的是:
他完全依靠 AI,用不到一个月时间,不仅复刻了三款完整的武侠 RPG,甚至顺手搭了一个通用游戏引擎,调试器、编辑器一应俱全,方便别人参考复刻其他游戏。
这到底是怎么做到的?差评君找到了这个项目的作者,陈老师 。
陈老师从小学三四年级就开始自学编程,有着近 20 年的代码经验,早早就在 GitHub 上开源过众多项目 。
按理说,这样一位资深极客,应该对手写代码有着极深的信仰。
但陈老师和我说,他现在连一个等号都不愿意敲了。
因为他试过一套固定流程:先让当前最强大模型写出详细的设计文档,再严格按文档分模块执行,每个模块独立验证,跑通了再拼到一起。这样产出的工程架构和代码质量,大部分时候确实比自己从零手写的更高。
其实早在 2020 年,陈老师就动过复刻这些童年神作的念头,但在盘算过纯手工逆向二进制文件、再重写整套游戏系统的工程量后,放弃了。
直到最近,他认为 AI 的能力终于跨越了那个临界点 。
因此,这次复刻不光是一次童年怀旧,更是一次对AI编程的极限测试。
陈老师做的第一件事,就是把游戏客户端的原始资源文件直接丢给了 AI,让 AI 去解析。
这些游戏文件是二进制的,为了分发和安装,所有信息都被打包压缩成人类读不懂的格式。而 AI 拿到文件后,开始疯狂调用各种查看工具,列出文件结构、读十六进制,写 Python 代码尝试解析。一条路走不通,马上就换一种逻辑重试。
在过去,程序员是要拿着十六进制编辑器,靠经验和直觉一点点分析,再写脚本反复尝试的。
陈老师估算AI在这个环节的效率,是人类的 10 到 100 倍 。
我寻思也合理,AI 擅长暴力穷举,它不需要睡觉、也不会烦躁、更不会在第三个小时打开抖音刷会差评君。
这还只是开始,真正的考验是如何重建整套游戏系统。
在用 VScode Copilot 复刻时,陈老师主要用两个模型:Claude Opus 负责深度思考,当架构师,把游戏拆成模块、写出技术文档;Claude Sonnet 速度快,当执行者,根据文档把代码写出来。
让人头皮发麻的是,AI已经不再只是埋头执行,它还能具备了自主纠错能力。
有一次做寻路系统,陈老师觉得这个模块太吃性能,TypeScript 可能扛不住,就让 Sonnet 试试用 Rust 重写。Sonnet 写完之后自己跑了一轮性能对比,发现 Rust 和 TypeScript 之间来回翻译传递数据的开销太大,总体算下来反而更慢了。
于是,它主动将这个测试结论反馈给陈老师,并建议回退到 TypeScript 方案 。
就这么一个负责想、一个负责干,项目推进得比陈老师自己预期的还快。
从 1 月 25 日开工到 2 月底收尾,刨去春节休息,满打满算仅用了 20 天左右 。期间,陈老师与 AI 的对话次数达到四五千次 。
他通常会同时拉起 5 到 6 个 AI 对话窗口,并行处理不同的模块 。白天在公司上班时,也是远程桌面让家里的 AI 在后台疯狂打工,晚上回家直接验收成果 。
看到这一定有人质疑:20 万行代码全靠AI自动生成,真不是屎山代码?
确实,差评君也用 AI 写过 App,结果每加一个功能就多一个 bug,甚至修一个 bug,还会冒出来两个新的。
陈老师说,零编程经验的人用 AI 写代码最大误区,就是让 AI 一口气写个完整 APP,缺少架构设计。一开始还行,后面越加功能越乱,因为 AI 最擅长模仿之前写法,一旦前期逻辑混乱,后期就越来越乱。
所以陈老师做法是分模块开发,每个模块单独设计、单独测试,跑通了再拼。遇到 bug 也是把运行日志发给 AI,定位到具体模块进行修复。在每次完成大改动后,他还会新开一个窗口,让另一个 AI 从零开始扫描刚改过的代码。
总之,经历了不下 10 轮的优化与重构,这近 20 万行代码最终成功落地。
所以这 20 万行代码到底做了什么?
打开游戏你就知道了:角色在地图上走动时能会绕过障碍物找到最短路线。天气会从晴天突然转雨、雨滴还会挂在屏幕缓缓落下,这效果在原版里压根没有,是复刻版新加的。武功系统也做了 22 种飞行轨迹和 10 种状态效果,螺旋的、追踪的、扇形扩散的,能组合出几百种法术。
由于原版游戏是西山居用自创的脚本语法把整个剧本串起来的,为了让游戏在浏览器里跑起来,陈老师还把上百种剧情指令全部重写了一遍,并且加入了现代游戏行业通用的 Lua 语言支持,以后想给游戏加新剧情、改对话分支,不用去琢磨西山居独创语法,用 Lua 脚本就能成。
不仅如此,他还做了一个游戏编辑器。
武功、NPC、地图、物品、对话树,13 个模块全能在网页上直接编辑,改完刷新就能在游戏里看到效果。以后只要把引擎接入 AI,用户就能一句话生成游戏剧情和 MOD 了。
这三款游戏在 B 站上本来就有一批 MOD 创作者,以前都是纯手工制作,费时费力。如果这个功能做出来,每个人都能做出自己的剑侠情缘。
写到这,那个老生常谈的问题又来了:程序员真要被替代了吗?
陈老师的答案是目前不会,但程序员这个职业的定义,已经在改写了。
过去要独立开发游戏,你必须要把 70% 精力投入到敲代码、做建模、修 Bug、优化性能上,30% 留给游戏玩法 。
但现在,AI 已经能够包揽这些代码活,你需要用 30% 的精力去做架构决策,剩下 70% 倾注到玩法设计中 。
比如物品交互逻辑怎么定?数值成长曲线怎么画?NPC 行为树怎么排?这些属于产品和设计层面的决策,是没有标准答案的 。AI 可以给你提供一百套方案,但最终想做出一款怎样的游戏,依然需要人类来拍板 。
换句话说,陈老师这 20 年的编程经验并没有作废,而是转化为了复刻游戏过程中的架构决策。
像差评君这种没有编程经验的人,遇到 bug 不知道怎么定位,游戏系统怎么拆也没概念,有 AI 也照样干瞪眼。
但。。。
这次聊天也引出了一个更深层次的推论:
程序员工作重心的分配已经从“7 比 3”变成了现在的“3 比 7”,那么随着 AI 模型的极速迭代,这个比例会不会很快变成“1 比 9”,甚至“0 比 10”?
这种需要有经验的人来主导代码的阶段,还会持续多久?
甚至明天之后,连“游戏该怎么设计”这种创意工作,AI 会不会也能比大部分人想得更快、更周全。
在这个时间尺度被极度压缩的领域里,没人敢给出确切定论 。
毕竟一年多之前 DeepSeek 才刚发布,AI 还只是帮你补几行代码,写点最简单程序,甚至再往前推一年,大家讨论的还是 AI 客服。
如今 20 天、20 万行代码、三款游戏,就是一个老程序员和 AI 合作的结果。
从没有人会想到程序员有一天居然不用手敲代码,行业内还出现了“非遗匠心手写代码,古法编程”的调侃,明示手写代码已是古法。
这就是 AI 这枚硬币的两面。
一面是你最熟练的那部分手艺,正在变成AI的默认功能。
AI 已从聊天框里的一问一答,变成了能自己阅读文档、记住上下文、调用工具、主动干活还能检查错误的工具。
这种变化正在从编程领域蔓延到所有脑力劳动,设计从手搓素材变成了生成和调整 AI 生成的方案,视频从手动剪辑变成了创意策划+AI 执行。
各行各业的工作重心正以月为单位被重新定义,人类经验、技能的保质期也在跟着顶级模型的版本号走。
而另一面,是一扇你从未打开过的门。
从想法到成品之间的距离被极速压缩了。
一个从未学过剪辑的人,可以把脑子里的画面直接变成一支短片。一个人脑海中恢弘的构想,也不再需要等待数十万资金和一个完整的团队去落地。
执行力是在贬值,但知道“该做什么”的人,比以前会更不可替代。
没人知道这枚硬币最终会落向哪一面。但至少现在,它给了每个人重新发牌的机会。
撰文:刺猬
编辑:莽山烙铁头 面线
美编:素描
图片、资料来源:
https://miu2d.com/
热门跟贴