首页 › skills-review › 拆Codex游戏件:让截图当考官

拆Codex游戏件:让截图当考官

概述

本期单件深拆,对象不在 Claude 的门里:develop-web-game,OpenAI 策划的 codex-skills 集合中的游戏开发件(本栏七月档案标注其获取渠道为 evalstate/codex-skills 镜像),就装在本机 ~/.codex/skills/ 目录下,与驱动 ChatGPT Atlas 浏览器的 atlas 件同住一个屋檐。本栏六月「浏览器自动化七引擎实测」、七月「生成式UI引擎七测」两份档案都给过它段落(档案分 3.7),但从未拆到文件级。本文以装机副本全文为底,逐段拆解其 SKILL.md 与配套文件,回答一个问题:当 Anthropic 系把「先侦察再动手」写成 webapp-testing 时,对家把「造游戏」写成了什么形状。核心发现一句话:它真正的作品不是游戏,而是一条让模型无法自欺的验收流水线——确定性时间步进、文本状态协议、截图即真相、跨 Agent 交接文件,四个原语全部冲着「模型会骗自己」这个弱点去。

一、为什么是它

三个理由,一个比一个现实。

第一,供应端换招牌了。本栏十月一日「小而美头名,门牌写着Codex」一档记过一笔:lanshu 以「Provider-neutral Codex Skill」的门牌爬上小而美榜首,那是 skill 这个词的供应端第一次在头名位置出现别家招牌。门牌换完了,货却一直没人开箱——Codex 家的件到底怎么写的,中文圈至今没有一篇逐行的拆解。

第二,游戏是当下最热的载荷。昨天本栏刚拆过 universal-modder(10月4日快照 2627 星,改既有游戏),但「改旧游戏」和「造新游戏」是两条工序:前者吃工具链,后者吃验收。develop-web-game 恰好站在后者,而且比所有同类早了几个月。

第三,它藏在装机目录里四个月,没人拆过。本栏的惯例是:存档里出现过的名字,若从未被单独拆到文件级,就值得一次补账——Skill捕手、webapp-testing 都这么补过,这次轮到对家。

二、开箱:一个技能,三份家当

按 SKILL.md 自述,这个件的家当是三份:

文件 角色 一句话点评
SKILL.md 说明书主体 十四步工作流+测试清单+写码指南
scripts/web_game_playwright_client.js 测试客户端 「Playwright 动作循环,带虚拟时间步进、截图捕获、控制台错误缓冲」
references/action_payloads.json 动作字典 键盘+鼠标的突发输入示例,「照它构造,别猜键名」

隔壁 atlas 件则是另一套集成路线:AppleScript 驱动 macOS 上的 ChatGPT Atlas 应用,读书签和历史时先把 SQLite 拷到临时文件再开,避免锁库。同一屋檐下一个走无头浏览器、一个走原生应用自动化,Codex 家的集成风格一次看全。

三、SKILL.md 逐段拆

3.1 开门五拍:一份没有寒暄的说明书

正文第一行没有自我介绍,直接是宪法级的一句:

Build games in small steps and validate every change. Treat each iteration as: implement → act → pause → observe → adjust.

实现、行动、暂停、观察、调整——五拍循环里「暂停」(pause)是单独一拍。对照多数 Claude 系开发件把「验证」作为实现的附属步骤,这里把「停下来看」提升为与「动手」平级的工作单元。这不是修辞:后文的 advanceTime 机制就是为「暂停」这一拍提供的物理基础。

3.2 十四步工作流:每一步都在堵一个自欺口

工作流共十四步,按堵的口子分类:

堵「贪大」:第一步 Pick a goal 强制单一目标,第二步 Implement small 强制最小改动,第十四步 Iterate with small deltas 补上「一次只改一个变量(帧数、输入、时机、位置)」。

堵「猜」:第三步要求游戏只提供一个 canvas 和一个 window.render_game_to_text;第八步要求动作输入必须基于 references/action_payloads.json 构造,「避免猜键名」。连测试客户端都写死「You must run $WEB_GAME_CLIENT——除非必要,不得自造客户端」。

