From Code to Playable Systems: CEGame-Bench for Long-Horizon Game Creation Agents
Organizations: National University of Defense Technology · Nanjing University · The University of Tokyo · Xi’an Jiaotong University ·
Abstract
A game ships when a player can launch it, finish it, and return to a saved world, none of which a successful build guarantees, yet game-creation agents are mostly tested on one engine or on one-prompt browser games. We present CEGame-Bench, the first long-horizon benchmark for complete-game creation across five production engines: Defold, Godot, Roblox Studio, Unity, and Unreal Engine. Agents build each game from an empty project and a design document in runs averaging up to 295 steps and 65M tokens; the document doubles as a contract, and a hidden evaluator accepts a game only by real-input play. Under four scaffolds, agents earn most integration points but usually under half the gameplay points, and their games reach the ending in only 16% of runs, while references built by engineers with coding agents score near the maximum, which places this artifact-to-play gap in the agents. No two engines rank configurations alike (Kendall's tau 0.14-0.62), and the same game usually scores higher on Unity and Unreal Engine, which check more before play. We release Game Completion Boost, an agent skill for requirement-driven playtesting and repair that raises the execution-based score of three models by 14.1-24.3 points.
Figures & tables
| Configuration | Defold | Godot | |||||||||||||||
| Scaffold | Model | D1 | D2 | D3 | D4 | D5 | D6 | D1 | D2 | D3 | D4 | D5 | D6 | ||||
| GPT-6 Astra | 10.0 | 20.3 | 11.3 | 14.8 | 6.2 | 9.5 | 62.7 | 72.2 | 9.4 | 15.8 | 8.2 | 12.1 | 4.4 | 5.1 | 49.8 | 54.8 | |
| GPT-5.6 Sol | 10.0 | 19.0 | 9.8 | 8.7 | 5.0 | 5.8 | 52.5 | 58.3 | 9.6 | 3.8 | 1.9 | 4.9 | 1.3 | 3.1 | 21.5 | 24.6 | |
| GPT-5.6 Terra | 7.2 | 7.4 | 8.0 | 8.0 | 2.6 | 2.7 | 33.2 | 35.9 | 9.2 | 1.6 | 1.5 | 3.1 | 1.1 | 3.4 | 16.4 | 19.8 | |
| Codex CLI | DeepSeek-V4-Pro | 9.5 | 7.2 | 3.7 | 3.7 | 1.8 | 1.8 | 25.8 | 27.6 | 8.1 | 10.2 | 5.4 | 7.2 | 3.3 | 2.7 | 34.2 | 36.9 |
| DeepSeek Harness | DeepSeek-V4-Pro | 10.0 | 13.2 | 8.0 | 7.8 | 2.6 | 3.7 | 41.6 | 45.3 | 9.8 | 9.6 | 4.6 | 8.1 | 3.3 | 3.6 | 35.4 | 39.0 |
| Script-centric engine ( ) | |||||
| Engine | Metric | Defold | Godot | Roblox | |
| Heavyweight ( ) | Unity | ||||
| Unreal Engine | |||||
| Configuration | ||||
| DeepSeek-V4-Pro | 50.6 | — | 54.8 | — |
| DeepSeek-V4-Pro + GCB | 71.6 | +21.0 | 76.3 | +21.5 |
| GPT-5.6 Sol | 27.0 | — | 30.9 | — |
| GPT-5.6 Sol + GCB | 41.1 | +14.1 | 45.6 | +14.7 |
| GPT-5.6 Terra | 9.7 | — | 10.5 | — |
| GPT-5.6 Terra + GCB | 34.0 | +24.3 | 36.3 | +25.8 |
| Engine | Engine build | Language | Scene representation | Checks before play | Evaluator adapter |
| Script-centric engines | |||||
| Defold | 1.13.0 | Lua | Data-driven game objects and collections. | Resource and reference validation; Lua syntax checks during build. | Engine Lua hook. |
| Godot | 4.7.1.stable | GDScript | Node trees serialized as text scenes. | GDScript parsing and scene-loading diagnostics. | Headless script. |
| Roblox Studio | 0.742.0.7421053 | Luau | Studio instance trees stored in local .rbxl files. | Luau analysis and editor diagnostics. | Studio plugin and local play-test. |
| Heavyweight engines | |||||
| Unity | 6.0 LTS 6000.0.80f1 | C# | YAML scenes and prefabs with an asset-import pipeline. | C# compilation, serialized-reference checks, and Unity tests. | PlayMode harness. |
| # | GDD section | Information provided to the agent | Symbol | Dimensions |
| 1 | Pitch and core loop | Game premise, session structure, and target duration. | — | D2 |
| 2 | Engine and toolchain | Engine build, dependencies, and build/run commands. | — | D1 |
| 3 | Controls | Input devices, bindings, actions, and press/hold/release behavior. | D3, D5 | |
| 4 | Entities and attributes | Required actors, props, UI elements, and numerical attributes. | D2, D3 | |
| 5 | Scene inventory | Entry scene, levels, scene contents, and connections. | D1, D2 | |
| 6 | Mechanics and rules | Action resolution, costs, resources, and collision behavior. | D3 |
| GDD § | Requirement | Sym. | Dim. | Route | Leaf assertion | |
| 5 | The game opens on the title menu; Start enters the Harbor level. | D1 | 2 | Static, input | The entry scene is the title menu; after Start , level.id is harbor . | |
| 3 | Press Shift to dash in the facing direction. | D3 | 3 | Input + read | After Shift, player.state is dash and player.pos moves along player.facing . | |
| 6 | A dash spends one charge. | D3 | 3 | Input + read | player.charges decreases by exactly one per dash. | |
| 7 | A new dash is rejected for 0.4 s after the last one. | D3 | 2 | Input + read | A second dash at 0.2 s is rejected; one at 0.5 s is accepted. | |
| 8 | With no charges left, dash does nothing. | D3 | 2 | Input + read | At player.charges , Shift leaves position and charges unchanged. | |
| 10 | Charges never exceed the maximum. | D3 | 2 | Input + read | During a 10 s recharge, player.charges player.max_charges at every sample. |
| Stage | Evidence | Feeds |
| Static | import and compile, entry scene, serialized references, manifests | D1, D2 |
| Local dynamic | real input, snapshots, collision, AI, and resource assertions, negative controls | D2, D3, D5 |
| Transition | scene change, resource transfer, death and restart, pause and resume, terminal freeze | D3, D4 |
| Player journey | entry-to-terminal play with public controls, closed-loop input, step budget | |
| Fresh lifecycle | dirty close, new process, clean entry, restored references | D4, |
| Visual | reference-state captures, paired reference images, written rubric, artifact hashes | D6 |
| ID | Leaves | Name | Primary evidence | |
| D1 | 10 | 5.1 | Integration | import, compile, entry scene, serialized references, manifests |
| D2 | 30 | 14.0 | Completeness | required entities, levels, modes, UI, authored content |
| D3 | 20 | 11.3 | Mechanics | actions, rules, resources, collision, AI, negative branches |
| D4 | 20 | 8.8 | Lifecycle | transitions, terminal state, restart, save, fresh reopen |
| D5 | 10 | 4.3 | Feedback | controls, HUD, observable response to every player action |
| D6 | 10 | 3.7 | Presentation | asset assembly, layout, layering, style, and finish against reference captures |
| State | Score effect | Meaning |
| pass | full weight | obligation observed under valid preconditions |
| fail_observed | zero, in denominator | submission violates the obligation under valid observation |
| product_blocked | zero, in denominator | submission itself prevents the required state or action |
| setup_failed | excluded | fixture preparation failed, also through the alternate route |
| observer_failed | excluded | evidence acquisition failed or disagreed across routes |
| inconclusive | excluded | evidence insufficient; never inferred from absence |
| Engine | Sc. | Ent. | States | Steps | Leaves |
| Defold | 2.1 | 11.8 | 7.4 | 31.0 | 40.8 |
| Godot | 2.3 | 13.1 | 8.1 | 35.0 | 45.1 |
| Roblox Studio | 2.6 | 14.9 | 8.6 | 41.0 | 48.0 |
| Unity | 2.8 | 15.6 | 8.9 | 41.0 | 49.5 |
| Unreal Engine | 3.2 | 16.4 | 9.3 | 45.0 | 52.6 |
| All | 2.6 | 14.4 | 8.5 | 38.6 | 47.2 |
| Family | Examples | Stressor |
| T1 UI and rule puzzle | Four Shot, Arrow Escape | authored content, event rules, input edges, reset |
| T2 Action | Driftfolk Chronicle, Bomb Frog | collision, timing, camera, feedback |
| T3 3D spatial action | Dungeon Duel, Noir Roombreak | navigation, combat state, multi-room transitions |
| T4 Systems | Relay Foundry, Ape Tower Defense | resources, AI, dependency graphs, persistence |
| T5 Narrative | There Are Signs | branch tables, authored presentation, visual assembly |
| Stage | Required action |
| Specify | Map public requirements, prerequisites, and resources. |
| Build | Complete the required path; launch early. |
| Inspect | Link real input to state and image observations. |
| Repair | Archive a repair anchor; invalidate affected checks. |
| Replay | Recheck target and protected checks; retain or restore. |
| Finalize | Play the full journey; reopen when required. |
| Scaffold | Version | Model | ID | Eff. |
| Astra | gpt-6-astra | max | ||
| Sol | gpt-5.6-sol | max | ||
| Terra | gpt-5.6-terra | max | ||
| Codex CLI | 0.159.2 | V4-Pro | deepseek-v4-pro | max |
| DS Harness | 0.2.0-rc.2 | V4-Pro | deepseek-v4-pro | max |
| Claude Code | 2.1.285 | Opus 5 | claude-opus-5 | max |
| Engine | D1 (%) | Play (%) | Gap (pp) | Mean | Low (%) | Spread |
| Defold | 88.6 | 37.2 | 51.4 | 38.6 | 71.4 | 56.9 |
| Godot | 88.7 | 23.4 | 65.3 | 27.6 | 85.7 | 35.3 |
| Roblox Studio | 91.3 | 35.7 | 55.6 | 37.7 | 85.7 | 53.6 |
| Unity | 97.0 | 56.9 | 40.1 | 55.2 | 42.9 | 29.0 |
| Unreal Engine | 94.6 | 30.4 | 64.1 | 33.7 | 85.7 | 51.3 |
| Godot | Roblox | Unity | Unreal | |
| Defold | 0.52 | 0.52 | 0.62 | 0.43 |
| Godot | 0.62 | 0.33 | 0.33 | |
| Roblox Studio | 0.52 | 0.14 | ||
| Unity | 0.43 |
| Configuration | Workflow steps (%) | |||||
| Scaffold | Model | Edit | Build | Play | View | Other |
| GPT-6 Astra | 26.3 | 17.4 | 7.7 | 5.6 | 43.0 | |
| GPT-5.6 Sol | 17.1 | 19.9 | 5.3 | 4.8 | 52.9 | |
| GPT-5.6 Terra | 31.3 | 22.4 | 5.0 | 4.2 | 37.1 | |
| Codex CLI | DeepSeek-V4-Pro | 28.3 | 8.9 | 8.7 | 4.6 | 49.5 |
| DeepSeek Harness | DeepSeek-V4-Pro | 34.1 | 6.3 | 3.1 | 4.5 | 52.0 |