There is a very small planet you can defend right now, in your browser, with no install and no account. It is called ZERO HORIZON: a co-op arena shooter about a decommissioned robot, a rising sun, and an archive of red machines that never stops sending more. We built it in-house, on the same server that is serving you this page. This is the story of how, and why a studio that builds AI-native systems ships a game at all.
A world twenty-eight meters wide
The whole game happens on a sphere with a 28-meter radius, and that one number decides nearly everything downstream of it. At eye height on a planet that small, the horizon sits about eleven meters away. Walk forward and the ground visibly curves out from under you; enemies don’t spawn off-screen, they crest the curve like ships coming over the sea. Every fight happens inside that eleven-meter sightline, which keeps combat intimate in a way flat arenas can’t.
It also produced our hardest UX bug. Pickups that spawned a perfectly reasonable fifteen meters from the player were, by geometry, on the other side of the world. Players told us the upgrades felt impossible to find, and they were right: the items were literally below the horizon. The fix wasn’t a minimap. Every pickup now projects a pillar of colored light tall enough to clear the curve, so the world advertises its own geography. On a spherical world, wayfinding is vertical.

No engine, no asset store
ZERO HORIZON is Three.js and code. There is no game engine, no downloaded models, no texture packs. The robot is the bare chassis of T-0, our studio mascot, built out of boxes and cel-shaded; the drones, the terrain, the weapons, the explosions and the sky are all procedural. The entire game ships as roughly 160 KB of gzipped JavaScript plus one music track, which is less than most pages spend on fonts.
Small does not mean flat. The planet has a real sun with real-time shadow maps and a day that lasts about four and a half minutes, so a long run walks you through sunrises. The soundtrack, a track called Digital Divide, was generated in-house with Suno, and the orbital ring around the planet doubles as a 64-bar equalizer reading the live audio spectrum, so the world pulses with the music.
Multiplayer over a dumb pipe
The multiplayer server does not understand the game. It is one small Node process that assigns ids, forwards bytes between members of a room, and answers two plain HTTP endpoints for the leaderboard and the room directory. Everything intelligent happens in the browsers: the first player into a room hosts the true simulation and streams enemy snapshots eight times a second, partners render those snapshots as puppets and report what happens to them, and if the host leaves, the next player is silently promoted and the run continues.
Squads cap at four. You can share a private link with friends, or press one button and get matched into the fullest open room, because most people will not paste a URL to try a browser game. Partners drop in mid-run; a downed player rebuilds in six seconds while anyone is still standing.

All of it runs on the same modest VPS that hosts this website, our databases, and our automation stack. The relay’s share of the machine rounds to nothing, which was the design constraint from day one: a game is not allowed to endanger the infrastructure it advertises.
It never stops getting harder
Early versions had a ceiling. Around wave six the spawn counts, enemy caps and damage numbers all quietly stopped growing, while the pickups kept flowing, and a decent player could grind forever. Players felt it as a kind of thinning; the fight stopped asking questions.
So we removed the ceiling. Every difficulty knob in the game is now an increasing function of the wave number: wave size, how many machines press the attack at once, how fast reinforcements arrive, how much plating a veteran drone carries. Bosses arrive every fourth wave and bring escorts as the count climbs. At wave seven the simulation announces, in its own fiction, that the training limiter has been disengaged. It is telling the truth. There is no ending, and the leaderboard is the ending: names we did not recognize started appearing on the board within a day of it going live.

Every run now ends with a share card, rendered on a canvas in the browser: your callsign, your score, the wave you reached, and the address of the planet. On a phone it goes straight into the native share sheet.

Built the way we build everything
The interesting part, for us, is not the game. It is that the game was built AI-native, the same way we build everything at Temperature Zero: agent sessions writing the code under human direction, and, the part most people skip, verifying it without a human in the loop. A headless browser with a software renderer actually plays the game after every change. It starts runs, stages boss fights, asserts exact damage arithmetic, clicks through the menus, and fails the build on a single console error. For multiplayer we wrote protocol bots, fake players that speak the wire format directly, so a four-player squad test needs no four humans and no four machines.
Nine build rounds shipped in seven days, each one verified and live the same day: the sun and shadows, three weapons, four enemy classes, powerups, the co-op protocol, matchmaking, the music layer, the endless difficulty curve. That cadence is the studio thesis in miniature. Serious agent tooling, seriously verified, moves further than headcount math says it should. The same discipline runs our publication and our client work.
The constraint we kept
One thing never shipped: strobes. When we went looking for an overwhelming, rainbow-heavy kill spectacle, every version that flickered was cut before release, because flashing effects are a genuine accessibility hazard and one we take personally. All of the game’s spectacle is built from smooth ramps: hue rolls, eased bloom surges, shockwaves that bloom and settle. It turned out to be the better look anyway. Restraint reads as confidence, even in an explosion.
The board, live
The top ten below is read straight off the relay as you load this page. These are real runs by real players; the board resets for no one.
Hold the curve. demo.temperaturezero.com/zero-horizon

AI-generated editorial illustration · TemperatureZero · July 17, 2026
Keep reading the signal
Get the Daily Signal — a concise briefing on what actually matters in AI and the systems around it.
Subscribe FreeContinue the archive