堵「飘」:第四步要求暴露 window.advanceTime(ms),理由原文写明「without it, automated tests can be flaky」——不给确定性步进,自动化测试就是抽奖。

堵「断片」:第五步的 progress.md 规则最见功力,下节单讲。

3.3 文本状态协议:给画面做一份「口供」

render_game_to_text 是整个件最值得抄的设计。SKILL.md 给出了最小模式:一个 JSON 载荷,装 mode、玩家坐标、实体数组、分数。约束写了四条:

翻译成人话:给模型一份「盲人可玩」的口供。画面是给 screenshot 看的,口供是给模型读的,两份证据互相印证——第十一步明确要求「确认 render_game_to_text 与屏幕所示一致」。双通道对账,单通道撒谎即穿帮。

3.4 advanceTime:把时间攥在测试手里

第二个可抄原语。SKILL.md 给的参考实现按 60fps 换算:要前进多少毫秒,就折成多少帧,一帧一帧调 update(1/60)。游戏主循环检测到钩子存在就用它。

这一招解决的正是 Agent 测游戏的老大难:现实时间是测不动的,「等三秒看结果」对模型等于黑箱。把时间做成可步进的虚拟量之后,「跳帧到碰撞发生的那一帧」成了可编程操作。动作字典里的输入同样以帧为单位计价({"buttons":["right"],"frames":8}),突发输入(burst)+刻意停顿(pause-ms)构成了测试的呼吸节奏。

3.5 progress.md:给下一个 Agent 留字条

第五步规定:progress.md 若已存在,先读,确认顶部的 Original prompt: 原始需求还在——「你可能在接手另一个 Agent 的活」;若不存在,先写原始需求再干活;收尾时把 TODO 和建议留给下一位。

三个细节值得单独点名:原始需求加前缀存顶、禁止覆盖、明确「接班人」视角。这一份 Markdown 文件实际上定义了 Agent 之间的交接协议——需求原文是宪法,TODO 是留言板,谁都不许动宪法。在长任务动辄跨会话的当下,这可能是比游戏本身更通用的资产。

3.6 测试清单:截图是唯一真相

Test Checklist 一节列了必测项:主操作、胜负转换、分数/血量变化、边界碰撞、菜单流程、特殊技能。Test Artifacts 一节则是全篇语气最重的一段,几乎句句加粗:

值得对照的是本栏拆过的 webapp-testing(Anthropic 官方,档案价 83.4K 安装):那件的哲学是「说明书教你别读代码」,先侦察页面再动手;这件的哲学是「别信自己写没写对」,先让画面开口。一个防看漏,一个防吹牛,恰好互补。

3.7 连审美都管:核心游戏指南里的产品观

Core Game Guidelines 一节暴露了策展者的产品观:单一 canvas 居中;屏上文字最少化,操作说明放在开始界面而不是游玩时叠字;「Avoid overly dark scenes」;背景画在 canvas 上而不是靠 CSS;全屏用单键(首选 f),Esc 退出,且切换后必须重算画布与输入映射。这些条款没有一条能自动化验证,却条条命中 AI 生成游戏的重灾区——黑得看不清、字挡视线、全屏后键位错位。说明书管到这一层,说明策展者真的看过大量失败案例。

3.8 一道看得见的接缝

Playwright Prerequisites 一节,检查可用性用 command -v npx,而「全局安装」给出的命令是 npm install -g @playwright/mcp@latest——装的是 MCP 服务器包,与客户端脚本消费的 playwright 库名称相近但不是一物。文本层面就能看出的这条缝,照抄命令的新手可能要多补一步。Anthropic 官方件通常会在同一处补一行澄清,这是两者文档纪律上可感知的差距。

四、验收闭环全图

flowchart TD
    A["选定单一目标"] --> B["最小实现一步"]
    B --> C["接入约定接口<br/>canvas与状态函数"]
    C --> D["跑Playwright突发输入"]
    D --> E["读文本口供"]
    D --> F["开最新截图核对"]
    E --> G{"画面与口供一致"}
    F --> G
    G -->|否| H["修第一个新错误"]
    H --> D
    G -->|是| I["progress.md记账"]
    I --> J["领取下一个目标"]

