一段需求、零素材,Claude Code 派了 33 个代理给我做了个 3D 动作游戏

文章来源声明: 原文作者:沧沧凉凉; 来源站点:掘金; 原文链接:https://juejin.cn/post/7692498648035819563; 本文基于上述来源整理/加工,觅优补充点评,仅供技术学习交流。版权归原作者所有。
觅优短评

多代理并行加「合同先行」的工程化用法,把 AI 编码从写函数推到交付完整项目,适合想了解大规模 AI 协作流程、上下文组织方式与成本边界的开发者参考。

[上一篇](https://link.juejin.cn?target=https%3A%2F%2Fwww.cclliang.com%2F2026%2F09%2F09%2Fvibe-coding%2Fe3%2F "https://www.cclliang.com/2026/09/09/vibe-coding/e3/")折腾火柴人的时候,最大的坎是素材:Claude 没有生图模型,Blender 建模也翻了车。这次我换了个游戏来做,需求里没提素材的事,Claude 自己在架构文档里定了一条规矩:不用任何外部素材,一张图片、一个模型文件、一段音频都不要,全部用代码生成。

结果真让它做出来了。这个游戏叫《云海神殿》,跑在浏览器里,第三人称 3D 动作加解谜,五个章节加一个 Boss,从主菜单一路能打到通关画面。里面所有的模型都是代码拼出来的几何体,贴图是程序画的,音效和背景音乐是 WebAudio 实时合成的,整个仓库里没有一个素材文件。

先把成品放在这里:游戏部署在 Cloudflare 上了,可以直接点击体验。建议用电脑上的 Chrome 打开,键盘加鼠标操作,最好戴上耳机。

《云海神殿》的主菜单,左侧是金色的标题和菜单项,背景是黄昏下的神殿门廊,主角单膝跪在地面的金色符文阵中央

刚开始游戏时的苏醒庭院,画面中央浮出「第一章 · 苏醒庭院」的标题卡,远处的太阳从门廊后面逆光照过来

我给它的需求

这次我没有写 PRD,而是直接写了一段比较完整的需求丢给它:用 three.js 做一个第三人称 3D 动作解谜闯关游戏,画面要黄昏逆光、有体积雾和光柱,能互动的东西发青绿色光,敌人攻击前有橙红色预警;操作是 WASD 加鼠标,J 轻攻击、K 重攻击、L 闪避;要有二段跳、一整套连招、推方块、转镜子引光束、只有特定招式才能激活的符文,敌人有机械虫群、符文法师、石像守卫和一个 Boss,关卡分五段,每段都有检查点。

完整的需求原文``` 使用 three.js 做一个第三人称 3D 动作解谜闯关游戏,在桌面浏览器里运行,用键盘和鼠标操作。

【画面】

  • 风格化写实,画面精致、有氛围:黄昏逆光、柔和阴影、体积雾和光柱、发光符文、空中漂浮的尘埃
  • 场景是漂浮在云海上的古代机关神殿,远处有高塔、巨像等地标
  • 能互动的物体统一发青绿色光;敌人攻击前有橙红色预警
  • 攻击有刀光拖尾、命中火花、受击闪白、镜头震动和顿帧
  • 稳定 60 帧

【操作】

  • WASD 移动,鼠标控制视角
  • Space 跳跃,在空中再按一次是二段跳
  • J 轻攻击,K 重攻击(按住可蓄力),L 闪避(按住是冲刺)
  • E 交互,Q 锁定敌人,Esc 暂停

【二段跳】

  • 二段跳有空翻动作,脚下有气浪特效
  • 按住 Space 跳得高,轻点跳得低
  • 刚走出平台边缘的一瞬间仍然可以起跳
  • 在空中可以闪避一次;空中攻击打中敌人后,可以再二段跳一次

【连招】

  • J J J J:四连斩,最后一击把敌人击退
  • J J K:挑空斩,把敌人打上天,然后可以跳起来追击
  • 按住 K 蓄满再松开:蓄力斩,能破防,也能击碎有裂纹的墙
  • K K K:旋风斩,攻击身边一圈
  • 冲刺中按 K:突刺
  • 闪避后马上按 J:突进斩
  • 空中 J J J:空中连斩
  • 空中按 K:下劈,落地时产生冲击波
  • 在敌人攻击快要打中时闪避:完美闪避,触发短暂的慢动作,之后按 J 可以反击

【解谜】

  • 推方块压住开关
  • 转动镜子,把光束引到水晶上
  • 会移动或会消失的平台,要用二段跳和空中闪避才能过去
  • 必须用特定招式才能激活的符文:下劈激活地面符文,旋风斩同时点亮一圈符文,蓄力斩击碎水晶
  • 解谜要和战斗结合,例如把敌人引到压力板上、用挑空斩把方块打上高台

【敌人】

  • 机械虫群:数量多,但很脆弱
  • 符文法师:远程攻击,会瞬移
  • 石像守卫:正面举着盾,需要用蓄力斩破防,或者绕到背后打
  • Boss 神殿守门者:身上有护盾,要解开光束谜题,把光反射到它身上才能破盾

【关卡】 一个完整关卡,大约 15–20 分钟,分为 5 段:

  1. 苏醒庭院:学习移动、跳跃、二段跳和推方块
  2. 断桥回廊:移动平台,第一次战斗
  3. 光之大厅:光束谜题,对战符文法师
  4. 守卫之门:招式符文,对战石像守卫
  5. 核心圣所:Boss 战 每一段都有检查点,死亡后从检查点重新开始。

【界面与声音】

  • 主菜单;暂停菜单里有连招表、按键设置、画质和音量
  • 屏幕上显示血量、锁定标记、连击数和交互提示
  • 有音效和背景音乐,进入战斗时音乐会变紧张

</details>three.js 是一个基于 WebGL 的开源 JavaScript 3D 库,MIT 协议,浏览器里那些 3D 产品展示、数据可视化很多都是用它做的。它只管渲染,物理、碰撞、动画状态机、音频这些游戏需要的东西都得自己写,所以这个需求对 AI 来说其实不轻松。

这段需求我前后一个字都没改过,后面我做的事情基本就是两件:看它跑,撞到额度上限之后回来敲一句「继续」。

先看成品:五个章节
---------

### 苏醒庭院

第一章是教学关。主角在一个金色符文阵上醒来,一路往前走,依次学移动、跳跃、二段跳和推方块。远处一直挂着一个巨大的光环,那是最后一章核心圣所的位置,越往后走离它越近。

![苏醒庭院的高台,两侧垂着粗铁链,前方是逆光的门楼,脚下是云海和漂浮的岩石](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/23f1229690504cdf89a253c3d9469549~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5rKn5rKn5YeJ5YeJ:q75.awebp?rk3s=f64ab15b&x-expires=1791815123&x-signature=9xdgJaHlLEw6bR2fz4iKtFPdhbs%3D)

这一章最后有两个推方块的谜题。其中一个压力板需要重量至少为 2,玩家自己站上去只会提示「太轻了……也许可以把方块推上去」,这个「重量」的概念后面第四章还会用到。

### 断桥回廊

第二章是一座断掉的回廊桥,要坐移动平台渡过 12 米的缺口、坐升降台爬上悬崖、踩三块会周期性消失的平台,最后是一个 10.75 米的缺口,单靠二段跳过不去,必须在空中再按一次 L 闪避才能飞过去。

![断桥回廊西侧的拱门口,两只火盆框出去路,地上有一圈金色符文,远处是云海和浮岛](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/e1650152371541439d1974341c7621d8~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5rKn5rKn5YeJ5YeJ:q75.awebp?rk3s=f64ab15b&x-expires=1791815123&x-signature=qUTwdkUdyovxvqr8XvFg65VwVLE%3D)

中间是第一次战斗:一个广场,两侧铁门关上,先来 5 只机械虫,再来 7 只。打完之后是一个挑空斩谜题:压力板在一座 4 米高的堡垒顶上,人跳不上去,方块放在堡垒脚下的石台上,要用 J J K 把方块打上去压住压力板,才会从云里升起一座桥。

![挑空斩谜题,带青绿色符文边的方块放在高台脚下的石台上,屏幕下方提示「J J K 挑空斩 可以把方块打上高台」](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/7a6f9b8c724d40519ade49d7c3bf57a8~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5rKn5rKn5YeJ5YeJ:q75.awebp?rk3s=f64ab15b&x-expires=1791815123&x-signature=1kVr54vcfk8U9cWFFcJClFvtPE0%3D)

### 光之大厅

第三章是一个有屋顶的大殿,阳光只能从几个圆形天窗和门洞照进来。这里的谜题是转镜子:按 E 镜子转 45 度,把透镜收集的阳光反射到水晶上,水晶亮了门才开。后半段有一个中继水晶,被点亮后会把光再转发出去,同时会召唤两个符文法师来捣乱。

![光之大厅后殿,两道光束在昏暗的大殿里折射,柱子之间有一束束从天窗打下来的光柱](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/094884701c8d4b1c8c5dd60b4c2ee428~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5rKn5rKn5YeJ5YeJ:q75.awebp?rk3s=f64ab15b&x-expires=1791815123&x-signature=bPaucxsjQGirFrh8GN2GHMynzfU%3D)

### 守卫之门

第四章全是「只认特定招式」的机关:地面符文只认下劈的冲击波,一圈六根符文柱只有旋风斩能同时点亮,封印水晶和裂墙只有蓄力斩打得碎。然后是石像守卫,它正面举着盾,普通攻击打上去会被弹开。

![守卫之门的平台,前方是一圈带青绿色光纹的符文柱,屏幕下方提示「K K K 旋风斩 同时点亮一圈符文」](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/160b0457a7534f0182b6eb3eecae4878~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5rKn5rKn5YeJ5YeJ:q75.awebp?rk3s=f64ab15b&x-expires=1791815123&x-signature=pcofjjmWfyVJENxZYgvoCJ7Ww2g%3D)

章末是需求里那条「把敌人引到压力板上」:大门前有一块重压力板,最低重量 4,玩家只有 1,站上去没用。要做的是把第二个石像守卫引过来,让它追你的时候踩上去,压力板会锁定,大门就开了。

![守卫之门尽头的巨门,门上刻着金色的符文圆盘,两侧立着石像](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/37cae942c0a64235b30fb378d5dff583~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5rKn5rKn5YeJ5YeJ:q75.awebp?rk3s=f64ab15b&x-expires=1791815123&x-signature=%2FsuPGZhCrgJPSZW87uBdj%2B%2FVwi4%3D)

### 核心圣所

最后是 Boss 神殿守门者,一个 7 米高的石头加金饰的巨像,胸口有个发光的核心,全身罩着一层金色的六边形护盾。护盾在的时候所有攻击都会被挡掉,要做的是转动竞技场边上的镜子,把阳光反射到它身上,累计照够时间护盾才会碎。

![神殿守门者被金色的六边形护盾罩着,屏幕下方提示「金色护盾挡下一切攻击——转动镜子,把阳光引到守门者身上」](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/ae973abbdee24ffe9d230dfe95f3ade3~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5rKn5rKn5YeJ5YeJ:q75.awebp?rk3s=f64ab15b&x-expires=1791815123&x-signature=6lPMeW2gcweR7En8KB%2BVOcNzbmA%3D)

战斗:需求里的招式都做出来了
--------------

需求里列的那一串招式,最后全部做了出来,而且都有各自的手感参数:出招、判定、收招的时间,顿帧多长,镜头震多少。

先看最基础的四连斩。刀光拖尾、命中火花、敌人受击闪白、右边的连击数,都在这几秒里:

![主角对着三只机械虫打出四连斩,刀光划出白金色的弧线,虫子被打得闪白,右侧连击数从 2 跳到 8](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/520b4e0390054e28bec42c670fb31a47~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5rKn5rKn5YeJ5YeJ:q75.awebp?rk3s=f64ab15b&x-expires=1791815123&x-signature=VjQVW1NDcesbHLxT%2F3Zwi92kraQ%3D)

二段跳有空翻,脚下会炸开一圈气浪,落地有尘土:

![主角原地起跳,在最高点再按一次跳跃,身体前空翻,脚下炸开一圈白色气浪](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/fbe7d411890140bfba18a72994be1978~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5rKn5rKn5YeJ5YeJ:q75.awebp?rk3s=f64ab15b&x-expires=1791815123&x-signature=fg%2B8Wn1hq8%2BK7yX4Zs7L%2FwLIxV0%3D)

挑空斩接空中连斩,虫子被打上天之后,按 Space 跳起来追着砍:

![主角用挑空斩把一只机械虫打上天,随后跳起在空中继续挥刀](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/74d9aa65c9f449fbbd58c19517d2f2f1~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5rKn5rKn5YeJ5YeJ:q75.awebp?rk3s=f64ab15b&x-expires=1791815123&x-signature=nB2heMGIy8Qunem6Uhs3pW9LqS0%3D)

效果最明显的是完美闪避。虫子扑过来之前地上会先亮一块橙红色的预警,在快被咬到的瞬间闪避,画面会变慢变蓝,弹出「完美闪避」,原地留一个残影,这时候按 J 就瞬移过去反击:

![机械虫扑咬前地面出现橙红色的扇形预警,主角在最后一刻闪避,画面进入蓝色的慢动作并显示完美闪避,随后反击](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/500a62bc712e4345a7841fbbd6ccf810~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5rKn5rKn5YeJ5YeJ:q75.awebp?rk3s=f64ab15b&x-expires=1791815123&x-signature=kKw6JBAtz93Q%2ByD5mPW3Cz1K5tY%3D)

锁定(Q)、蓄力时脚下的光环、被盾挡住时的蓝色火花和后弹,这些需求里没写细节的地方它也都补上了。

解谜:用招式开机关
---------

镜子谜题。站在镜子旁边按 E,镜子转 45 度,光束拐弯打到水晶上,水晶亮起,远处的符文门也跟着亮了:

![主角站在镜子旁按下 E,镜子转动后光束拐向右侧的水晶,水晶和后方的符文门依次亮起](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/9540928dd193441684cb1900ed7cb9b7~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5rKn5rKn5YeJ5YeJ:q75.awebp?rk3s=f64ab15b&x-expires=1791815123&x-signature=T8XsA%2BBbF9eB56PN%2BIapAVvoljI%3D)

下劈激活地面符文。原地起跳、空中按 K,落地的冲击波扫过地面符文,符文变成白金色,旁边的平台跟着升起来:

![主角跳起后空中下劈,落地的冲击波扫过青绿色的地面符文,符文变成白金色,旁边的石台缓缓升起](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/f4ccd45014d247dfb74bc10feb80f35f~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5rKn5rKn5YeJ5YeJ:q75.awebp?rk3s=f64ab15b&x-expires=1791815123&x-signature=H6ABpZd5zc6HkQceglhZq1Jf8LE%3D)

旋风斩点亮一圈符文柱。六根柱子必须在 0.35 秒内全部被打到,只有旋风斩那一圈能做到:

![主角站在一圈符文柱中央连按三次 K,最后一下旋风斩扫过所有柱子,六根柱子同时亮起并爆出光芒](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/f88a4049112e4d72a25cc2a210dc6272~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5rKn5rKn5YeJ5YeJ:q75.awebp?rk3s=f64ab15b&x-expires=1791815123&x-signature=e6vWCDqFsxcK5ugK9ff4flPFI3A%3D)

蓄力斩击碎裂墙。按住 K 的时候脚下的光环会越来越亮,蓄满松开,墙碎成一地石块:

![主角面对一面布满青绿色裂纹的墙按住 K 蓄力,脚下的金色光环逐渐变亮,松开后一刀劈出,墙碎成石块](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/7ca94075fc6b497287fdc737b6b1cbd7~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5rKn5rKn5YeJ5YeJ:q75.awebp?rk3s=f64ab15b&x-expires=1791815123&x-signature=0e%2FEAgiwcbG2pcXNcFd9mCFteZ0%3D)

Boss 战
------

Boss 每隔一段时间会走回竞技场中央的基座上「汲取核心」,这时候它站着不动,是把光引过去的最好时机。镜子调对之后,光束照到它身上,护盾会一点点充能,满了就碎,然后它会跪下来硬直几秒,这是输出窗口:

![神殿守门者走回竞技场中央汲取核心,经过镜子反射的光束照在它身上,护盾碎裂,巨像跪倒在地](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/21b7f2180d914a8ea781fedd0809dcf8~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5rKn5rKn5YeJ5YeJ:q75.awebp?rk3s=f64ab15b&x-expires=1791815123&x-signature=97H5IEzW1WjNT5GcQVF%2FS%2BDk49E%3D)

血量打到一半进入第二阶段,它会把镜子重新打乱、召唤一个符文法师,攻击也会变快。打赢之后是通关画面,会显示用时、倒下次数和最高连击。下面这张是用调试命令直接触发的,所以用时只有 3 秒:

![通关画面,「通关」两个字下面列着用时、倒下次数和最高连击,背景是核心圣所和天上的光环](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/e88c03adc9764e80afde97b8f2efd0c3~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5rKn5rKn5YeJ5YeJ:q75.awebp?rk3s=f64ab15b&x-expires=1791815123&x-signature=kPreMkw80pl734y7%2Bm4ibKPgrBU%3D)

界面
--

暂停菜单里有需求要的连招表、按键设置、画质和音量。连招表上的按键是根据当前的键位绑定生成的,改了键这里会跟着变:

![暂停菜单的连招表页面,左边是分页,右边按轻击连段、重击分组列出每个招式的按键、说明和伤害](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/d5392e8ee028461aa062feb5d5b8a943~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5rKn5rKn5YeJ5YeJ:q75.awebp?rk3s=f64ab15b&x-expires=1791815123&x-signature=KFlYXDgiBK2sGSMriV4qgmVj13k%3D)

![暂停菜单的按键设置页面,移动和战斗互动两组键位各占一列,下面是鼠标灵敏度、镜头震动和反转 Y 轴的设置](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/89ec10dedcdc4a709b416e04b460957a~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5rKn5rKn5YeJ5YeJ:q75.awebp?rk3s=f64ab15b&x-expires=1791815123&x-signature=d0yfFU6ymg3cNXB3g8JJ7UQhfv4%3D)

它是怎么做出来的
--------

这次用的是 Claude Code 里的多代理工作流,模型是 Opus 5.5。这个规模的项目不可能一个会话从头写到尾,上下文根本装不下,所以它的做法是先拆,再并行,再合。

### 先写一份「合同」

动手之前,它先写了两份文档:`ARCHITECTURE.md` 和 `GAME_DESIGN.md`。前者规定了每个模块叫什么、暴露哪些接口、事件叫什么名字、哪个文件归谁管;后者是所有数值,比如跑速每秒 7 米、跳跃初速度、二段跳能跨多宽的缺口、每个招式的伤害和顿帧,以及五个章节的坐标范围和检查点位置。

这两份文档后面会发给每一个代理,它们之间不能直接沟通,靠的就是这份「合同」。

### 地基:一个代理先把骨架搭起来

第一步只派了一个代理,写核心循环、物理、命中判定、关卡框架和测试工具,然后给其余所有模块各写一个能跑的「桩」:渲染只有一个渐变天空,主角是一个胶囊体,敌人是会追人的方块。这样不管后面哪个模块没做完,游戏都能启动。

写完之后再派两个代理去审:一个对着合同逐条核对接口,一个专门跑物理和战斗的边界情况。它们找出了 23 个问题,比如检查点只在 3 米范围内才触发、宽走廊里贴边走就会错过,再由一个代理统一修掉。

### 八个系统并行

地基好了之后,渲染、特效、音频、玩家与镜头、角色模型、敌人、谜题、UI 这 8 个模块同时开工。每个代理在自己的 git worktree 里干活,只能改自己名下的文件,看到的其他模块全是桩,所以只能严格按合同写接口。做完之后 8 个分支合并回主干,因为文件互不重叠,一次冲突都没有。

接下来再派一个集成代理,把 8 个模块之间的接口问题收拾干净,比如角色模型挥刀最快的那一帧,要和招式判定生效的那一帧对上。然后三个内容代理同时开工:一个做第一、二章,一个做第三、四章,一个做第五章和 Boss。

### 两轮 QA

做完之后是两轮测试。第一轮派了 4 个代理,分别从「能不能通关」「战斗手感」「画面和性能」「界面和音频」四个角度去玩;第二轮换成「第一次玩的玩家」「美术总监」「专门找茬」三个角度。它们会写机器人脚本,用真实的键盘事件去打怪、跳台子、解谜,测出问题再交给修复代理。

最后一共跑了 33 个代理,整理一下大概是这样:

<table readabilitydatatable="1"><thead><tr><th>阶段</th><th>代理数</th><th>耗时</th><th>子代理 token</th></tr></thead><tbody><tr><td>地基</td><td>4</td><td>约 1.6 小时</td><td>约 145 万</td></tr><tr><td>八个系统(第四次才跑完)</td><td>8</td><td>约 39 分钟</td><td>约 151 万</td></tr><tr><td>集成 + 五个章节 + Boss</td><td>4</td><td>约 2.2 小时</td><td>约 165 万</td></tr><tr><td>第一轮 QA</td><td>8</td><td>约 2.7 小时</td><td>约 164 万</td></tr><tr><td>第二轮 QA</td><td>7</td><td>约 2.9 小时</td><td>约 136 万</td></tr><tr><td>最终集成与独立复核</td><td>2</td><td>约 1.7 小时</td><td>约 42 万</td></tr></tbody></table>

前面三次被额度打断的那几轮还另外烧掉了不少,有记录的两次各 190 万左右,加起来一共约 1180 万 token。最终 src 目录下是 128 个文件、大约 4.9 万行代码,一共 123 次提交,27 套自动化测试,9 个检查点在我这台 M2 Pro 上全部稳定 60 帧。

踩的坑
---

### 5 小时额度,撞了三次

八个系统并行那一步,我撞了三次 5 小时额度的上限。8 个代理同时跑,大概十几分钟额度就没了,所有代理一起断掉。第一次断掉的时候,它们写到一半的代码还没提交,只能从几个残留的 worktree 里把文件捞出来。

后来改了两件事:一是要求每个代理做完一个阶段就先提交一次,断了之后新代理能接着上次的进度继续;二是把同时运行的代理从 8 个降到 3 个。第二点是关键,因为每个代理一开场都要先把两份合同和相关代码读一遍,8 个一起断再一起重来,大半额度都花在重新读文档上了。降到 3 个之后,第四次一口气跑完了。

### QA 找出来的问题,挺像真人测试会报的

两轮 QA 一共报了 49 个问题,有几个我觉得很有代表性:

- **推方块卡死**:第一章有个方块可以被推到栏杆和路沿的缝里,推不动也不会自动复位,第一次玩的人只能退回主菜单重来。
- **Boss 太弱**:只要两面镜子调对一次,护盾一再生 1.5 秒就又碎了,测试机器人 34 到 49 秒就能把 Boss 打死。后来改成每次破盾最多打掉 30% 血,护盾恢复时会把镜子重新打乱。
- **教学提示滞后**:提示是排队显示的,每条都要显示满时间才轮到下一条,结果「Space 跳跃」出现的时候,玩家早就跳过第一个缺口了。
- **阴影变成紫黑色**:调色时的对比度是在线性空间里以 0.5 为中心算的,暗部的绿色通道被直接压成 0,所有阴影都发紫。这个只看截图很难发现,是美术那个视角的代理拿像素值算出来的。
- **死亡音效播两次**:敌人自己播了一次,音频模块收到死亡事件又播了一次。

### 测试测不到的地方

自动化测试全是在无头浏览器里跑的,有两件事它测不了。

一是鼠标锁定。最后让 Claude 自己在桌面应用的内置浏览器里过一遍的时候发现,这个嵌入式浏览器不允许锁定鼠标,结果视角完全转不了。后来补了一个兜底:锁不住鼠标的时候,按住鼠标拖动也能转视角,画面上会提示「点击画面锁定鼠标」。所以要玩的话,最好还是在独立的 Chrome 窗口里打开。

二是声音。所有音效都是代码合成的,测试只能检查音量、峰值、有没有异常值,没有一个代理真的「听」过。到底好不好听,还得我自己听。

还差在哪
----

说实话,这个游戏离真正好玩还有距离。

画面是好看的,黄昏的光、云海、光柱,截图拿出来挺能唬人,但仔细看,建筑都是方块和圆柱拼出来的,墙面也就那几种材质来回用。角色动作是代码 K 出来的关键帧,能看,但和动捕做的动作没法比。

难度也还没调准。机器人测出来,会闪避的玩家打虫群也要掉三成多的血,比设定的目标偏难。估算第一次玩要 18 到 25 分钟,比需求里的 15 到 20 分钟略长,多出来的主要是 Boss 战的重试。

但回头看这件事本身:一段需求,没有一个素材,从空文件夹到一个能完整通关的 3D 游戏,中间我没有写一行代码,花时间最多的反而是等额度恢复。

---

本文首发于 [www.cclliang.com/2026/10/05/…](https://link.juejin.cn?target=https%3A%2F%2Fwww.cclliang.com%2F2026%2F10%2F05%2Fvibe-coding%2Fe4%2F "https://www.cclliang.com/2026/10/05/vibe-coding/e4/"),转载请注明出处。

</div>