Under the hood

HOW IT WORKS

No 3D models, no map editor, no downloaded assets. Here is how real roads become 16-bit arcade stages — explained for the curious, no programming knowledge required.

1 · Every stage starts on a real map

Each of the sixty stages is modelled on a road you could actually drive: Big Sur, the AVUS, Trollstigen, the Grossglockner High Alpine Road. The build pipeline looks the road up on OpenStreetMap — the free, community-built world map — and pulls out its exact shape as a chain of coordinates. A second source (radar elevation data from the SRTM space-shuttle mission) adds how high the road sits at every point.

Then comes the arcade trick: a 60-kilometre tour would be dull at game speed, so the shape is compressed — the straights are shortened much more aggressively than the corners, until the whole road fits into roughly one minute of full-throttle driving while every bend you would remember from the real drive is still there, in order.

2 · A track is just two curves

Here is the part most people do not expect: the finished stage contains no map at all. It is nothing but a long list of short road pieces, and each piece stores exactly two numbers — how much the road bends there, and how much it climbs. That is the entire track format. This picture shows those two number rows for a real stage:

Bend and climb profile of the Kesselberg stage

The Kesselberg mountain road as the game stores it: bends on top (gold right, blue left), the climb profile below.

Because the numbers are fixed — not random — every player drives exactly the same road on every run. That is what makes the online leaderboard fair: your time and score are comparable with everyone else’s.

3 · The pseudo-3D trick

The engine never builds a 3D world. It draws the road the way arcade machines did in the late eighties: as a stack of thin horizontal stripes, painted from the horizon towards you. Each stripe is drawn a little wider and a little lower than the one behind it — and your brain reads that as a road rushing towards the screen.

  1. ▶Corners do not turn the world — they slide the stripes sideways, more for the far ones than the near ones. The road appears to sweep away.
  2. ▶Hills shift the stripes up and down, and stripes behind a crest are simply not drawn — that is why a car can vanish behind a hilltop.
  3. ▶Everything on the roadside — palms, rocks, oncoming traffic — is a flat picture that is scaled bigger as it comes closer. One drawing routine handles a distant truck and a roadside diner alike.
  4. ▶Distance haze tints far stripes towards the sky colour, which hides where the world ends and sells the depth.
In-game view rendered from road stripes

Every frame is a few hundred road stripes plus scaled sprites — nothing else.

4 · A tunnel with no geometry

The Oeresund stage dives into the Drogden tunnel — and even that is stripes. The walls and ceiling are drawn per stripe like the road itself, and while you are inside, the engine simply refuses to paint anything outside the tunnel opening ahead. Lights come on automatically, the light bands overhead are stripes too, and the bright rectangle at the end is just the point where the engine starts painting the outside world again.

Inside the Drogden tunnel

Walls, ceiling, light bands: all drawn with the same stripe trick as the road.

5 · Everything is generated

There is no hand-drawn art in the project. Every sprite — cars, palms, skylines, the pixel font — is produced by scripts that place every pixel deliberately, and the chiptune soundtrack is computed note by note the same way. Even this website, including every screenshot on it, is generated: the images are real frames from a faithful copy of the engine, not mockups.

The same pipeline doubles as quality control: before every change is accepted, automated checks rebuild the project, re-measure the handling maths, verify every text fits its screen space in three languages, and re-run the whole test suite. If a check fails, the change does not go in.

Curious about the details? The full source code is public: the Cruiser project on GitLab — the code is GPL-licensed, the artwork and music remain the author’s.