We measured 46 browser games built by AI from one prompt
Everyone has an opinion about whether AI can build a real game now. Nobody had run the games. We loaded every playable one into a real browser at 1440×900 and 390×844, clicked past the menus, and recorded what it actually did. Here is the whole dataset.
The finding: the failure is the one a critic can't see
These games were built with a method whose core is an independent visual critic — a fresh agent that looks at the running game beside a reference and says which is better. It works, and it is the part of the method everyone reproducing it has confirmed.
But it is a visual critic, and a game running at 15fps screenshots identically to one running at 60fps. Frame rate is invisible to a still image, so it is invisible to the judge. And frame rate is exactly where this population falls down: 29 of the 39 games we could instrument run slower than 33ms per frame, with a median of 66.6ms. The worst renders one frame every 1.4 seconds and looks completely fine in a screenshot.
The assumption that died was ours. We expected phones to be the weak spot. They aren't — 38 of 39 render fine at 390×844 and only two overflow horizontally. We were wrong about that before we measured, which is the reason we measured.
Every game, slowest last
Frame time is p50 sampled while playing, after an automated nudge past the menus. Lower is better. Weight is what the browser transferred on first load.
| Game | Frame ms | ≈fps | KB | Errors | Phone |
|---|---|---|---|---|---|
| Pastel Nuketown · Luckey Systems | 16.7 | ~60 | 345 | 0 | yes |
| Dream Logic · Voidtalker | 16.7 | ~60 | 30 | 0 | yes |
| Claude\Zombies · Justin Whitton | 16.7 | ~60 | 205 | 0 | yes |
| Workmelt · Erik Nomitch | 16.7 | ~60 | 622 | 0 | no |
| Minimax of Duty · sigco3111 | 16.7 | ~60 | 503 | 2 | yes |
| Nerd of Duty · Simon Taylor | 16.7 | ~60 | 541 | 0 | yes |
| Everything Must Go · Jeremiah Daws | 16.7 | ~60 | 251 | 0 | yes |
| Tiro Libre · Morfeo Labs | 16.7 | ~60 | 333 | 2 | yes |
| Nutso Cab-O · RE:Skob | 16.7 | ~60 | 9 | 0 | yes |
| Sunset Circuit · Bee.games | 16.7 | ~60 | 259 | 1 | yes |
| RICHTER · Stas Kulesh | 33.3 | ~30 | 2332 | 0 | yes |
| Wind Waker Game · martbln_dev | 33.3 | ~30 | 272 | 0 | yes |
| Der Koloss · Vesper | 33.4 | ~30 | 23197 | 0 | yes |
| Phantasy Claude Online · fauxdufafa_ | 33.4 | ~30 | 2760 | 0 | yes |
| Kart Royale | 50 | ~20 | 625 | 2 | yes |
| Dungeon Crawler Carnage · Borelli Corp. | 50 | ~20 | 337 | 0 | yes |
| Yakko Kart · pedrour | 50 | ~20 | 185 | 1 | yes |
| Story in NYC · Edzzle | 50 | ~20 | 165 | 0 | yes |
| Starfall · Mike Luan | 50 | ~20 | 429 | 0 | yes |
| You Always Do This · B33fyDan | 66.6 | ~15 | 614 | 0 | yes |
| Frontline · maximus_v0 | 66.8 | ~15 | 475 | 1 | yes |
| Clawd Pop 3D · VibezZzCoder | 83.3 | ~12 | 200 | 0 | yes |
| Whirlwind Ascension · Dylan Hsieh | 83.3 | ~12 | 612 | 0 | yes |
| Hoop D Doop · Edzzle | 83.3 | ~12 | n/a | 0 | yes |
| K3-of-Duty · OpenGame | 83.4 | ~12 | 3771 | 2 | yes |
| Sunset Runners · Evan Milenko | 99.9 | ~10 | 672 | 3 | yes |
| Future Bots · jonathanAIbr | 100 | ~10 | 238 | 0 | yes |
| Operation IronHold · prasenx | 116.7 | ~9 | 217 | 2 | yes |
| Claude for Speed · hey_madni | 133.3 | ~8 | 16811 | 1 | yes |
| Codex of Duty · luongnv89 | 133.4 | ~7 | 1047 | 2 | yes |
| Skramble · Atom Tan Studio | 150 | ~7 | 292 | 1 | yes |
| Kuru of Duty · ravsau | 183.2 | ~5 | 436 | 0 | yes |
| Sands of the Restless · Eddie Belaval | 350 | ~3 | 6969 | 0 | yes |
| Penguin Peak · Jurij | 516.7 | ~2 | 1434 | 0 | yes |
| Dust Corridor · Leon Lin | 583.3 | ~2 | 246 | 0 | yes |
| Sakura — Petals of the Everblossom · danmana | 700 | ~1 | 525 | 0 | yes |
| DESCENT · sjwebster-bne | 983.3 | ~1 | 632 | 2 | yes |
| Rocketball · Atom Tan Studio | 1200 | ~1 | 1230 | 2 | yes |
| Claude of Duty: Phadda · Zain Zafar | 1433.2 | ~1 | 1383 | 0 | yes |
One self-contained file looks like the better build
Six of the games ship as a single HTML file with no external scripts. The other 33 load a bundle. The single-file group is faster and more phone-proof:
| Build shape | n | Median frame ms | Median KB | Renders on phone |
|---|---|---|---|---|
| Single self-contained file | 6 | 33.4 | 612 | 6 / 6 |
| Bundled | 33 | 66.8 | 436 | 32 / 33 |
Treat this as a signal, not a proof — n is 6. Six games is not enough to claim single-file causes better performance, and the causation could easily run the other way: a developer who can fit a game in one file may have built a simpler game. We are reporting it because it is what the data says, with the sample size attached.
How we measured it, and where it is weak
Headless Chrome driven over the DevTools Protocol. Each game got a fresh page, eight seconds to boot, then six rounds of real clicks and Enter/Space to get past loading screens and menus — synthetic events do not work, because these games gate start behind input the browser considers trusted. Then a ~10 second requestAnimationFrame sample, a screenshot decoded pixel by pixel, and the console read for errors.
The limits, stated plainly:
- 7 of the 46 are missing because they blocked the browser's main thread for longer than our debugger call would wait. That is our instrument's ceiling, not a verdict on those games — two of them render perfectly well given more time. They are listed below rather than counted as failures.
- Three games under-report their weight, because cross-origin assets do not expose transfer size to the page. Those show n/a.
- An automated nudge is not a player. Where it never got past a menu, the frame time is a menu's frame time — which flatters the game, not the reverse.
- One machine, one run, headless, GPU disabled. Absolute numbers would differ on your hardware; the spread across 39 games measured identically is the part that carries.
Not measurable by our harness:
- Operation Blackout · taozhuo
- Speed Racer · Rahil Bhansali
- The Long Silence · Anshu Chimala
- Aleppo Corridor · Bryan Helmkamp
- KINDLE · Tony Downey
- Clawdbot · keshav0479
- The Hooded One · Christopher Kocurek
If you're about to build one
The lesson we took from this is in our prompt generator: it asks the agent for a measured number every round — frame time, console, weight — alongside the judged one, because the judge cannot see the failure that actually happens. Free, no email.
Open the prompt generator → or give a finished game a permanent home →
Method credit: the games here were built with the Gauntlet Loop, published by Matt Shumer after Claude of Duty. The directory of games is his; the measurements are ours. Nothing here is a criticism of the people who built these — shipping a playable 3D game in a weekend is the achievement, and the frame-rate gap is a property of the method, not the builders.