我用 TraeCode 复刻了一款十几年前的 Flash 老游戏,从拆文件到能通关用了一周
一、我是谁,以及我遇到了什么问题
我平时做点工程类的开发,前端只是偶尔写写。小时候玩过一款 Flash 海盗海战游戏,叫《诅咒之风》,左右舷开炮、跳帮抢船那种,Flash 淘汰之后就再也没法玩了。我运气好找到了当年的游戏文件,但文件是打包的二进制,没有源码、没有素材,就是一整个黑盒。
我的想法很简单:把它做成打开网页就能玩的样子。但这活儿让我自己干,基本等于不可能——游戏逻辑是十几年前的一门老语言,几百张图片全塞在文件里,数值配置更是肉眼读不出来。所以我决定整个交给 TraeCode 干,我只负责提要求和验收。
二、我是怎么用 TraeCode 解决这件事的
全程用的 IDE 模式,我喜欢看它每一步改了什么,不对劲随时叫停。
第一步,先把游戏文件拆开。我让它写个小工具,把文件里打包的船只、炮弹、烟雾、界面这些图片全抠出来,前后折腾出六十多个小脚本,中间环境装不上依赖,它自己换了个路子绕过去了。拆出来将近三百张图,全是原版素材。
【截图1:拆出来的原版素材】
第二步,先弄清游戏规则,再动手写。这里我吃过亏:一开始让它凭感觉做,它把我的船做成了满帆的帅船,我拿原版截图一比对,人家原版从头到尾都是卷起来的帆。从那以后我学乖了,让它先把反编译出来的老代码里的规则一条条整理清楚——多少门炮、伤害怎么算、每关几条船——整理完我确认了再写。
第三步,一个模块一个模块地做。船、炮、敌人 AI、抢船、关卡、商店、存档,基本一晚上一个。我只提三条要求:界面全中文、必须用原版素材、以后想扩地图加技能得留余地。
第四步,让它自己验收,别光嘴上说改好了。我让它写了一套自动测试,每次改完就自己打开游戏、模拟操作、截图回来对比。有段时间所有爆炸特效都挤在画面左上角,我就甩了句"坐标还是不对",它自己查出来原因、修好、再截图确认。后来我说支援炮击的水花比原版大,它还真回头去翻原版的参数,算出比例改小。
【截图2:自动测试跑起来和截图对比】
三、成果展示
现在这个游戏我双击网页就能完整通关,十五关加最终 Boss,操作、数值、音效、连舱门开关的动画都是照原版抠的,另外加了倍速、金币加倍这些原版没有的方便功能。游戏我自己在玩,改坏了也有自动测试兜底。
【截图3:实际游戏画面】
四、效率对比
2024 年我自己动过一次这个念头,看了两天资料,卡在素材抠不出来就放弃了,进度是零。这次前后一周,我每天实际花一两小时,主要就是提需求、看截图、说"这个不像原版"。像读十几年前的老代码、从二进制里抠图、性能压测这些活,放以前我一个都干不动。
五、经验和技巧总结
-
先让 AI 把规则整理清楚再动手写代码。不然"像不像原版"这种问题根本没法对齐,它写得再快也是白写。
-
验收要让它拿证据说话。"你截图给我看"比"你确认一下没问题"有效一百倍。
-
提问题带上原版截图。我说"水花比原版大"附一张图,它自己就回去翻参数改对了,比我自己描述半天强。
后面我还准备继续开发,在原有基础上开发一个玩法更复杂的游戏,扩展路径都写好了,现在就差积分了



