Spaces:
Running
Running
页面改版:可玩区换成六个成品游戏的 iframe 并移到 Before/After 之后;换 abstract 和数据行
Browse files- index.html +98 -22
index.html
CHANGED
|
@@ -18,26 +18,14 @@
|
|
| 18 |
<div class="nav-links">
|
| 19 |
<a href="#overview">Overview</a>
|
| 20 |
<a href="#compare">Before / After</a>
|
|
|
|
| 21 |
<a href="#gallery">Gallery</a>
|
| 22 |
<a href="#results">Results</a>
|
| 23 |
<a href="#citation">Citation</a>
|
| 24 |
</div>
|
| 25 |
</nav>
|
| 26 |
|
| 27 |
-
|
| 28 |
-
<div class="stage-game" id="stage-game"></div>
|
| 29 |
-
<div class="stage-bar">
|
| 30 |
-
<div class="stage-about">
|
| 31 |
-
<b id="stage-title"></b>
|
| 32 |
-
<span id="stage-who"></span>
|
| 33 |
-
</div>
|
| 34 |
-
<div class="stage-mid">
|
| 35 |
-
<div class="seg" id="stage-rounds" role="group" aria-label="Which build to play"></div>
|
| 36 |
-
<span class="stage-keys" id="stage-keys"></span>
|
| 37 |
-
</div>
|
| 38 |
-
<a class="btn btn-primary stage-down" href="#top">Explore EvoGame ↓</a>
|
| 39 |
-
</div>
|
| 40 |
-
</section>
|
| 41 |
|
| 42 |
<header class="hero" id="top">
|
| 43 |
<div class="hero-bg" aria-hidden="true">
|
|
@@ -60,18 +48,38 @@
|
|
| 60 |
<section class="section" id="overview">
|
| 61 |
<div class="wrap">
|
| 62 |
<div class="stats" id="hero-stats">
|
| 63 |
-
<div class="stat"><b>
|
| 64 |
-
<div class="stat"><b>
|
| 65 |
-
<div class="stat"><b>
|
| 66 |
-
<div class="stat"><b>
|
| 67 |
</div>
|
| 68 |
|
| 69 |
<div class="overview">
|
| 70 |
<div>
|
| 71 |
-
<h2>
|
| 72 |
-
<p>
|
| 73 |
-
|
| 74 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 75 |
<ol class="stages">
|
| 76 |
<li><span class="stage-tag">01</span><div><h3>Correct</h3><p>The game builds, loads and its core loop runs.</p></div></li>
|
| 77 |
<li><span class="stage-tag">02</span><div><h3>Complete</h3><p>Every mechanic and content beat the spec asks for is present.</p></div></li>
|
|
@@ -93,6 +101,74 @@
|
|
| 93 |
</div>
|
| 94 |
</section>
|
| 95 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 96 |
<section class="section" id="gallery">
|
| 97 |
<div class="wrap">
|
| 98 |
<header class="section-head">
|
|
|
|
| 18 |
<div class="nav-links">
|
| 19 |
<a href="#overview">Overview</a>
|
| 20 |
<a href="#compare">Before / After</a>
|
| 21 |
+
<a href="#play">Play</a>
|
| 22 |
<a href="#gallery">Gallery</a>
|
| 23 |
<a href="#results">Results</a>
|
| 24 |
<a href="#citation">Citation</a>
|
| 25 |
</div>
|
| 26 |
</nav>
|
| 27 |
|
| 28 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
|
| 30 |
<header class="hero" id="top">
|
| 31 |
<div class="hero-bg" aria-hidden="true">
|
|
|
|
| 48 |
<section class="section" id="overview">
|
| 49 |
<div class="wrap">
|
| 50 |
<div class="stats" id="hero-stats">
|
| 51 |
+
<div class="stat"><b>+14.2</b><span>Overall on Codex + GPT-5.5 · 50.3 → 64.5</span></div>
|
| 52 |
+
<div class="stat"><b>53.9</b><span>developed Qwen3.8-27B — past one-shot GPT-5.5 (50.3)</span></div>
|
| 53 |
+
<div class="stat"><b>1,998</b><span>runnable agent-written games released</span></div>
|
| 54 |
+
<div class="stat"><b>222K</b><span>verified agentic training rows</span></div>
|
| 55 |
</div>
|
| 56 |
|
| 57 |
<div class="overview">
|
| 58 |
<div>
|
| 59 |
+
<h2>Abstract</h2>
|
| 60 |
+
<p>Game development is a long-horizon, multi-objective process that requires repeated
|
| 61 |
+
playtesting, revision, and validation rather than a single generation pass. While recent
|
| 62 |
+
language-model agents can generate playable games and iteratively refine them, reliably
|
| 63 |
+
controlling such improvement over extended development remains challenging. An autonomous
|
| 64 |
+
developer must continuously identify where meaningful improvement headroom remains, gather
|
| 65 |
+
interaction evidence, edit the game, verify the consequences, and determine whether further
|
| 66 |
+
development is still worthwhile.</p>
|
| 67 |
+
<p>We find that a multi-agent loop of active game exploration, evidence-grounded editing, and
|
| 68 |
+
independent agentic verification can substantially improve generated games. However,
|
| 69 |
+
unguided self-improvement eventually plateaus, and continued refinement beyond that point
|
| 70 |
+
can even lead to regressions. We therefore introduce <strong>RSIGame</strong>, a controllable
|
| 71 |
+
framework for recursive game self-improvement. RSIGame autonomously explores and tests the
|
| 72 |
+
executable game, grounds improvement objectives in observed behavior, edits the game, and
|
| 73 |
+
verifies each new version before continuing development. A Global Quality Monitor
|
| 74 |
+
periodically quantifies development progress, preserves the globally best checkpoint, and
|
| 75 |
+
detects emerging saturation. Rather than treating saturation as termination, RSIGame can
|
| 76 |
+
introduce sparse high-level guidance from a human or a strong model, opening new directions
|
| 77 |
+
for progressive, multi-stage game evolution.</p>
|
| 78 |
+
<p>To support both game generation and experience internalization, we further construct a
|
| 79 |
+
large-scale game-development corpus containing <b>2,213</b> generation trajectories,
|
| 80 |
+
<b>2,108</b> planning trajectories, and <b>2,013</b> verified improvement trajectories.
|
| 81 |
+
Across 140 GameCraft-Bench tasks, two game engines, and five generators, RSIGame
|
| 82 |
+
consistently improves game quality under matched development budgets.</p></div>
|
| 83 |
<ol class="stages">
|
| 84 |
<li><span class="stage-tag">01</span><div><h3>Correct</h3><p>The game builds, loads and its core loop runs.</p></div></li>
|
| 85 |
<li><span class="stage-tag">02</span><div><h3>Complete</h3><p>Every mechanic and content beat the spec asks for is present.</p></div></li>
|
|
|
|
| 101 |
</div>
|
| 102 |
</section>
|
| 103 |
|
| 104 |
+
<section class="section" id="play">
|
| 105 |
+
<div class="wrap">
|
| 106 |
+
<header class="section-head">
|
| 107 |
+
<h2>Play the finished games</h2>
|
| 108 |
+
<p>Six games taken all the way through RSIGame development, in the browser. Each one is the
|
| 109 |
+
latest build; the round-by-round history of every game lives in its own Space.</p>
|
| 110 |
+
</header>
|
| 111 |
+
<div class="playbar" id="playbar" role="group" aria-label="Pick a game"></div>
|
| 112 |
+
<div class="playframe"><iframe id="playframe" title="Playable game" loading="lazy"
|
| 113 |
+
allow="autoplay; fullscreen; gamepad; cross-origin-isolated"></iframe></div>
|
| 114 |
+
<p class="playnote" id="playnote"></p>
|
| 115 |
+
</div>
|
| 116 |
+
</section>
|
| 117 |
+
|
| 118 |
+
<script>
|
| 119 |
+
// 六个成品游戏从各自的 Space 嵌进来。不把构建搬过来,是因为每个 Godot 网页构建
|
| 120 |
+
// 95-170 MB,六个就把这个 Space 的 1 GB 额度吃光了;iframe 一个字节都不占。
|
| 121 |
+
const PLAY_GAMES = [
|
| 122 |
+
{name:'Circuit GT', kind:'Racing · Godot 4',
|
| 123 |
+
url:'https://WenyiWU0111-racing-circuit-gt-evolution.static.hf.space/3d-racing-r6/index.html',
|
| 124 |
+
more:'https://huggingface.co/spaces/WenyiWU0111/racing-circuit-gt-evolution',
|
| 125 |
+
keys:'W/S throttle · A/D steer · SPACE handbrake'},
|
| 126 |
+
{name:'Forest Explorer', kind:'Adventure · Godot 4',
|
| 127 |
+
url:'https://WenyiWU0111-forest-explorer-evolution.static.hf.space/forest-r6/index.html',
|
| 128 |
+
more:'https://huggingface.co/spaces/WenyiWU0111/forest-explorer-evolution',
|
| 129 |
+
keys:'WASD move · SHIFT sprint · E chest · Q/RMB bow'},
|
| 130 |
+
{name:'FPS Arena', kind:'Shooter · Godot 4',
|
| 131 |
+
url:'https://WenyiWU0111-fps-arena-evolution.static.hf.space/fr4/index.html',
|
| 132 |
+
more:'https://huggingface.co/spaces/WenyiWU0111/fps-arena-evolution',
|
| 133 |
+
keys:'WASD move · LMB fire · 1/2/3 weapon · R reload'},
|
| 134 |
+
{name:'Alley Brawlers', kind:'Fighting · Godot 4',
|
| 135 |
+
url:'https://WenyiWU0111-alley-brawlers-evolution.static.hf.space/alley-polished/index.html',
|
| 136 |
+
more:'https://huggingface.co/spaces/WenyiWU0111/alley-brawlers-evolution',
|
| 137 |
+
keys:'Arrows move · Z/X/C attack'},
|
| 138 |
+
{name:'Block Drop', kind:'Puzzle · Godot 4',
|
| 139 |
+
url:'https://WenyiWU0111-alley-brawlers-evolution.static.hf.space/block-polish2/index.html',
|
| 140 |
+
more:'https://huggingface.co/spaces/WenyiWU0111/alley-brawlers-evolution',
|
| 141 |
+
keys:'Arrows move · UP rotate · SPACE hard drop · SHIFT/C hold'},
|
| 142 |
+
{name:'Lawn Guardians', kind:'Tower defence · Godot 4',
|
| 143 |
+
url:'https://WenyiWU0111-alley-brawlers-evolution.static.hf.space/lawn-v5/index.html',
|
| 144 |
+
more:'https://huggingface.co/spaces/WenyiWU0111/alley-brawlers-evolution',
|
| 145 |
+
keys:'Click a seed card, then a lawn square · click sun to collect'},
|
| 146 |
+
];
|
| 147 |
+
(function () {
|
| 148 |
+
const bar = document.getElementById('playbar');
|
| 149 |
+
const frame = document.getElementById('playframe');
|
| 150 |
+
const note = document.getElementById('playnote');
|
| 151 |
+
let cur = -1;
|
| 152 |
+
function pick(n) {
|
| 153 |
+
if (n === cur) return;
|
| 154 |
+
cur = n;
|
| 155 |
+
const g = PLAY_GAMES[n];
|
| 156 |
+
frame.src = g.url;
|
| 157 |
+
note.innerHTML = g.keys + ' · <a href="' + g.more +
|
| 158 |
+
'" target="_blank" rel="noopener">every round of this game →</a>';
|
| 159 |
+
[...bar.children].forEach((b, i) => b.setAttribute('aria-pressed', i === n));
|
| 160 |
+
}
|
| 161 |
+
PLAY_GAMES.forEach((g, i) => {
|
| 162 |
+
const b = document.createElement('button');
|
| 163 |
+
b.className = 'playbtn';
|
| 164 |
+
b.innerHTML = '<b>' + g.name + '</b><span>' + g.kind + '</span>';
|
| 165 |
+
b.onclick = () => pick(i);
|
| 166 |
+
bar.appendChild(b);
|
| 167 |
+
});
|
| 168 |
+
pick(0);
|
| 169 |
+
})();
|
| 170 |
+
</script>
|
| 171 |
+
|
| 172 |
<section class="section" id="gallery">
|
| 173 |
<div class="wrap">
|
| 174 |
<header class="section-head">
|