Crash Derby Arena.
Crash Derby Arena.
A PS2 game I half-remembered and couldn't stop thinking about. Then I realised I could just make it.
The memory was specific: a demolition derby in a dirt bowl, four people on one sofa, every hit an event. I couldn’t fully remember the game, but I could remember exactly how it felt — and that feeling is what the couch has been missing ever since multiplayer moved online. So this became my first step into game development: not a tutorial project, but the game I actually wanted to play with my friends. Sixteen chunky 90s banger cars drop into a county-fair dirt bowl at dusk; you ram, dodge, and boost until you’re the last car rolling.
The design rule is that the hit is the game. Everything else serves the moment two cars meet: a custom arcade car controller on rigid-body physics — deliberately not the engine’s stock vehicle — running a sixty-hertz tick, with per-region crumple states, parts that tear off as physics debris, smoke, sparks, engine fire near death, and named Burnout-style takedowns stamped across the screen in comic-book bursts. Rounds are tuned short and savage — ninety seconds to two minutes — and wrecked cars stay on the field as burnt husks, so the bowl gets more dangerous as the round closes in. When only two remain, the floodlights drop for a final duel. And if a round dawdles, a monster truck called THE CLOSER smashes through the gate to end it.
The opponents have personalities rather than difficulty settings — the Hunter chases the leader, the Opportunist rams whoever’s mid-fight, the Coward hides until the endgame, the Berserker just sends it — and they telegraph their hits so getting wrecked feels fair. Around the core sit the party layers: three weight classes plus unlockable joke vehicles (an ice-cream van, a bumper car, a mini tractor), mutators like bouncy walls and one-hit wrecks, a play-money fair economy with kid-safe derby-night betting on bot matches, and a career book with persistent named rivals. The whole thing wears a county-fair UI kit called THE MIDWAY.
It went from first commit to a playable, playtested build in five days — 247 commits, fifty specs, roughly thirty thousand lines of GDScript, ten logged playtests on real hardware — built through the same orchestrated framework as everything else this month. Since then it has gone fourteen waves deep: a whole county-fair economy (fair tokens, a garage, betting nights), an aggression layer that keeps rounds mean — vampire hits, boost pads, a closing fence, a Gulag duel pen — a spotter minimap, and the comic-book damage story tuned to the frame. It is, objectively, very fun to hit things.
The split-screen rig is already in the code for the sofa it was designed around. The harder prize is online: the networking spike is proven, and the next step is a dedicated headless server running on my always-on box, so friends can join even when my laptop is shut. Same authority model as the spike — the server is just the host minus the local player.
Three months parked, then one day back. The game now runs in a browser tab: the whole engine compiled to WebAssembly, the same Jolt physics, nothing to install. The frame was the real work. The sun was casting four cascades of shadow across a thousand objects, which a laptop browser cannot afford, so on the web the sun casts one, the small debris stops casting at all, and the canvas draws one pixel per pixel. Sixteen cars at sixty frames on this laptop at the drop; the sound works; the textures went in compressed. The static hosts cap a file at twenty-five megabytes and the engine alone is forty, so it is served from the always-on server through a tunnel — which is where the dedicated server from the paragraph above now actually lives.
And the lobby. Press O on the title. HOST A NIGHT hands you a four-letter code; friends open the same address on their laptops, type it in, and appear in the waiting room, and the host fills the rest of the field with bots. The room works across the open internet — two tabs through the public address, the roster updating live. What it does not do yet is drop into the round: START says so in this build, and the synced match is the next one. A laptop and a keyboard, or since 24 October a phone held sideways, thumbs on the glass; Chrome or Firefox get the full-speed build, Safari a slower one.
02 / 20 · Crash Derby Arena — Everything tuned around the hit
The design rule is that the hit is the game, and every other part serves the moment two cars meet.
I wrote a custom arcade car controller on Godot with Jolt rigid-body physics at a sixty-hertz tick, deliberately not the engine’s stock vehicle.
Each car crumples by region, tears parts off as physics debris and catches fire near death, and named takedowns stamp across the screen.
Wrecks stay on the field as burnt husks, the floodlights drop for the final duel, and a monster truck ends any round that dawdles.
Opponents carry personalities instead of difficulty settings, and they telegraph their hits so getting wrecked feels fair.
Weight classes, joke vehicles and mutators sit around the core, beside a play-money fair economy and a career book of named rivals.
The split-screen rig is already in the code for the sofa the game was designed around.
A headless server on my always-on box runs the lobby: host a night, share a four-letter code, friends join from a browser. The synced round is the next build.





