TLDRocket
Sign in

Make AI Run a Gauntlet Against Real-World Work

GitHub

AI agents built a full browser FPS in Three.js, ~55k lines, zero art files — everything's generated by code at runtime. The real story is the testing harness that caught a benchmark lying about performance: 94fps looked great, but the game was unplayable.

Somebody pointed a swarm of AI coding agents at building a first-person shooter and let them run. The result is a roughly 55,000-line browser game using Three.js r180, split into 11 subsystems — rendering, physics, AI, audio, the works — with not a single texture, mesh, sound file or HDRI anywhere in the repo. Every wall, every gunshot, every soldier's skin is generated procedurally from code the moment the page loads. That's a genuinely unusual flex: a custom physics engine with a binned-SAH BVH doing raycasts in a quarter of a microsecond, Web Audio synthesizing weapon fire and reverb from scratch, nineteen procedural material types built to tile seamlessly with edge wear baked in via curvature math.

But the part actually worth paying attention to isn't the game — it's the tooling the team built to keep the agents honest. A profiler that reports p50/p95/p99 frame times caught something a simple average completely hid: a static-camera benchmark claimed 94 fps, while actual gameplay with AI and gunfire running sat at 12 to 17 fps with stalls over a full second, caused by three dozen shader programs compiling mid-frame. Median frame time, in other words, lied. And a screenshot tool that reused one browser page across shots turned out to produce different images on 10 of 11 runs for the same code, because particle age and exposure state leaked between captures. Only isolating each shot in a fresh page made the output reproducible enough for a pixel-diff gate to mean anything.

Once the team fixed the shader-compile stalls with a prewarm pass — verified to be bit-for-bit pixel-identical to the pre-optimization build — frame rates climbed to 28-30 fps and worst-case stalls dropped from over a second to under 100 milliseconds. Still nowhere near a shippable 60fps shooter, but a real, measured improvement rather than a vibes-based one.

The honesty extends to grading itself against Call of Duty and losing, repeatedly. Eleven adversarial AI critics scored the game's visuals against modern CoD frames, and it crept from 3.59 up to about 5 out of 10 across rounds — still landing mostly at "amateur," with two shots reaching "close." In blind A/B tests, every critic, every round, correctly picked the real CoD frame. The failure points read like a punch list for procedural generation's ceiling: blocky hands, mannequin-like enemies at distance, no real global illumination, and a lighting bug where the gun model receives twenty times the light per unit of material color that the rest of the world does, forcing every weapon texture to be cheated dimmer just to look plausible.

Maybe the most interesting finding has nothing to do with graphics quality and everything to do with how you organize AI agents. Splitting six agents across six directories in parallel, three times over, barely moved the quality score and actually made visual defects worse, because lighting, sky and tone-mapping are too tangled together for agents working in isolation not to trip over each other. A single agent working sequentially through the same coupled systems, one owner at a time, produced four times the improvement and cut defects by more than half. And the single most useful fix came from an agent that ignored its instructions — critics kept calling the weapon "untextured," so previous rounds kept darkening it, when the real problem was a blown-out specular highlight masking a perfectly fine diffuse texture underneath.

My take

What I like here isn't the shooter, it's proof that 'AI wrote it' means nothing without a harness that can catch AI lying to itself — a benchmark screaming 94fps while the game was unplayable is exactly the kind of self-deception autonomous agents will produce at scale if nobody builds the profiler to call it out. The parallel-agents-versus-sequential-owner result should be required reading for anyone shipping multi-agent systems right now: fan-out sounds efficient and is often just six agents politely destroying each other's work.

Read more about this at: GitHub

Related stories

The daily briefing

Every AI story that matters, in your inbox by 8am.

TLDRocket reads all relevant sources, removes duplicate coverage, and summarises the day in two minutes. Follow companies and topics for alerts, or get the briefing in Slack. Free, no spam, unsubscribe anytime.