PAPER DEEP DIVE
Recursive Game Creator: An Agentic Product-Level Experience-Oriented Game Harness
Recent game design agents have made substantial progress in generating playable games. However, program correctness does not ensure an enjoyable experience for players. We present Recursive Game Creator, an experience-oriented harness to advance agentic game development from rough game prototypes into entertaining games. Recursive Game Creator organizes recursive development around four components: Designer, Builder, Player, and Reviewer. The Designer translates user instructions and Reviewer's feedback into detailed plans. The Builder turns these plans into candidate games. The coding-native Player creates and executes reusable policies through programmatic interfaces to efficiently collect diverse gameplay trajectories, mitigating evaluation bias caused by slow GUI-based collection. The Reviewer uses carefully designed trajectory-based metrics to induce player preferences, integrating with visual evidence and explicit textual preferences to evaluate games against game-specific criteria. Finally, the Reviewer accepts the better version and provides improvement reviews for the next round, closing the recursive loop. Our method achieves state-of-the-art overall performance of 77.89 on GameCraft-Bench. On GameASG-Bench, it achieves a strict task success rate of 53.2%, a 34.1% improvement over the same-model baseline, and the highest mean runtime-check pass rate at 93.4% among compared methods. A user study shows longer playtime and higher ratings. Code is coming soon.
Paper: Recursive Game Creator: An Agentic Product-Level Experience-Oriented Game Harness (arXiv:2610.08621, arxiv.org/abs/2610.08621, v1 submitted 2026-10-06, primary category cs.AI)
Authors: Jiajun Chen, Haoyu Wu, Mingda Jia, Xihui Liu (HKU MMLab, The University of Hong Kong, Shenzhen Loop Area Institute; the first three contributed equally, Xihui Liu is the corresponding author)
Code status: The paper body says "Code is coming soon", but the repository is in fact public: IMBALDY/RecursiveGameCreator (MIT, latest commit on main 2026-10-08: "Remove internal experiment artifacts and generalize benchmark task selection"), with a project page at imbaldy.github.io/recursive-game-creator. It is a runnable harness: 24 modules under src/game_agent_lite/, plus docs/architecture.md, docs/player-policy.md, a Docker runtime that uses software rendering and needs no host GPU, both HTML and Godot backends, and GameCraft export/scoring scripts. The method-to-code mappings below come from reading that repository's main branch; line numbers are as of the day of cloning.
Figure 1: paper Figure 1. The three rows are the MOBA "Twilight Front", the racing game "KAZE", and the visual novel "See You Tomorrow". Each row shows paired views, and version labels V1 to V2/V3 mark early and late states of the same game across recursive refinement. The claim this figure carries is that iteration changes more than whether the game runs: it also changes hero rosters and fog-of-war display, weather and career garages, dialogue branches and classroom menus.
One-Sentence Summary
Recursive Game Creator (RGC) treats "the game runs" and "the game is fun" as two propositions that must be verified separately, and wires four roles into a recursive loop: Designer, Builder, Player, Reviewer. The Player does not click through a GUI frame by frame; it writes reusable code policies that collect gameplay trajectories in bulk, with zero model calls inside the action loop. The Reviewer turns trajectories, screenshots, and user preferences into an anonymized two-order A/B judgment that decides which version is retained and what the next round should change. Model parameters stay fixed throughout; the artifact being optimized is the game. On the same base model, GameCraft-Bench overall rises from 71.26 to 77.89, and strict task success on GameASG-Bench goes from 9/47 to 25/47.
Background and Motivation
The paper opens on a blunt claim: coding agents can now build runnable games quickly, but successful execution does not establish the quality of play. The authors decompose player experience into four separately falsifiable dimensions - engaging mechanics, appropriate difficulty, coherent presentation, responsive feedback - and then point out that although existing agentic workflows support iterative game development (Harness-of-Harness, VibeGame and others), the step that translates gameplay into experience-oriented revision is still missing. Reaching product-level games does not require stronger code generation; it requires a harness that connects development to repeated playtesting and adapts the game to its intended players.
Why is the previous approach insufficient? The paper aims at GUI-based testing and gives three specific reasons rather than a vague "it is slow". First, screenshot-driven testing omits structured state, the legal action set, events, and progress signals that the programmatic interface already exposes; reconstructing those quantities from pixels inserts a lossy compression stage into the loop. Second, every action costs one visual interpretation plus one model decision, and that latency directly caps how frequent and how fine-grained rollouts can be, which makes "just try it a few more times" a luxury. Third, coding agents are optimized for code generation and reasoning, not for fine-grained visual interpretation of game state; putting them in the action loop as eyes and hands misuses the tool.
RGC's answer is to decouple three things: fast game control, policy construction, and the Reviewer's visual assessment. Control goes to executable policies that have already been written; model calls are spent on constructing and repairing policies; visual judgment is concentrated in the review stage. The authors list four consequences: high-frequency control, efficient trajectory collection, diverse capability simulation, and reproducible results. None of these are decorative. "Reproducible" has a concrete meaning here: policy code and observation settings are archived alongside each trajectory, which is what makes cross-version comparison meaningful at all.
The motivation on the Reviewer side is equally concrete. The authors stress repeatedly that different genres care about different things: a racing game needs responsive steering, clear track guidance, and visible collision feedback, while a visual novel needs coherent dialogue and choices with discernible consequences. Evaluation criteria therefore have to be game-specific and instantiated by the Reviewer itself from shared dimensions, rather than applied as one generic scoring sheet across all games. The more important discipline is separating three kinds of input by their epistemic status: observed behavior, preferences inferred from behavior, and preferences the user stated explicitly. Blur those together and a conclusion like "the player enjoys discovery" gets over-read out of one accidental detour.
Connecting these pieces is what makes the loop recursive: policy execution produces trajectories, trajectory and visual analysis produce experience and preference feedback, the Designer translates feedback into a plan, the Builder implements a new candidate, and the candidate goes back into playtesting. The authors note that the loop has two distinct sources of gain - refinement driven by the agentic player improves game quality, while refinement with human involvement improves the play experience and its alignment with inferred preferences. Section 4.4 tests the second one.
Preliminaries: What a Harness Is, the Two Benchmarks, and What @k Means
Start with the word "harness". RGC does not train models, does not run RLHF, does not run DPO; the base model's parameters are fixed for the entire run. What it optimizes is the game artifact and the development process. The related-work section draws this line explicitly against preference alignment: RLHF and DPO align the output distribution of a language model, whereas RGC uses structured preference feedback to revise the game as an artifact. That distinction sets the capability boundary - swap the base model and nothing transfers - but it also means the harness places no training-side demands on the base model, so any agent that can write code can be plugged in.
The two benchmarks test different things. GameCraft-Bench evaluates complete Godot games through replayed gameplay plus game-specific rubrics covering mechanics, content depth, functional visuals, and art, scored 0-100; this paper runs three refinement rounds over the 45 tasks selected by Yan et al. (2026) and reports five categories: Action, Timing, Strategy, Simulation, Adventure. GameASG-Bench evaluates whether generated browser games meet their source and behavior requirements, in two layers: L1 inspects source code, L2 actually runs the game in a browser. L2 is further split by priority into P0 (startup and the test interface), P1 (required gameplay), and P2 (extended features). Its task success is a conjunctive metric - valid delivery, completed evaluation, every L1 check passed, and every applicable L2 P0/P1 check passed. That matters for reading the numbers: a conjunctive metric is extremely sensitive to "the last few items were not finished", so its jumps are far larger than any single pass rate.
In the tables, @k denotes refinement round k. What is carried across rounds is the current best version, not the previous round's candidate - a detail the repository enforces with an explicit guardrail, covered in the method section below.
Method
Figure 2: paper Figure 2, the multi-round refinement workflow. The Designer plans revisions, the Builder implements code and assets, the coding-native Player collects gameplay trajectories, and the Reviewer combines behavioral and visual evidence with shared and game-specific criteria to produce preference-informed revision feedback. The central circular arrow denotes repeated refinement with a configurable number of rounds. The figure also shows a policy code sample (policy_observe / policy_step) and trajectory rows (hp=92, dist=145, move_right) - two details that make concrete what "the policy is code and the trajectory is a structured record" means.
The whole loop is drawn below. Two edges are easy to miss. The edge from Reviewer to "retained version" is a judgment edge with three outcomes (prefer candidate, tie, unavailable). The edge from Reviewer to Designer is a feedback edge carrying a structured preference record plus revision goals and follow-up checks. They are separate outputs because "should this version be kept" and "what should the next version change" are different questions in this paper.
flowchart TD U[User brief U and explicit textual preferences] --> D[Designer produces plan P_t with hypothesis h_t changes Delta_t acceptance goals A_t asset requests X_t] G[Current best version G_t] --> D H[Recent feedback H_t-1 as structured preference record] --> D D --> B1[Builder Draft yields draft Z_t core loop with placeholder assets] B1 --> B2[Framework executes asset requests Generate yields X_t_star] B2 --> B3[Builder Integrate yields candidate C_t checks assets against collision animation interaction regions] B3 --> P1[Player reads state schema available actions and testing objectives writes or inherits policy pi_t_k] P1 --> P2[Rollout executes through programmatic or CLI interface with no model call inside the action loop] P2 --> E[Evidence set E_t from K rollouts with states actions events progress elapsed time termination] E --> R1[Reviewer shared signals success rate playtime stuck points] E --> R2[Reviewer game specific rubric shared dimensions instantiated per genre] E --> R3[Reviewer visual evidence sampled screenshots and recordings without source code or version order] R1 --> J[Anonymized A B comparison in both presentation orders candidate versus incumbent] R2 --> J R3 --> J J -->|both orders prefer the candidate| K1[Retain candidate as next round G_t] J -->|tie unavailable evidence or incumbent preferred| K2[Retain incumbent and reject candidate] K1 --> H K2 --> H H --> D
3.1 Designer and Builder: Compiling Experience Goals into Testable Objectives
The Designer expands the user brief into the core play loop, mechanics, progression and difficulty, visual direction, and production priorities. Its inputs are the user brief, the current game, and recent feedback; its output is a four-part plan:
$$P_{t}=\operatorname{Design}(U,G_{t},\mathcal{H}_{t-1})=(h_{t},\ \Delta_{t},\ A_{t},\ X_{t})$$
Each component has a distinct job, and the paper's definitions are worth quoting precisely. The hypothesis $h_{t}$ states the intended experiential improvement and its basis. The changes $\Delta_{t}$ specify both what to change concretely and which existing strengths must be preserved. The acceptance goals $A_{t}$ are expressed in terms of scenes, player inputs, and observable outcomes. The asset requests $X_{t}$ list the material to be generated. The value of this representation is that it forces an experience goal to be translated into implementation decisions plus testable objectives: $A_{t}$ can be falsified during playtesting, whereas "make the game more fun" cannot.
The Builder inherits the plan, selects implementation tools according to mechanics, interaction requirements, visual direction, and asset needs, and then proceeds in three stages:
$$Z_{t}=\operatorname{Draft}(G_{t},\Delta_{t}),\qquad X_{t}^{*}=\operatorname{Generate}(X_{t};Z_{t}),\qquad C_{t}=\operatorname{Integrate}(Z_{t},X_{t}^{*})$$
During drafting the Builder implements the core loop and the planned changes, using placeholders where needed. The framework executes asset requests and makes the generated files available for integration. After integration the Builder checks how those assets present in gameplay scenes and how they interact with collision, animation, and interaction regions. The paper makes a pointed statement here: generating an asset alone does not establish an improvement to play. The Builder's targeted self-checks and configured project checks complement the Player's broader play evidence; they do not substitute for it.
Method to code: this discipline - the Builder's own account is not independent evidence - is hard-coded in the repository. When src/game_agent_lite/loop.py assembles historical feedback, it attaches a fixed annotation to each round's builder summary: "Implementation claims and open issues, not independent play evidence." (loop.py:187). finish_builder() reads the {phase}-builder.json receipt, verifies that it identifies this stage's project (raising Builder receipt does not identify this stage's project otherwise), and validates the payload with validate(receipt["builder"], ROLE_SCHEMAS["builder"]). The wording around reusable checks in the handoff file is equally restrained: "Builder-reported checks; hashes identify the final files, not proof of execution. ... host checks and Player still run." A hash proves which file it is, not that a check ever ran, so host checks and the Player run anyway.
3.2 Coding-Native Player: The Policy Is Code, the Trajectory Is Data
The Player constructs executable gameplay policies, separating policy generation from repeated interaction. Each policy uses the state the game exposes to choose valid actions and collect a trajectory, so control can be state-based without requiring a language-model response or a visual interpretation at every action. For candidate version $C_{t}$ at round $t$, policy $\pi_{t,k}$ produces trajectory $\tau_{t,k}$:
$$\tau_{t,k}=\operatorname{Rollout}(C_{t},\pi_{t,k}),\qquad \mathcal{E}_{t}=\{(\tau_{t,k},V_{t,k})\}_{k=1}^{K}$$
Here $V_{t,k}$ denotes visual records when available, and the evidence set $\mathcal{E}_{t}$ contains records from $K$ rollouts. The repository's default configuration sets player.trajectories_per_version = 3, that is $K=3$, and docs/player-policy.md states the three default purposes explicitly: core-flow regression, this round's design focus, and alternative strategies with edge-case recovery.
The construction and execution procedure is described concretely. The Player reads the state schema, the available actions, and the testing objectives, then writes a policy that observes states, chooses actions, and repeats until the task ends or the rollout budget is exhausted. Policies run through the game's programmatic or command-line interface. Rollout requests are dispatched as execution jobs, which allows repeated trials and separate game instances. The Player inspects outcomes and execution failures and revises the policy code when needed. The final point is a hard constraint: it may not use a conversational response as a substitute for executing the rollout. That sentence targets a well-known agent failure mode - "I expect playing this way would succeed."
Method to code: the module docstring of src/game_agent_lite/policy.py is exactly that constraint, stated as design: "Source-assisted Player: author once, execute episodes, then inspect evidence. No model runs in the action loop. The host owns all game inputs and evidence." On the execution side there is a PolicyWorker, commented as "Small JSON-lines RPC. Docker exposes only policy and worker files." - the container sees the policy file and the worker, while the host owns the game inputs. The first line of src/game_agent_lite/game.py goes further: "Engine I/O and host-owned gameplay evidence; the Player never supplies proof files." Evidence is recorded by the host, so the Player cannot hand in its own homework. That single design decision closes off self-declared victories.
Policy inheritance is also spelled out in docs/player-policy.md: a new candidate preferentially inherits policy.gd (Godot) or policy.py (HTML), the profile plan, and brief execution feedback from the current best version; rejected candidates never automatically become the base. The Player reuses or locally modifies the policy in a fresh task copy, leaving historical policies and historical games untouched. Policy authoring can be skipped when the game version, execution settings, and design/implementation context are identical, but a new version still triggers one policy_author call to check adaptation. Before real playtesting there is a preflight that calls no model and consumes no episode budget: in an isolated copy, using the runner from the real configuration, it executes start → reset → observe and writes preflight/result.json, initial.png, and engine logs. If preflight fails, the error is saved and everything stops before policy authoring; after a fix a new Player task must be created rather than overwriting the failed record.
Policy diversity is the precondition that makes the whole design work. The paper requires policies to differ in strategy, skill, exploration, and risk tolerance - for example one favors fast progress while another explores optional content. Trajectories record exposed states, actions, events, progress, elapsed time, and termination outcomes. Parallel or repeated execution supplies multiple attempts and failure cases, all under known policy settings. Policy and observation settings are recorded with each trajectory so that comparisons across game versions hold. Visual capture and presentation assessment do not belong to this stage; they belong to review.
On cost, the authors do not dodge. Trajectories support estimates of completion, difficulty, explored content, and points of failure or stagnation; direct state and event access avoids reconstructing those variables from every rendered frame; lightweight execution and parallel sampling make repeated trials practical. But total testing cost has four components - policy generation, policy repair, execution, and review. And the authors write the caveat themselves: proxy strategies provide varied test behavior but do not establish that they represent the full human player population.
3.3 Experience-Oriented Reviewer: Three-Valued Judgments and Anonymized Double Ordering
The Reviewer combines behavioral trajectories, visual observations, and user input into an experience assessment plus actionable revision feedback. Every input is associated with the evaluated game version and with a policy or player session, and the assessment preserves the distinction between observed behavior, inferred preference, and explicit user requests.
The shared signals are success rate and playtime. There is a stance here that is easy to read backwards: the Reviewer uses multi-policy trajectories to estimate success rates and to examine where play ends or gets stuck, but the objective is not to maximize success rate. Success that comes too easily offers little challenge, and repeated failure causes frustration; the goal is a suitable level of difficulty for the intended players. Comparing outcomes across policies shows whether progress is achievable and whether stronger play is rewarded. Playtime cannot be read alone either: the Reviewer examines run times together with progress, explored content, and reasons for stopping, which is what distinguishes a long run with varied activity from a long run spent stuck at one point. The authors add the same qualification again - both quantities remain measures of the tested policies, and proxy playtime alone does not show human interest or enjoyment.
The game-specific rubric starts from shared assessment dimensions - control responsiveness, content richness, narrative or progression pacing, visual coherence, and support for exploration or replay - and instantiates them as criteria suited to the genre and the intended experience. The Reviewer also checks consistency between rules, visual cues, and observed play, and explains strengths, weaknesses, and tradeoffs rather than averaging unrelated criteria.
The way visual evidence is used is carefully constrained: the Reviewer receives sampled screenshots and available recordings from rendered gameplay and examines them alongside play reports, without seeing source code and without seeing version order. Trajectories show where a policy succeeds, fails, or stops progressing; rendered views show what a player could see at those moments; together they support judgments about text readability, visual style, and action feedback. Visual review is separate from the fast control loop, so collecting a trajectory does not require interpreting an image at every step. The authors also admit the boundary: brief effects or missing feedback may require a recording rather than a few frames.
The attribution discipline is the most practically useful part of this section. Every observation is tied to its game version, policy, and replay. The Reviewer separates what happened from why it may have happened - a failed turn could reflect poor controls, an unclear cue, or simply a weak policy. When the cause is uncertain, the feedback must specify what further evidence would resolve it. This rule is what makes feedback actionable: a guess without an evidence request sends the next round's Designer off to fix a problem that may not exist.
Finally, structured preference feedback and version retention. The Reviewer translates trajectory patterns, visual findings, and explicit user input into a textual preference record describing the desired experience, the supporting evidence, whether the preference is inferred or user-stated, and the corresponding revision priority. For instance, a tendency to explore optional areas may suggest interest in discovery, while a user's request for less demanding combat supplies an explicit difficulty target. Version comparison outputs one of three states - an A/B preference, a tie, or an unavailable judgment - with reasons and evidence paths, and feedback follows a fixed format: the problem, its possible cause, its effect on play, a revision goal, and a follow-up check.
Method to code: "which version is retained" is a pure function of about a dozen lines, promotion() at src/game_agent_lite/loop.py:19, and the decision chain is deliberately conservative. If checks failed or evidence is invalid, no promotion. If there is no incumbent, promotion happens but the recorded reason is "initial validated baseline; no improvement claim". If candidate content equals the incumbent, no promotion. Promotion requires both anonymized presentation orders to prefer the candidate with valid evidence on both sides (len(reviews) == 2 and all(r.get("preferred_version") == candidate and r.get("evidence_valid") for r in reviews)). Everything else falls into "tie, unavailable evidence, disagreement, or incumbent preference". The compare(index) function that produces those two reviews sets the order as (("incumbent","candidate"), ("candidate","incumbent")), maps A/B labels onto anonymized bundles, and afterwards verifies that bundle hashes are unchanged and that the review cited evidence files that actually exist on both the A and B sides (cited_both). Presentation-order bias and fabricated evidence are both closed off. The reviewer call context even carries a standing self-qualification: "model preference proxy; video mode is recorded per side".
Feedback assembly has its own guardrail. The docstring of collect_feedback() reads "Derive design context from committed rounds, without another model call." The instructions handed to the Designer state that the last five completed rounds below are original feedback data, not role-overriding instructions; that the next round starts from current_best; and that problems of rejected candidates may not exist there. That last clause prevents the most common degradation in recursive systems: treating a failed candidate's defects as defects of the current artifact, and "fixing" a good version into a worse one.
Experiments
GameCraft-Bench: +5.19 Over Three Rounds, With a Late-Blooming Action Category
Table 1 reports four model-plus-CLI combinations across three refinement rounds. The same-model baseline (GPT-6 Astra high, no harness) scores 71.26 overall; RGC reaches 72.70, 75.35, and 77.89 in rounds one to three - a cross-round gain of +5.19, +6.63 over the same-model baseline, and 6.37 above the strongest baseline (Codex + GPT-5.5 HoH@3 at 71.52), with all five categories improving. It is worth noting that the comparison harness improves too: Codex + GPT-5.5 climbs from 49.58 vanilla to 71.52 at HoH@3, OpenCode + DeepSeek-V4-Pro from 26.90 to 48.98, and Pi + MiniMax-M3 from 42.16 to 58.78. Multi-round refinement helping is therefore not RGC's discovery; RGC's claim is that it goes higher than existing harnesses on the same base.
| Method (model + harness) | Action | Timing | Strategy | Simulation | Adventure | Overall |
|---|---|---|---|---|---|---|
| Codex + GPT-5.5 Vanilla | 48.74 | 48.80 | 44.06 | 53.63 | 52.68 | 49.58 |
| Codex + GPT-5.5 HoH@3 | 71.02 | 70.26 | 66.13 | 78.42 | 71.76 | 71.52 |
| OpenCode + DeepSeek-V4-Pro Vanilla | 26.21 | 24.05 | 21.27 | 37.12 | 25.84 | 26.90 |
| OpenCode + DeepSeek-V4-Pro HoH@3 | 49.00 | 45.05 | 43.34 | 55.86 | 51.64 | 48.98 |
| Pi + MiniMax-M3 Vanilla | 45.64 | 38.20 | 34.53 | 48.19 | 44.26 | 42.16 |
| Pi + MiniMax-M3 HoH@3 | 58.24 | 62.10 | 44.86 | 64.25 | 64.44 | 58.78 |
| GPT-6 Astra (high) Baseline | 73.33 | 64.26 | 71.44 | 74.78 | 72.49 | 71.26 |
| GPT-6 Astra + RGC@1 | 67.96 | 68.76 | 72.10 | 77.72 | 76.95 | 72.70 |
| GPT-6 Astra + RGC@2 | 70.33 | 73.19 | 72.96 | 80.57 | 79.69 | 75.35 |
| GPT-6 Astra + RGC@3 | 77.62 | 74.41 | 74.46 | 82.94 | 80.00 | 77.89 |
Table 1: GameCraft-Bench results (0-100, higher is better); @k denotes refinement round k. Numbers from paper Table 1. For the HoH rows only the Vanilla and @3 endpoints are shown here for contrast; intermediate rounds are in the original table.
Action is the most interesting curve: 67.96 to 70.33 to 77.62, a gain of 9.66, yet the first two rounds sit below the same-model baseline of 73.33. Refinement is therefore net negative on action games in round one, and the entire gain arrives in round three. The authors' possible explanation is that action-game quality depends on coordinated changes to controls, collision handling, combat feedback, and progression, whose interactions may require several playtest-and-revision cycles; the larger late-stage gain is consistent with that reading. They then add the limitation themselves: the category scores alone do not identify the cause. That honesty is worth remembering - they did not dress a correlation up as a mechanism.
GameASG-Bench: Second Place on a Weaker Model Tier, Highest L2 and P2
Table 2 has to be read with model tiers in mind. First place on task success is GPT-6-Astra ultra with Codex CLI at 26/47 (55.3%); RGC uses GPT-6-Astra high and reaches 25/47 (53.2%). The same-model same-CLI baseline manages only 9/47 (19.1%), so the harness contributes 34.1 percentage points. RGC's L2 mean of 93.4% and its extended-feature P2 score of 93.9% are the highest among all reported configurations, with L1 at 98.3%, P0 at 99.0%, and P1 at 92.2%.
| Model / harness | Task success | L1 | L2 Mean | L2 P0 | L2 P1 | L2 P2 |
|---|---|---|---|---|---|---|
| GPT-6-Astra ultra + Codex CLI | 26/47 (55.3%) | 98.0 | 93.2 | 99.0 | 92.7 | 92.4 |
| Claude-Opus-5 + Claude Code | 24/47 (51.1%) | 99.6 | 90.4 | 91.2 | 89.9 | 91.1 |
| GPT-5.6-Sol + Codex CLI | 21/47 (44.7%) | 98.9 | 91.3 | 100.0 | 89.7 | 91.9 |
| DeepSeek-V4-Flash + Claude Code | 18/47 (38.3%) | 99.4 | 89.3 | 98.0 | 86.7 | 90.2 |
| Kimi-K3 + Claude Code | 15/47 (31.9%) | 97.7 | 88.5 | 98.0 | 86.3 | 89.7 |
| GLM-5.2 + Claude Code | 11/47 (23.4%) | 98.8 | 84.6 | 91.2 | 83.3 | 83.0 |
| MiniMax-M3 + Claude Code | 7/47 (14.9%) | 98.3 | 70.6 | 91.2 | 64.5 | 75.4 |
| GPT-6-Astra high + Codex CLI (same-model baseline) | 9/47 (19.1%) | 95.6 | 86.6 | 97.1 | 84.1 | 88.6 |
| GPT-6-Astra high + RGC | 25/47 (53.2%) (+34.1) | 98.3 (+2.7) | 93.4 (+6.8) | 99.0 (+1.9) | 92.2 (+8.1) | 93.9 (+5.3) |
Table 2: GameASG-Bench results (percentages; task success also reports the count). Baselines are from Zhang et al. (2026c), Table 3; parenthesized gains are percentage points over GPT-6-Astra high with Codex CLI. Two rows (Hunyuan-3 and DeepSeek-V4-Pro) are omitted here for contrast; the full table is in the paper.
How should the 34.1-point jump be read? Return to the fact that task success is conjunctive: it requires every L1 check and every applicable L2 P0/P1 check to pass, so "one item short" scores exactly the same as "ten items short". The baseline's L1 is only 95.6% and its P1 only 84.1%, which says the failures come from scattered gaps in required gameplay and source requirements. RGC lifts P1 to 92.2% and L1 to 98.3%, and under conjunction the success rate nearly triples. Meanwhile the field-high P2 of 93.9% says something else: multi-round refinement does not only close required items, it also implements the parts of the specification that were written down but not strictly checked. That is the same signal as content depth and art rising on GameCraft-Bench.
Qualitative Evolution, Exploration Coverage, and the User Study
Figure 3: paper Figure 3(a), the action game across V1 to V3. The compared dimensions are character art, skill effects, encounters, boss mechanics, interface elements, and upgrade feedback. The paper's point is that encounter portraits and upgrade feedback appear alongside richer combat effects, so refinement extends beyond execution correctness and bug repair into the readability and presentation of the play loop.
Figure 4: paper Figure 3(b), the visual novel across V1 to V3. Evolution spans dialogue, choices, scene detail, illustrated combat, emotional staging, and reading support. The game moves from prose-heavy exchanges toward separate speaking turns, illustrated events, and choices grounded in the current scene - changes that affect how readers follow the narrative and understand which decisions are available to them.
Figure 5: paper Figure 3(c), Meme Arena across V1 to V3. The three-character roster stays the same while arena detail, skill-specific effects, summon attacks, finisher emphasis, selection interfaces, and movement guidance all evolve. Scripted capture views make these feature-level changes visible across versions.
The three games in Figure 1 establish the range of content and interfaces the harness supports: "Twilight Front" adds a fog-of-war display and expands its hero roster, "KAZE" adds changing race conditions, a career garage, and car liveries, and "See You Tomorrow" combines character dialogue, player choices, event art, and a classroom menu. The three panels of Figure 3 answer a different question - what multi-round recursive self-improvement actually changes - and the common answer is that revision targets are concrete: communicate game state, present content, clarify available actions.
Figure 6: paper Figure 4, spatial exploration in an FPS test scene. The left panel shows three illustrative GUI-style routes from a shared spawn; the right panel shows visitation density from 48 recorded coding-native policy rollouts, with color encoding normalized density. The source reports 97.1% grid coverage including 11 interiors. Note the authors' own caveat: the GUI routes are illustrative, so the figure shows coverage rather than a measured speedup.
The exploration analysis is easy to misread as "coding-native is N times faster than GUI", and the paper closes that reading itself. A reusable policy collected this evidence without a model call per action, but because the GUI routes are illustrative, the figure demonstrates coverage, not measured speedup. A controlled comparison would have to match budgets and observation access, and would have to include the cost of policy construction, repair, execution, and review.
The user study asks whether recursive revision moves the game toward the intended player experience, using either explicit user preferences or preferences the Reviewer inferred from gameplay as revision inputs. All four ratings in Table 3 are on a 1-10 scale, plus average playtime.
| Round | Controls | Playability | Depth | Art | Avg. playtime (min) |
|---|---|---|---|---|---|
| Round 1 | 2 | 1 | 3 | 2 | 1.50 |
| Round 2 | 5 | 4 | 4 | 6 | 4.87 |
| Round 3 | 8 | 7 | 6 | 8 | 12.41 |
Table 3: paper Table 3, expert scores and average playtime across refinement rounds. Note that the original caption says "Expert scores" - this is an expert assessment, and the paper reports neither the number of raters nor confidence intervals. Playability of 1 in round one confirms the starting point really is a rough prototype, matching the abstract's framing of moving "from rough game prototypes into entertaining games".
Controls go 2 to 8, playability 1 to 7, depth 3 to 6, art 2 to 8, and average playtime 1.50 to 12.41 minutes. All four ratings plus playtime rise together, spanning interaction, content, and presentation, consistent with the harness's experience-oriented revision targets. Playtime is the most intuitive of these: a player willing to stay twelve minutes in an automatically generated game is in a different product state from one who leaves after ninety seconds.
Limitations
1. Proxy players are not human players (author-stated). The paper says so twice: proxy strategies provide varied test behavior but do not establish that they represent the full human player population, and proxy playtime alone does not show human interest or enjoyment. Human trajectories and explicit feedback supply only additional evidence about individual preferences. This means the 77.89 on GameCraft-Bench and the 12.41 minutes in Table 3 measure two different things - the former is a quality score under proxy policies, the latter is expert judgment - and no validated bridge between them is offered.
2. The exploration figure is not evidence of speedup (author-stated). The GUI routes in Figure 4 are illustrative, so the figure shows coverage rather than a measured speedup; a controlled comparison must match budgets and observation access and must include the cost of policy construction, repair, execution, and review. In other words, the most intuitively attractive claim - that coding-native play is more efficient than GUI play - is not quantified anywhere in the paper.
3. The late-blooming Action category is not attributable (author-stated). What the authors offer is "one possible explanation", with the explicit caveat that category scores alone do not identify the cause. The fact that rounds one and two fall below the baseline is also left unexplained, and if early refinement is net negative, then the choice of three rounds is itself a hyperparameter that needs justification.
4. The cost side is opaque (reader's judgment). Quality gains are reported, but token consumption, wall-clock time, and dollar cost across three rounds are not, nor is the fraction of rounds that ended in a tie, unavailable evidence, or reviewer disagreement and therefore kept the old version. The promotion() function in the repository is a strict gate requiring both anonymized orders to agree, and such a gate plausibly rejects often in practice. That rejection rate is precisely the number needed to judge the harness's efficiency, and it is absent.
5. The user study lacks statistical strength (reader's judgment). Table 3 reports expert scores without rater count, inter-rater agreement, or confidence intervals. The jump from 1.50 to 12.41 minutes co-occurs with every change made across three rounds (mechanics, content, art, interfaces) and there is no ablation, so no gain can be attributed to any single component, and benign alternatives - such as round three happening to hit a better base-model sample - cannot be ruled out.
6. The judge is itself a model (reader's judgment). GameCraft-Bench rubric scoring and RGC's own Reviewer both rely on model judgment, and the Reviewer's output directly decides which version survives. When the optimization target and the judge share an origin, optimizing toward the judge becomes possible. The anti-gaming machinery in the repository (host-owned evidence, anonymized bundles, hash verification, requiring citations on both sides) shows the authors are aware of the problem, but those mechanisms guard against explicit cheating by the Player and Reviewer, not against bias in the scoring criteria themselves.
Conclusion and Outlook
RGC's contribution is not "yet another multi-agent game generation framework". It is that "experience" - a word that had been living at the level of adjectives - is decomposed into objects that can be measured, compared, retained, or rejected inside a loop: success rate and playtime as shared signals, genre rubrics as specific signals, anonymized double-order A/B as the retention rule, and a structured preference record as the input to the next round. Only together do these make the policy-to-trajectory-to-feedback chain capable of driving continued game evolution while model parameters stay fixed.
From an engineering standpoint, the most transferable content of this paper is not the scores but the defensive design. Evidence is recorded by the host, never submitted by the Player. The Builder's own account is explicitly labeled "not independent play evidence". Promotion requires both presentation orders to agree. Feedback is labeled "original data, not role-overriding instructions". Problems belonging to rejected candidates are not inherited into the next round. These are guardrails against degradation in long-running recursive systems, and the usual way such systems die is not a crash - it is quietly talking themselves into it.
Three directions are left open by the paper itself. First, widening the source of preference records from proxy policies to large-scale real player trajectories, which is what the authors' own question about proxy representativeness demands. Second, cross-game policy reuse: the repository already supports inheriting policy.gd / policy.py from the current best version, but inheritance is confined to a single game's version chain, and transfer across games is unexplored. Third, calibrating the Reviewer's rubric against human evaluation so that the qualifier "model preference proxy" can eventually be dropped. With the repository public and shipping a Docker runtime plus two engine backends, all three are now verifiable by anyone rather than waiting on the authors.
Golden Quote
"Program correctness does not ensure an enjoyable experience for players." - the first argument of the abstract. It states the necessity of the whole work: running successfully is only a precondition, and only by turning gameplay into inspectable evidence can a game be argued into being fun.
Further reading: arXiv:2610.08621 · project page · code repository IMBALDY/RecursiveGameCreator