Codex Subagents 實戰:從零開發一個瀏覽器小遊戲

前兩篇講的是讓 AI 處理既有程式碼,這篇升級一檔:從零開發一個產品。你會看到怎麼用多個 agent 分工協作,開發一款可以在瀏覽器裡直接跑的太空射擊遊戲,從設計文件、視覺資產,到測試驗證,全程走一遍。
開始前:兩個設定檔
PLAN.md:先把遊戲「寫清楚」,再讓 AI 動手
在專案根目錄建立 PLAN.md,把遊戲的核心邏輯、控制方式、勝負條件全部寫進去。下面是一個完整的範例:
# 太空射击游戏 PLAN.md
## 玩家目标
消灭所有敌机,保护飞船血量不归零。
## 主循环
敌机从屏幕顶部持续刷新,玩家飞船在底部横向移动射击。
击落敌机得分,敌机子弹打中玩家扣血。每隔30秒增加一波更快的敌机。
## 输入控制
- 键盘:方向键移动,空格键射击
- 触屏:左右滑动移动,点击射击
## 胜负条件
- 胜:通过5关,每关消灭规定数量敌机
- 败:血量归零
## 难度递进
关卡越高,敌机速度越快、子弹越密、血量上限略增
## 视觉风格
像素风,深色太空背景,霓虹色飞船和敌机
## 技术栈
Next.js + Phaser.js,纯前端,部署到 Vercel
## 里程碑顺序
1. 基础场景:背景 + 玩家飞船移动
2. 射击和碰撞检测
3. 敌机生成和 AI 移动
4. 血量/得分/关卡 UI
5. 视觉资产替换(精灵图)
6. 音效
7. 发布
PLAN.md 寫得越具體,AI 生成的第一版越接近你想要的結果,後期疊代次數越少。 不用追求文學性,把玩法邏輯說清楚就夠了。
AGENTS.md:告訴各個 agent 怎麼工作
AGENTS.md 放在專案根目錄,定義技術棧、開發規範和工具使用方式。它是所有 agent 的共同行動準則:
# 太空射击游戏
2D 横版射击游戏,Phaser.js 渲染,Next.js 托管。
## 技术栈
- Next.js(前端框架,部署 Vercel)
- Phaser.js(游戏渲染引擎)
- 无后端(纯前端游戏)
## Skills
- $imagegen:生成游戏视觉资产(精灵图、背景、UI)
- $playwright-interactive:在真实浏览器里运行游戏并截图验证
- $openai-docs:获取最新 OpenAI API 文档
## 开发规范
- 每完成一个里程碑,用 build 命令验证能跑通
- 参考 PLAN.md 决定下一步要做什么
- 用 $playwright-interactive 在真实浏览器里测试每一个新功能,截图记录效果
- 用 $imagegen 生成所有精灵图和背景,每次生成后把 prompt 存到 .prompts/ 文件夹,方便复用
- 工作日志记录到 .logs/ 目录
兩個檔案準備好之後,就可以啟動了。
啟動遊戲開發
用下面這個 starter prompt 發出指令,讓各 agent 並行開始工作:
使用 $playwright-interactive 和 $imagegen 按照 PLAN.md 开发这个游戏。
分工如下:
1. 先用 explorer 读取 PLAN.md,输出第一个里程碑的具体任务清单
2. 同时用 $imagegen 生成第一批视觉资产:
- 玩家飞船精灵图(像素风,霓虹蓝)
- 3种敌机精灵图(像素风,红/橙/紫)
- 深色星空背景
把每张图的生成 prompt 存到 .prompts/ 文件夹
3. worker 实现里程碑1:基础场景搭建 + 玩家移动
4. 里程碑1完成后,用 $playwright-interactive 在浏览器里跑一遍,截图确认效果
5. 把工作记录写到 .logs/milestone-1.md
完成后告诉我里程碑1的状态和截图。
不要一口氣讓 AI 把所有7個里程碑一次開發完。 按里程碑推進,每個里程碑看一下效果,確認沒問題再繼續下一個,出問題也好定位。
小貼士:啟動前確認以下工具已準備好——
$imagegen、$playwright-interactive、$openai-docs是 OpenAI 官方提供的 Skill,需要在AGENTS.md裡宣告啟用後 Codex 才會載入,不會自動可用。
explorer是 Codex 內建的唯讀 agent,開箱即用,無需任何設定,專門負責讀取和分析程式碼,不做修改。
疊代的方法
開發過程不是一次就完美的。下面是三種最常用的疊代方式。
1. 用截圖回饋
拿到截圖之後,直接描述你看到的問題:
这是当前效果截图:[截图]
敌机移动太快了,难度太高。
飞船精灵图太小,看起来不显眼。
请调整这两点,再截图给我看。
截圖是最直接的回饋載體,比文字描述「感覺哪裡不對」要精確得多。
2. 視覺風格調整
背景太暗,看不清飞船。
用 $imagegen 重新生成背景,要求:深蓝星空,加一些星云效果,亮度提高20%。
把新 prompt 更新到 .prompts/background.md。
每次調整視覺資產,都讓 agent 同步更新 .prompts/ 裡的記錄,原因在下一節說明。
3. 加新功能
在第3关加一个 Boss 敌机:
- 体积是普通敌机的3倍
- 有独立血条 UI
- 被击中时有闪烁效果
先更新 PLAN.md,再实现,用 Playwright 验证。
加新功能時,先讓 agent 更新 PLAN.md,再開始實現。這樣設計文件和程式碼始終保持同步。
一個實用技巧
把圖片生成的 prompt 存起來。
用 $imagegen 生成資產時,一定要讓 agent 把 prompt 存到 .prompts/ 資料夾。原因很直接:遊戲疊代時需要追加新資產,如果 prompt 丟了,新圖和舊圖風格對不上——飛船是像素風,新加的 Boss 變成寫實風,畫面會很割裂。
小貼士:
.prompts/資料夾可以按資產類型組織,比如.prompts/ships.md、.prompts/backgrounds.md,方便後期統一風格檢查。
有了存檔的 prompt,重新生成或微調時只需要在原 prompt 上加一兩個修飾詞,而不是從頭描述。
最後
這個系列三篇到這裡,從最簡單的日常改 bug,到批量自動化,再到多 agent 協作開發完整遊戲,難度是遞進的。Subagents 的核心用法其實就一句話:把任務拆成多塊,每塊交給一個專職 agent,讓它們並行幹。無論是分析程式碼還是開發產品,這個思路都通用。
下一次打開編輯器,試著先寫一份 PLAN.md。
在 Google 上持續關注
把 HeyBinyang 加入 Google 首選來源
如果你希望之後在 Google 上更容易看到我的更新,可以把這個站點加入 preferred source,讓它在相關閱讀情境裡更容易被找到。
SHARE
分享
分享這篇文章。