五、评测

维度 权重 评分 依据
功能完整度 25% ★★★★☆ 闭环完整;原生平台、音频、联机不在射程
设计质量 25% ★★★★★ 四原语(步进/口供/真相/交接)全部针对模型弱点
实战效果 20% ★★★★☆ 本栏七月档案实测分 3.7 沿用,回路可跑通
上手难度 15% ★★★☆☆ 需懂 Node、Playwright 与异步
社区活跃度 15% ★★★☆☆ 策展集合,更新看上游

对照邻座(分数为本栏档案口径):webapp-testing 3.6-4.4(两期档案有落差),universal-modder 本栏十月刚给出首拆,agent-browser 六月档案 324.9K 安装量为浏览器赛道头名。develop-web-game 的 3.7 在其中不靠星数取胜,靠的是原语密度——同样一屏说明书,它的每一段都能直接搬进你自己的件里。

六、安装与上手

# Codex 用户(SKILL.md 自述路径)
export CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
ls "$CODEX_HOME/skills/develop-web-game"

# 两个环境变量(SKILL.md 指定,设一次即可)
export WEB_GAME_CLIENT="$CODEX_HOME/skills/develop-web-game/scripts/web_game_playwright_client.js"
export WEB_GAME_ACTIONS="$CODEX_HOME/skills/develop-web-game/references/action_payloads.json"

# 依赖自检与标准跑法(SKILL.md 原例)
command -v npx
node "$WEB_GAME_CLIENT" --url http://localhost:5173 \
  --actions-file "$WEB_GAME_ACTIONS" \
  --click-selector "#start-btn" --iterations 3 --pause-ms 250

Claude Code 用户想借镜也有一条文本上成立的路径:SKILL.md 是主机中立的 Markdown,目录拷到 ~/.claude/skills/ 即可被识别;脚本里的路径全部走 $CODEX_HOME 环境变量,改这一个变量就能换宿主——策展者留的后门,恰好成了跨家移植的桥。

七、适用与不适用

适合:做 H5 营销小游戏、教育闯关页面的人;教「AI 做游戏」课程的讲师(完课率利器);想给自己的生成类 Skill 补验收回路的件作者——本文第三节四个原语可整体平移到任何「生成→验证」场景。

不适合:手游原生开发、多人联机、重度美术管线(超出 HTML/JS 单 canvas 的射程);想要「一句话出成品」的人——这件的价值观恰好相反,它假定一句话出的东西一定有假。

八、写件的人能抄走什么

一、把「验证」写成独立的一拍,而不是实现的附注。二、给被测对象定两个约定接口:一份模型可读的文本口供,一个确定性的时间钩子,测试立刻从抽奖变工序。三、截图即真相写进硬约束,并要求「必须真的打开看」。四、一份带 Original prompt: 前缀的交接文件,成本十行,收益是任何一个 Agent 都能接班。五、审美指南不可验证也要写——它拦不住所有翻车,但能拦住最常见的翻车。

星数会过期,这五条不会。Codex 家的第一份逐行拆解剖开之后,结论反而让 Claude 系件作者更该出一身汗:对家已经把「怎么让模型不骗自己」写成了模板,而我们手里多数件,还停在「怎么让模型多干活」。

参考来源

  1. develop-web-game SKILL.md(evalstate/codex-skills 镜像) — 本栏七月档案曾抓取核对的流程原文,本文拆解以装机副本全文为准
  2. ChatGPT Atlas 官方页面 — 据公开报道 2025 年 10 月 21 日上线、macOS 优先(本站 AI 情报栏四浏览器横评引用)
  3. rehan-remade/universal-modder — 游戏MOD工作台,10月4日快照 2627 星,本栏 10 月 6 日「Claude改游戏」一档已拆
  4. anthropics/skills — webapp-testing 所在官方仓库,对照件来源
  5. cclank/lanshu-create-ai-presenter-video — 门牌写明 Codex Skill 的小而美头名,9 月 29 日快照 1956 星,供应端换招牌的标志性事件

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入