Inspiration

The Gauntlet Loop architecture is a breakthrough in agentic code generation, demonstrated in this cinematic browser FPS built by a fleet of AI Agents.

In comparison to "Call of Duty," which looks the way it does because of hundreds of artists and tens of gigabytes of assets. We wanted to know how close you could get with neither artists nor downloads, just a browser tab. Can procedural generation carry an entire AAA art direction? And can AI agents build something where the hard part isn't code, but making a scene look right?

What it does

ASHFALL is a wave-survival first-person shooter running entirely in a browser tab. No install, no download, no login. The fundamentals are the point: tactical sprint-slide, ADS, recoil with snappy-up/smooth-recovery decay, landing impacts scaled to fall speed. Soldiers take cover, fire in bursts, flank, and suppress you when you aim at them.

The remarkable part is what isn't there: zero image files, zero audio files. Every surface is painted procedurally at boot, every sound synthesized live in the Web Audio API. The whole game is 884 KB — 247 KB gzipped — with one runtime dependency. Rendering is a full cinematic stack: ACES tone mapping, sky-baked image-based lighting, GTAO, texel-snapped 4K shadows, aerial-perspective fog. Gemini writes each mission briefing.

How we built it

Nine AI agents in parallel, with an architecture built to allow it. First, we froze a module contract: a shared context object and an event bus. Each subsystem owns its own files and communicates only via events, so 9 agents wrote 11,000 lines across 21 modules with zero merge conflicts.

Then the part that mattered more—the critic Gauntlet Loop. Code review can't tell you a scene looks flat, so we built photo mode into the game: a URL flag that stages the camera, spawns frozen enemies, and POSTs rendered JPEGs to a capture server. Critic agents scored those screenshots against the Call of Duty reference and produced punch lists. Fixer agents applied them. Re-capture, repeat. The critics were told to be brutal and never praise effort. That's why it worked.

Challenges we ran into

The game rendered nearly black. Lighting checked out on paper. The cause was a Three.js detail: material tone mapping only auto-applies when rendering to the canvas, not to a render target, so ACES and sRGB encoding silently never ran — a color-space bug in a lighting bug's clothes. Sun glare ate the frame. Its brightness threshold was tuned for tone-mapped values but ran in linear space, where sunlit sand already qualified as a light source.

Buildings rendered as black silhouettes. Chasing contrast, an agent pushed the key light to 12:1 against fill. Flat ambient would have killed the form it was meant to reveal, so we bake the live sky into an environment probe — ambient that carries direction.

Accomplishments that we're proud of

Zero downloaded assets. Not "small" — none. The whole game is smaller than one high-resolution texture from a commercial shooter.

The critic Gauntlet Loop worked. Screenshot-driven art direction caught what no test suite would. Nine agents, 11,000 lines, zero merge conflicts. It just opens. Click a link, and be in a firefight in a second.

What we learned

Rendering bugs lie about their location. A black screen looked like lightning and was in the color space, three subsystems away. Ambient light needs direction. Uniform ambient lifts a surface's shaded side as much as its lit side, erasing the contrast that reveals shape. Agents need eyes and a harsh judge. Agents that could only read code produced code that compiled and looked wrong. Contracts scale agents; conversation doesn't.

What's next for ASHFALL

A Gemini tactical advisor grounded in the game's real numbers, coaching from your last run. A sponsorship program with backer callsigns in the credits. More weapons and maps from the same procedural system. And opening up the pipeline — the most interesting thing we built may be the process, not the shooter. Inspiration

Built With

Share this project:

Updates