ZERO HORIZON: the co-op shooter living on a corner of our VPS

ZERO HORIZON: the co-op shooter living on a corner of our VPS

/ Maxim Starkweather / 5 min read

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.

T-0 robot on a small dark planet facing three red drones, with violet and gold beacon pillars rising from pickups near the curved horizon
The eleven-meter horizon at work: drones in close, beacon pillars marking pickups beyond the curve.

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.

ZERO HORIZON title screen with callsign entry, QUICK JOIN SQUAD button, and a monolith rising behind the interface panel
The title screen. One button matchmaking, no accounts, callsigns only.

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.

A massive red warden boss drone with spinning rings looming over the small robot T-0, boss health bar at the top of the screen
The WARDEN, every fourth wave, progressively less reasonable.

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.

ZERO HORIZON run card showing callsign UNIT-620, 48730 points, reached wave 14, with a glowing horizon arc and the play URL
The run card. The game’s only marketing department.

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.

DECK 7 // TOP UNITS — LIVE
CONNECTING TO THE RELAY…

Hold the curve. demo.temperaturezero.com/zero-horizon

AI-generated editorial image

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 Free

Continue the archive

Latest BriefingsArticlesAbout Temperature Zero