AI 能做出我们想要的游戏吗?
SWE-Game 不满足于“项目能启动”。它让评测器亲自按键、观察引擎状态,并确认胜负真的是玩家动作造成的。
一个“看起来完成”的游戏,可能没有玩法因果
只看画面
尖刺、cell、beacon 都可以画出来,但碰撞不一定改变 health 或 progress。
只看终局
候选可能自动进入 victory。没有输入对照,就无法证明玩家完成了路线。
运行时证据
driver 执行动作,probe 读取接触、对象生命周期与状态变化,再判定行为。
同长度 no-input control 也到达 goal 时,certified route 直接记 0。
同一批游戏,派生五种开发合同
短目标 + assets + video。Agent 先写 GDD,再从头开发。
给 reviewed GDD 和可观察 feature obligations。
给 implementation-neutral scaffold,不是删掉 reference code。
注入故障、症状报告与需保留的行为。
给 Godot 源码,原生迁移到 Unity。
公开接口允许替代实现,隐藏 checker 保留判分权
Agent 可见
- 按模式提供 brief、GDD、scaffold、faulty project 或 Godot source
- assets 与 mode-dependent reference video
contract.json/ Unity interface- semantic groups、actions、numeric slots
- 必须交付的项目、GDD、demo 或 build 说明
Evaluator 独占
- task-specific checks 与 expected outcomes
- certified reference-input routes
- semantic start 参数与 probe assertions
- reference/faulty/repaired 三版本 scenario verdict
- visual rubric host-side curves 与 deficiency caps
公开材料说明“能观察哪些角色和状态”,不会把 reference implementation 或 hidden predicate 交给 Agent。
论文公开了 evaluation harness,却没有公开六套 Agent framework
Model-side agent harness
读任务、改代码、运行引擎、看素材与调用工具。六个模型各用自己的 framework 和 tools。
Evaluation harness
校验 manifest,向工作副本注入 drivers/probes,重放输入,跑 no-input control,录制画面并聚合分数。
因此 Table 3 是“模型 + 各自 framework”的系统比较,不能解释成严格受控的纯模型能力排名。
资源差异大到足以影响排名解释
| 模型 | Brief | GDD | Skeleton | Repair | Porting |
|---|---|---|---|---|---|
| Qwen3.8 Flash | 27.00 | 37.35 | 39.19 | 26.13 | 51.23 |
| Grok4.6 | 39.01 | 48.55 | 40.76 | 52.44 | 59.04 |
| GPT-5.6 Luna | 34.18 | 52.67 | 43.10 | 58.05 | 59.85 |
| Opus5 | 50.38 | 59.68 | 54.06 | 83.46 | 72.40 |
| GLM5.3 Flash | 31.05 | 40.18 | 34.38 | 27.55 | 44.33 |
| Minimax M3 | 30.47 | 42.58 | 35.69 | 27.36 | 49.62 |
Candidate 提交语义绑定,checker 不猜内部节点名
levels 与 endings 给出可启动地址。
gb_player、hazard、enemy、goal 等角色。
left/right/up/down、jump、action、pause、reset。
progress、health、timer、score 与 device IDs。
评测器在工作副本装入 driver 与 probe。
位置、接触、对象状态、scene 与 outcome。
一份真实 GDD 把“送信标”写成可测试状态变化
Pickup
接触 pedestal cell 后,13 / 12 / 11 秒 fuse 启动,cell 从 green 变 amber 再变 red。
Stomp
携带 cell 从上方踩中 hostile,返还 2.5 秒并刷新 air jump;侧面接触损失 shield。
Deposit
携带 cell 与 beacon 重叠,relay progress 增加、一个 segment 点亮、fuse 停止。
三关共 11 个 cells,三类 hostile、七类 device,每关一个 heart、三格 shield。
完整普通输入路线约 6–9 分钟,固定 60 Hz,不使用 procedural randomness。
Certified route 测行为,no-input control 测因果
冷启动候选,校验 interface 与场景。
按 reference route 的动作时序输入。
读取 contact、lifecycle 与 live state。
检查 milestone、goal 与 requirement。
同长度无输入也成功,则 route 记 0。
PASS 逻辑
玩家动作触发 pickup / deposit,probe 观察到对应对象与 progress 变化,对照不发生。
解释性 FAIL
候选按时间自动增加 progress。它能显示 victory,但 no-input control 也过关,因此不给 route credit。
demos.json 补足固定 reference route 覆盖不到的功能
独立片段
每个 demo 有 id、description 与 inline ops。
统一起点
每段从第一关 cold launch,不能注入 state 或选 hidden scene。
匹配对照
每段都跑相同长度 no-input control。
不重复计分
多个 demo 证明同一 feature,也不会重复增加 coverage。
Whole-game completion 不是 feature-demo 协议的前提;没被任何 demo 实际触发的 requirement 仍算 uncovered。
总分先按任务内组件计算,再对 41 或 83 题取平均
Construction
O 合并 mechanics、content、playability,再按模式加入 design 或 scaffold。
Bug Repair
restoration、retained routes、preservation、validity 在每个 case 内相乘。
Porting
mechanics、playability、structure、visual、stability 的百分比权重。
Repair 先乘后平均。只修好目标 bug,却破坏保留行为或构建有效性,会被乘法显著惩罚。
三类 construction 的最佳总分仍低于 60
Skeleton 的 Opus5 Scaffold 是 94.62,Content 只有 36.93,Mechanics 36.22。接口接上了,内容与玩法仍不完整。
可执行检查比视频 VLM 更会发现功能缺陷
1,200 条功能 assertions
Executable:411/452 正确接受,705/748 正确抓缺陷。
200 段视觉 clips
重复判断的 within-clip SD 为 0.034。
论文未披露人工 annotator 数量与 agreement,也未命名 visual judge 使用的 VLM。
它把“想要的游戏”变成动作、状态与视觉三类证据
证据支持
- runtime checks 适合验 mechanics,VLM 适合验 presentation
- no-input control 能排除自动成功与伪因果
- 需求遗漏和 gameplay logic error 是主要失败来源
- 公开 semantic contract 允许候选采用不同内部结构
仍不能确定
- 六个 Agent framework 与工具、预算的受控差异
- 主榜重复运行与方差
- 人工标注协议和 visual judge 身份
- task-specific checker 对外部复现者是否可用
截至 2026-10-08,论文未链接正式 benchmark/checker repository。最可信的结论是评测设计方向,而不是把 Table 3 当成纯模型排行榜。