一段需求、零素材,Claude Code 派了 33 个代理给我做了个 3D 动作游戏
英文标题:一段需求、零素材,Claude Code 派了 33 个代理给我做了个 3D 动作游戏
一段需求、不给任何素材,Claude Code 派了 33 个代理,用代码生成全部模型、贴图和音效,做出一个能完整通关的浏览器 3D 动作解谜游戏。文中附在线试玩、多代理工作流拆解和踩坑记录。
53.9 KB
84.1 KB
62.8 KB
54.5 KB
59.8 KB
36.4 KB
51.0 KB
44.9 KB
58.8 KB
890.1 KB
576.2 KB
1.3 MB
611.1 KB
311.8 KB
788.0 KB
887.7 KB
720.4 KB
924.6 KB
中文
上一篇折腾火柴人的时候,最大的坎是素材: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 战
每一段都有检查点,死亡后从检查点重新开始。
【界面与声音】
- 主菜单;暂停菜单里有连招表、按键设置、画质和音量
- 屏幕上显示血量、锁定标记、连击数和交互提示
- 有音效和背景音乐,进入战斗时音乐会变紧张
three.js 是一个基于 WebGL 的开源 JavaScript 3D 库,MIT 协议,浏览器里那些 3D 产品展示、数据可视化很多都是用它做的。它只管渲染,物理、碰撞、动画状态机、音频这些游戏需要的东西都得自己写,所以这个需求对 AI 来说其实不轻松。
这段需求我前后一个字都没改过,后面我做的事情基本就是两件:看它跑,撞到额度上限之后回来敲一句「继续」。
先看成品:五个章节
苏醒庭院
第一章是教学关。主角在一个金色符文阵上醒来,一路往前走,依次学移动、跳跃、二段跳和推方块。远处一直挂着一个巨大的光环,那是最后一章核心圣所的位置,越往后走离它越近。
这一章最后有两个推方块的谜题。其中一个压力板需要重量至少为 2,玩家自己站上去只会提示「太轻了……也许可以把方块推上去」,这个「重量」的概念后面第四章还会用到。
断桥回廊
第二章是一座断掉的回廊桥,要坐移动平台渡过 12 米的缺口、坐升降台爬上悬崖、踩三块会周期性消失的平台,最后是一个 10.75 米的缺口,单靠二段跳过不去,必须在空中再按一次 L 闪避才能飞过去。
中间是第一次战斗:一个广场,两侧铁门关上,先来 5 只机械虫,再来 7 只。打完之后是一个挑空斩谜题:压力板在一座 4 米高的堡垒顶上,人跳不上去,方块放在堡垒脚下的石台上,要用 J J K 把方块打上去压住压力板,才会从云里升起一座桥。
光之大厅
第三章是一个有屋顶的大殿,阳光只能从几个圆形天窗和门洞照进来。这里的谜题是转镜子:按 E 镜子转 45 度,把透镜收集的阳光反射到水晶上,水晶亮了门才开。后半段有一个中继水晶,被点亮后会把光再转发出去,同时会召唤两个符文法师来捣乱。
守卫之门
第四章全是「只认特定招式」的机关:地面符文只认下劈的冲击波,一圈六根符文柱只有旋风斩能同时点亮,封印水晶和裂墙只有蓄力斩打得碎。然后是石像守卫,它正面举着盾,普通攻击打上去会被弹开。
章末是需求里那条「把敌人引到压力板上」:大门前有一块重压力板,最低重量 4,玩家只有 1,站上去没用。要做的是把第二个石像守卫引过来,让它追你的时候踩上去,压力板会锁定,大门就开了。
核心圣所
最后是 Boss 神殿守门者,一个 7 米高的石头加金饰的巨像,胸口有个发光的核心,全身罩着一层金色的六边形护盾。护盾在的时候所有攻击都会被挡掉,要做的是转动竞技场边上的镜子,把阳光反射到它身上,累计照够时间护盾才会碎。
战斗:需求里的招式都做出来了
需求里列的那一串招式,最后全部做了出来,而且都有各自的手感参数:出招、判定、收招的时间,顿帧多长,镜头震多少。
先看最基础的四连斩。刀光拖尾、命中火花、敌人受击闪白、右边的连击数,都在这几秒里:
二段跳有空翻,脚下会炸开一圈气浪,落地有尘土:
挑空斩接空中连斩,虫子被打上天之后,按 Space 跳起来追着砍:
效果最明显的是完美闪避。虫子扑过来之前地上会先亮一块橙红色的预警,在快被咬到的瞬间闪避,画面会变慢变蓝,弹出「完美闪避」,原地留一个残影,这时候按 J 就瞬移过去反击:
锁定(Q)、蓄力时脚下的光环、被盾挡住时的蓝色火花和后弹,这些需求里没写细节的地方它也都补上了。
解谜:用招式开机关
镜子谜题。站在镜子旁边按 E,镜子转 45 度,光束拐弯打到水晶上,水晶亮起,远处的符文门也跟着亮了:
下劈激活地面符文。原地起跳、空中按 K,落地的冲击波扫过地面符文,符文变成白金色,旁边的平台跟着升起来:
旋风斩点亮一圈符文柱。六根柱子必须在 0.35 秒内全部被打到,只有旋风斩那一圈能做到:
蓄力斩击碎裂墙。按住 K 的时候脚下的光环会越来越亮,蓄满松开,墙碎成一地石块:
Boss 战
Boss 每隔一段时间会走回竞技场中央的基座上「汲取核心」,这时候它站着不动,是把光引过去的最好时机。镜子调对之后,光束照到它身上,护盾会一点点充能,满了就碎,然后它会跪下来硬直几秒,这是输出窗口:
血量打到一半进入第二阶段,它会把镜子重新打乱、召唤一个符文法师,攻击也会变快。打赢之后是通关画面,会显示用时、倒下次数和最高连击。下面这张是用调试命令直接触发的,所以用时只有 3 秒:
界面
暂停菜单里有需求要的连招表、按键设置、画质和音量。连招表上的按键是根据当前的键位绑定生成的,改了键这里会跟着变:
它是怎么做出来的
这次用的是 Claude Code 里的多代理工作流,模型是 Opus 5.5。这个规模的项目不可能一个会话从头写到尾,上下文根本装不下,所以它的做法是先拆,再并行,再合。
先写一份「合同」
动手之前,它先写了两份文档:ARCHITECTURE.md 和 GAME_DESIGN.md。前者规定了每个模块叫什么、暴露哪些接口、事件叫什么名字、哪个文件归谁管;后者是所有数值,比如跑速每秒 7 米、跳跃初速度、二段跳能跨多宽的缺口、每个招式的伤害和顿帧,以及五个章节的坐标范围和检查点位置。
这两份文档后面会发给每一个代理,它们之间不能直接沟通,靠的就是这份「合同」。
地基:一个代理先把骨架搭起来
第一步只派了一个代理,写核心循环、物理、命中判定、关卡框架和测试工具,然后给其余所有模块各写一个能跑的「桩」:渲染只有一个渐变天空,主角是一个胶囊体,敌人是会追人的方块。这样不管后面哪个模块没做完,游戏都能启动。
写完之后再派两个代理去审:一个对着合同逐条核对接口,一个专门跑物理和战斗的边界情况。它们找出了 23 个问题,比如检查点只在 3 米范围内才触发、宽走廊里贴边走就会错过,再由一个代理统一修掉。
八个系统并行
地基好了之后,渲染、特效、音频、玩家与镜头、角色模型、敌人、谜题、UI 这 8 个模块同时开工。每个代理在自己的 git worktree 里干活,只能改自己名下的文件,看到的其他模块全是桩,所以只能严格按合同写接口。做完之后 8 个分支合并回主干,因为文件互不重叠,一次冲突都没有。
接下来再派一个集成代理,把 8 个模块之间的接口问题收拾干净,比如角色模型挥刀最快的那一帧,要和招式判定生效的那一帧对上。然后三个内容代理同时开工:一个做第一、二章,一个做第三、四章,一个做第五章和 Boss。
两轮 QA
做完之后是两轮测试。第一轮派了 4 个代理,分别从「能不能通关」「战斗手感」「画面和性能」「界面和音频」四个角度去玩;第二轮换成「第一次玩的玩家」「美术总监」「专门找茬」三个角度。它们会写机器人脚本,用真实的键盘事件去打怪、跳台子、解谜,测出问题再交给修复代理。
最后一共跑了 33 个代理,整理一下大概是这样:
| 阶段 | 代理数 | 耗时 | 子代理 token |
|---|---|---|---|
| 地基 | 4 | 约 1.6 小时 | 约 145 万 |
| 八个系统(第四次才跑完) | 8 | 约 39 分钟 | 约 151 万 |
| 集成 + 五个章节 + Boss | 4 | 约 2.2 小时 | 约 165 万 |
| 第一轮 QA | 8 | 约 2.7 小时 | 约 164 万 |
| 第二轮 QA | 7 | 约 2.9 小时 | 约 136 万 |
| 最终集成与独立复核 | 2 | 约 1.7 小时 | 约 42 万 |
前面三次被额度打断的那几轮还另外烧掉了不少,有记录的两次各 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/…,转载请注明出处。
English / 原文
上一篇折腾火柴人的时候,最大的坎是素材: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 战
每一段都有检查点,死亡后从检查点重新开始。
【界面与声音】
- 主菜单;暂停菜单里有连招表、按键设置、画质和音量
- 屏幕上显示血量、锁定标记、连击数和交互提示
- 有音效和背景音乐,进入战斗时音乐会变紧张
three.js 是一个基于 WebGL 的开源 JavaScript 3D 库,MIT 协议,浏览器里那些 3D 产品展示、数据可视化很多都是用它做的。它只管渲染,物理、碰撞、动画状态机、音频这些游戏需要的东西都得自己写,所以这个需求对 AI 来说其实不轻松。
这段需求我前后一个字都没改过,后面我做的事情基本就是两件:看它跑,撞到额度上限之后回来敲一句「继续」。
先看成品:五个章节
苏醒庭院
第一章是教学关。主角在一个金色符文阵上醒来,一路往前走,依次学移动、跳跃、二段跳和推方块。远处一直挂着一个巨大的光环,那是最后一章核心圣所的位置,越往后走离它越近。
这一章最后有两个推方块的谜题。其中一个压力板需要重量至少为 2,玩家自己站上去只会提示「太轻了……也许可以把方块推上去」,这个「重量」的概念后面第四章还会用到。
断桥回廊
第二章是一座断掉的回廊桥,要坐移动平台渡过 12 米的缺口、坐升降台爬上悬崖、踩三块会周期性消失的平台,最后是一个 10.75 米的缺口,单靠二段跳过不去,必须在空中再按一次 L 闪避才能飞过去。
中间是第一次战斗:一个广场,两侧铁门关上,先来 5 只机械虫,再来 7 只。打完之后是一个挑空斩谜题:压力板在一座 4 米高的堡垒顶上,人跳不上去,方块放在堡垒脚下的石台上,要用 J J K 把方块打上去压住压力板,才会从云里升起一座桥。
光之大厅
第三章是一个有屋顶的大殿,阳光只能从几个圆形天窗和门洞照进来。这里的谜题是转镜子:按 E 镜子转 45 度,把透镜收集的阳光反射到水晶上,水晶亮了门才开。后半段有一个中继水晶,被点亮后会把光再转发出去,同时会召唤两个符文法师来捣乱。
守卫之门
第四章全是「只认特定招式」的机关:地面符文只认下劈的冲击波,一圈六根符文柱只有旋风斩能同时点亮,封印水晶和裂墙只有蓄力斩打得碎。然后是石像守卫,它正面举着盾,普通攻击打上去会被弹开。
章末是需求里那条「把敌人引到压力板上」:大门前有一块重压力板,最低重量 4,玩家只有 1,站上去没用。要做的是把第二个石像守卫引过来,让它追你的时候踩上去,压力板会锁定,大门就开了。
核心圣所
最后是 Boss 神殿守门者,一个 7 米高的石头加金饰的巨像,胸口有个发光的核心,全身罩着一层金色的六边形护盾。护盾在的时候所有攻击都会被挡掉,要做的是转动竞技场边上的镜子,把阳光反射到它身上,累计照够时间护盾才会碎。
战斗:需求里的招式都做出来了
需求里列的那一串招式,最后全部做了出来,而且都有各自的手感参数:出招、判定、收招的时间,顿帧多长,镜头震多少。
先看最基础的四连斩。刀光拖尾、命中火花、敌人受击闪白、右边的连击数,都在这几秒里:
二段跳有空翻,脚下会炸开一圈气浪,落地有尘土:
挑空斩接空中连斩,虫子被打上天之后,按 Space 跳起来追着砍:
效果最明显的是完美闪避。虫子扑过来之前地上会先亮一块橙红色的预警,在快被咬到的瞬间闪避,画面会变慢变蓝,弹出「完美闪避」,原地留一个残影,这时候按 J 就瞬移过去反击:
锁定(Q)、蓄力时脚下的光环、被盾挡住时的蓝色火花和后弹,这些需求里没写细节的地方它也都补上了。
解谜:用招式开机关
镜子谜题。站在镜子旁边按 E,镜子转 45 度,光束拐弯打到水晶上,水晶亮起,远处的符文门也跟着亮了:
下劈激活地面符文。原地起跳、空中按 K,落地的冲击波扫过地面符文,符文变成白金色,旁边的平台跟着升起来:
旋风斩点亮一圈符文柱。六根柱子必须在 0.35 秒内全部被打到,只有旋风斩那一圈能做到:
蓄力斩击碎裂墙。按住 K 的时候脚下的光环会越来越亮,蓄满松开,墙碎成一地石块:
Boss 战
Boss 每隔一段时间会走回竞技场中央的基座上「汲取核心」,这时候它站着不动,是把光引过去的最好时机。镜子调对之后,光束照到它身上,护盾会一点点充能,满了就碎,然后它会跪下来硬直几秒,这是输出窗口:
血量打到一半进入第二阶段,它会把镜子重新打乱、召唤一个符文法师,攻击也会变快。打赢之后是通关画面,会显示用时、倒下次数和最高连击。下面这张是用调试命令直接触发的,所以用时只有 3 秒:
界面
暂停菜单里有需求要的连招表、按键设置、画质和音量。连招表上的按键是根据当前的键位绑定生成的,改了键这里会跟着变:
它是怎么做出来的
这次用的是 Claude Code 里的多代理工作流,模型是 Opus 5.5。这个规模的项目不可能一个会话从头写到尾,上下文根本装不下,所以它的做法是先拆,再并行,再合。
先写一份「合同」
动手之前,它先写了两份文档:ARCHITECTURE.md 和 GAME_DESIGN.md。前者规定了每个模块叫什么、暴露哪些接口、事件叫什么名字、哪个文件归谁管;后者是所有数值,比如跑速每秒 7 米、跳跃初速度、二段跳能跨多宽的缺口、每个招式的伤害和顿帧,以及五个章节的坐标范围和检查点位置。
这两份文档后面会发给每一个代理,它们之间不能直接沟通,靠的就是这份「合同」。
地基:一个代理先把骨架搭起来
第一步只派了一个代理,写核心循环、物理、命中判定、关卡框架和测试工具,然后给其余所有模块各写一个能跑的「桩」:渲染只有一个渐变天空,主角是一个胶囊体,敌人是会追人的方块。这样不管后面哪个模块没做完,游戏都能启动。
写完之后再派两个代理去审:一个对着合同逐条核对接口,一个专门跑物理和战斗的边界情况。它们找出了 23 个问题,比如检查点只在 3 米范围内才触发、宽走廊里贴边走就会错过,再由一个代理统一修掉。
八个系统并行
地基好了之后,渲染、特效、音频、玩家与镜头、角色模型、敌人、谜题、UI 这 8 个模块同时开工。每个代理在自己的 git worktree 里干活,只能改自己名下的文件,看到的其他模块全是桩,所以只能严格按合同写接口。做完之后 8 个分支合并回主干,因为文件互不重叠,一次冲突都没有。
接下来再派一个集成代理,把 8 个模块之间的接口问题收拾干净,比如角色模型挥刀最快的那一帧,要和招式判定生效的那一帧对上。然后三个内容代理同时开工:一个做第一、二章,一个做第三、四章,一个做第五章和 Boss。
两轮 QA
做完之后是两轮测试。第一轮派了 4 个代理,分别从「能不能通关」「战斗手感」「画面和性能」「界面和音频」四个角度去玩;第二轮换成「第一次玩的玩家」「美术总监」「专门找茬」三个角度。它们会写机器人脚本,用真实的键盘事件去打怪、跳台子、解谜,测出问题再交给修复代理。
最后一共跑了 33 个代理,整理一下大概是这样:
| 阶段 | 代理数 | 耗时 | 子代理 token |
|---|---|---|---|
| 地基 | 4 | 约 1.6 小时 | 约 145 万 |
| 八个系统(第四次才跑完) | 8 | 约 39 分钟 | 约 151 万 |
| 集成 + 五个章节 + Boss | 4 | 约 2.2 小时 | 约 165 万 |
| 第一轮 QA | 8 | 约 2.7 小时 | 约 164 万 |
| 第二轮 QA | 7 | 约 2.9 小时 | 约 136 万 |
| 最终集成与独立复核 | 2 | 约 1.7 小时 | 约 42 万 |
前面三次被额度打断的那几轮还另外烧掉了不少,有记录的两次各 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/…,转载请注明出处。