我在一天内使用 AI 代理构建了完整游戏——以下是发生的事情
Source: Dev.to
如果你能在一天之内构建一个完整的游戏原型——不是玩具演示,而是拥有 14 个相互关联的系统 的作品,会怎样?
这正是我用 Somnia 实现的,它是一款使用 Godot 4.6 和 GDScript 开发的温馨生活模拟 RPG。
转折点在于:我协调了一支并行工作的 AI 子代理团队,每个代理都有专门的角色。
下面是对哪些方法有效、哪些让我惊讶以及我会如何不同做的诚实总结。
The Setup: An AI Agent Team, Not “AI Writing Code”
让我说清楚——这并不是“把提示粘贴进 ChatGPT 就得到游戏”。我构建了一个 多代理流水线,每个代理都有特定的角色:
| Agent | Role | Responsibility |
|---|---|---|
| PM | Feature specs, task breakdown, priority ordering | |
| Architect | System design, component interfaces, data flow | |
| Lead Dev | Core implementation, code review, integration | |
| Security | Input validation, save‑file integrity, exploit prevention | |
| QA | Test writing, coverage tracking, regression checks | |
| DevOps | Build pipeline, export configs, CI setup |
这些代理 并行工作——当 Architect 正在设计战斗系统时,QA 已经在为 Lead Dev 刚完成的农耕系统编写测试。PM 负责把所有工作顺序化,确保代理之间不会相互阻塞。
**关键洞察:**价值不在于任何单一代理的输出,而在于 编排。
TDD 作为支柱
我强制执行了一条严格规则:先写测试,后实现,所有测试全部通过后才继续。
这不是可选的。每个系统都遵循相同的循环:
- QA 根据架构师的规范编写测试用例。
- 首席开发者实现代码,直至测试通过。
- 安全团队审查边缘情况;QA 添加回归测试。
- 转到下一个系统。
当天结束时:840+ 个测试,全部通过。
为什么 TDD 在 AI 代理中如此重要?
AI 生成的代码往往看起来正确,却在边缘情况处理上表现不佳。测试能够立刻捕捉到这些问题。没有 TDD,我会在下午的后半段花时间调试细微的集成错误,而不是构建新系统。
Source: …
14个系统
以下是 Somnia 在一天内交付的内容:
- Farming – 种植、浇水、生长阶段、季节性作物
- Combat – 回合制,具备元素亲和性和状态效果
- Fishing – 迷你游戏,包含稀有度等级和基于地点的捕获
- Dream Weaving – 特色机制:编织影响世界的梦境
- Dungeon Generation – 程序化房间,难度随进度递增
- Weather System – 动态天气,影响作物、钓鱼和 NPC 行为
- NPC System – 日程安排、关系、礼物偏好
- Quest Engine – 多步骤任务,拥有分支结局
- Home Decoration – 家具摆放,网格对齐
- Inventory – 堆叠管理、分类、快捷栏
- Save/Load – 带迁移支持的版本化存档文件
- Audio Manager – 自适应音乐和空间音效
- Day/Night Cycle – 光照变化、时间限制事件
- UI Framework – 菜单、HUD、对话框、通知
每个系统都是模块化的。Weather System 并不直接了解 Farming——它发出信号,Farming 再监听这些信号。这种解耦设计是 Architect 代理最大的贡献。
实际让我惊讶的
-
PM 代理是最有价值的
我本以为 Lead Dev 会是明星。错了。PM 的任务排序消除了几乎所有的阻塞依赖。当有六个代理并行工作时,协调是瓶颈,而不是编码速度。 -
安全代理捕捉到了真实问题
我差点跳过安全代理——“这是单人游戏,谁在乎?”但它捕捉到了存档篡改漏洞、库存堆叠系统的整数溢出以及一个 Dream‑Weaving 利用,让你可以复制物品。这些以后会成为痛苦的 bug。 -
840 个测试听起来很多。其实不够
系统之间的集成测试很薄弱。单元测试很扎实,但“在地下城跑图时下雨且玩家在钓鱼会怎样”——这些跨系统场景需要更多覆盖。教训:有了 AI 代理,你可以负担写远超预期的测试数量。 -
GDScript + Godot 4.6 是正确的选择
GDScript 足够简单,AI 代理能够可靠生成。C++ 或 Rust 会引入编译错误和内存 bug,导致一天的时间线崩溃。让你的语言匹配你的约束。
工作流程实践
一个典型的 30 分钟循环如下所示:
[00:0] PM assigns: "Implement fishing minigame"
[00:2] Architect delivers: component diagram + signal contracts
[00:5] QA writes: 47 test cases for fishing mechanics
[00:8] Lead Dev starts implementation
[00:20] Lead Dev: all 47 tests passing
[00:22] Security review: adds input bounds on reel tension
[00:25] QA: 3 additional edge‑case tests
[00:28] Lead Dev: all 50 tests green
[00:30] PM: "Moving to Dream Weaving system"
这些循环中有六个同时在不同系统上并行运行。正是这样,你才能在一天内构建 14 个系统。
我会做的不同之处
-
从一开始就进行更多的集成测试。
我会让 QA 代理在第二个系统完成后立即编写跨系统测试。 -
专职的重构代理。
在 10+ 系统之后,一些早期代码需要清理。我是手动完成的;本可以让代理处理。 -
更严格的接口契约。
架构师定义了接口,但有些代理 dr
注意:原始内容在 “some agents dr” 处意外截断。Markdown 保留了该截断以保持内容完整。
Shifted
自动化的合约检查会立即捕捉漂移。
亲自尝试
该原型可供试玩:Somnia on itch.io
它很粗糙——一天的工作就是一天的工作。但它是一个真实的原型,拥有相互关联的系统,而不是仅有一个精灵的 hello‑world。
要点
问题不是 “AI 能写代码吗?” ——显然可以。真正的问题是:“你能设计一个让多个 AI 代理有效协作的系统吗?”
答案是 是,但前提是你:
- 定义清晰的角色和接口
- 严格执行 TDD
- 投资于编排(PM 代理)
- 选择能最大限度降低摩擦的技术栈
14 系统。840+ 测试。一天。
游戏开发领域正在变化,学会编排 AI 团队的开发者将能够构建以前单独无法实现的东西。
对多代理设置有疑问或想在自己的项目中尝试这种方法?留下评论——很乐意分享细节。
