一句话总结
「从单个 prompt 到一个可玩的 3D FPS 游戏」——这听起来像科幻,但 Claude of Duty 把它变成了现实。55,000 行代码、11 个子系统、零外部美术素材,全部由 AI Agent 舰队协作生成。
为什么这件事值得关注?
过去一年,我们见证了 AI 编码从「补全一行代码」进化到「写一个完整功能」。但 Claude of Duty 把边界又推远了一步:一个完整的 3D 游戏,从渲染管线到物理引擎到 AI 敌人,全部由 Agent 生成。
关键不是游戏本身——而是一个可复用的 多 Agent 协作框架。这个框架定义了子系统接口、目录所有权、跨系统事件词汇表和共享类型,让多个 Agent 可以并行工作而不互相踩脚。
可以说,Claude of Duty 是一个「Agent 协作极限」的概念验证:当 AI 编码能力足够强时,唯一限制是协作框架的设计。
技术架构:11 个子系统一览
┌──────────────────────────────────────────────────┐
│ Claude of Duty │
│ ≈55,000 行 Three.js + WebGL2 │
├────────────┬────────────┬────────────┬───────────┤
│ render │ materials │ sky │ world │
│ HDR 管线 │ 程序化材质 │ 大气散射 │ 模块化建筑│
├────────────┼────────────┼────────────┼───────────┤
│ physics │ player │ weapons │ fx │
│ 手写引擎 │ 角色控制 │ 武器系统 │ GPU 粒子 │
├────────────┼────────────┼────────────┼───────────┤
│ ai │ ui │ audio │ │
│ 智能敌人 │ DOM HUD │ Web Audio │ │
└────────────┴────────────┴────────────┴───────────┘
每个子系统由专门的 Agent 负责编写,它们之间的接口和依赖关系由 ARCHITECTURE.md 约定——这份文档是 Agent 的「施工蓝图」。
Render(渲染管线)
完整的 HDR 渲染管线:级联阴影贴图(PCSS 接触硬化)、MRT 延迟渲染(深度/法线/速度)、GTAO 环境光遮蔽、TAA 时间抗锯齿(YCoCg 方差裁剪)、Karis 泛光金字塔、GPU 曝光测光、程序化 33³ 色彩分级 LUT、AgX 色调映射合成。
Materials(材质系统)
最令人印象深刻的部分——19 种程序化表面材质,不需要任何贴图文件:混凝土、砖墙、灰泥、沥青、沙子、锈蚀/涂漆/拉丝金属、木材、织物、粗麻布、玻璃等。使用周期性噪声保证无缝拼接、Sobel 高度→法线转换、视差遮蔽映射、三平面投影、曲率驱动的边缘磨损。
Physics(物理引擎)
完全手写的物理引擎,零第三方依赖。包括:基于 SAH 的 BVH 加速结构(29k 三角形 → 14k 节点,22ms 构建,0.25μs/射线)、扫掠胶囊角色控制器(5 平面折痕堆栈)、脉冲刚体 + CCD 连续碰撞检测、PBD 布娃娃、多层子弹穿透。
World(游戏世界)
约 120×120 米的街市场景:模块化建筑套件(真实墙体厚度)、可进入的室内空间、数百个实例化道具。
Audio(音效系统)
全部由 Web Audio API 合成——无音频文件。分层武器开火音效、卷积混响、HRTF 空间化、遮蔽效果。
多 Agent 协作的秘密:「脚手架」才是核心
很多人关注「从 prompt 到游戏」的魔幻效果,但真正值得学习的是项目的 工具链(Harness):
| 工具 | 用途 |
|---|---|
tools/capture.mjs | GPU 无头 Chromium 截图单个镜头 |
tools/shotset.mjs | 一次会话捕获全部 11 个镜头 |
tools/baseline.mjs | 可复现截图——每个镜头在独立页面、固定帧预算,跨运行 bit 完全相同 |
tools/imagediff.mjs | 自动对比两个运行的截图差异 |
这套工具链的设计思想是「Agent 写代码 → 自动截图验证 → 与上一版对比」,形成了一个自动化的视觉回归测试流水线。这是 Agent 能在 55k 行代码中保持质量的关键。
核心启示:AI Agent 单体编码能力有上限,但通过良好的架构约定、接口设计和自动化验证工具链,多个 Agent 可以像工程师团队一样分工协作。
实际体验
Clone 下来就能跑:
git clone https://github.com/mshumer/Claude-of-Duty.git
cd Claude-of-Duty
npm install
npm run dev # http://127.0.0.1:5173
操作说明:点击画布锁定鼠标,WASD 移动,鼠标瞄准,左键射击,右键瞄准镜,R 换弹,Shift 冲刺,Ctrl 蹲伏,空格跳跃,Q/E 侧身,Esc 释放光标。
体量惊人:仅 three 一个运行时依赖,无模型文件、无 HDR 贴图、无图片文件、无音频文件——所有内容在加载时由代码生成。最终的 bundle 就是一个纯 JS 应用。
对 AI 开发者的意义
Claude of Duty 不是一个游戏项目——它是一个方法论展示:
- 架构先于代码:
ARCHITECTURE.md定义了所有 Agent 的共同语言,让并行工作成为可能 - 自动化验证是必需品:55k 行代码如果没有 automated visual regression,根本无法维护
- 程序化生成替代美术资产:当 AI Agent 可以写代码但不能创建 PSD 文件时,程序化生成是唯一出路
- Agent 协作需要「合同」:子系统的接口、目录归属、事件词汇——这些就是 Agent 之间的 API 合同
局限与反思
- 游戏性有限:这是一个技术展示,不是商业级 FPS。AI 敌人、地图设计都比较基础
- 代码质量:Agent 生成的 55k 行代码中,肯定存在冗余和不够优雅的部分
- 可维护性:即使有工具链辅助,维护 Agent 生成的 55k 行代码仍然是一个挑战
- 成本:生成这样一个项目消耗的 API token 量相当可观,AgentAcct(上文介绍的工具)正好可以用来追踪
总结
- 极限展示:单个 prompt → 55k 行代码的完整 3D FPS 游戏,推进了「AI 能写多大项目」的边界
- 架构为王:多 Agent 协作的关键不是 Agent 本身,而是接口设计、自动化验证和架构约定
- 程序化万能:零外部素材——纹理、模型、音效全部代码生成,证明了 AI 时代「code as asset」的可行性
- 工具链是护城河:截图对比、基线测试这些工具链让 AI 输出的代码可验证、可迭代
- 121 Star / 2 天:虽不如 Claude of Duty 这个名字的传播性大,但技术社区对多 Agent 协作框架有真实兴趣
GitHub 仓库:github.com/mshumer/Claude-of-Duty 在线试玩:Clone 后在本地
npm run dev许可证:开源
数据来源:GitHub API(2026-07-26),项目 README 及 ARCHITECTURE.md。