obOB STUDIO
← All works
game★ flagshipLIVE stats

Oliver's Racers

Arcade racer. Random tracks, drift, boost, online multiplayer.

Loading Oliver's Racers

Tip: click Fullscreen for the best experience.

What you actually do out there

You pick a world and you are driving. Ten checkpoint gates ring a closed circuit, gate zero doubling as start/finish, and the HUD brackets the next one with the distance in metres. In a car each gate pays $25 and a lap pays $200. That is the loop everything else hangs off.

Read the build notes ↓
Get it on Android, free APK

Native app, way smoother than the browser. Android asks to allow installs from your browser the first time, that's normal for apps outside the Play Store. On iPhone: Share → Add to Home Screen installs the web version.

About this project

An arcade racer built in Godot 4. Procedural tracks with bridges, boost tunnels and open seas across 15 worlds. Drive cars, sail boats or fly planes online with real collisions; win the daily challenge to wear the golden Champion machines. Multiplayer runs on a Raspberry Pi game server. Cloud saves, PvP races, secret codes.

Built with

Godot 4GDScriptWebSocketRaspberry PiNode.jsAWSWebAssemblyPWA

How to play

W / S or ↑ / ↓
On the ground: gas, brake, and reverse if you keep the brake held. In a plane, W and S wind the throttle up and down and it stays where you leave it.
A / D or ← / →
Steer. In the air the same keys roll you, and the bank drags the nose round with it.
↑ / ↓ or I / K (flying)
Pitch the nose up to climb or down to dive; let go and the plane levels itself out.
Space
Nitro. It only fires while you are on the gas with meter left, and the bottle refills on its own, faster while you are drifting.
Shift / Ctrl
Handbrake. Hold it into a corner to break the back end loose.
E (or tap the item slot)
Spend the power-up you are carrying. It sits in the slot until you choose to use it, so you can save the good one for the straight.
R
Rescue. Drops you back onto the road, pointed the right way.
N / P
N rolls a brand-new circuit. Online it rerolls for everyone in the room, on a five-minute cooldown. P joins the quick-match PvP queue for that world.
G / M / B / H
Open the garage, the world picker, the shop and the how-to-play panel. Tab switches tabs inside the shop and garage, Esc closes whatever is up.
Touch: left thumb joystick
One stick does all the driving. Push up for gas, pull down for brake and reverse, sides to steer. BOOST and DRIFT circles sit under the right thumb (DRIFT becomes SLOW in a plane), with RACE / GARAGE / MAPS / TRACK / SHOP / ? buttons across the top.

Build notes.

What you actually do out there

You pick a world and you are driving. Ten checkpoint gates ring a closed circuit, gate zero doubling as start/finish, and the HUD brackets the next one with the distance in metres. In a car each gate pays $25 and a lap pays $200. That is the loop everything else hangs off.

Boats and planes earn differently. A boat hunts the floating buoys ($40) and idles beside fish shoals to reel one in ($25). A plane flies the 16 golden rings hanging 24 to 65 metres over the map, $60 a pass. The catalog holds 40 machines: 21 cars, 9 boats, 10 planes, most bought with that money.

None of it is imported artwork. Every car body, palm tree, mesa, grandstand and code stone is built at load time out of boxes, cylinders and meshes stitched together vertex by vertex. The only files here that are not code are a font, a music loop and the app icons.

Every circuit is a seed

Entering a world builds today's track. The seed is an FNV-1a hash of "<map>#<utc-date>", so my machine and yours build the same circuit on the same day with no server involved. Out of it come 9 to 13 control points on a wobbly, squashed, rotated ring, Catmull-Rom smoothed at 40 samples a segment, road half-width rolled between 8 and 10.5 metres.

Then it plans features. Zero to two bridges and zero to two tunnels claim non-overlapping windows on the loop, and if both come up empty it forces one of each, because a flat lap is dull. A bridge lifts the road into an arch on towers with drooping cables and pays a speed boost across the deck. A tunnel keeps the road flat and grows a grass hill over it.

The date seed is the only reason the daily lap board means anything - everyone times themselves on identical corners. Press N for a fresh random circuit and that lap is not submitted. Online it is one room per world on the room's agreed seed, relayed by a Raspberry Pi at 30 packets a second, failing over to an AWS API Gateway socket at 15. Short of rivals, four AI pace cars fill the grid, dropping out as real people arrive.

The $15,000 world nobody could reach

Fourteen of the fifteen worlds roll their shape from the seed. One does not: a fixed figure-8 I placed by hand, so there is a circuit people can actually learn. It is an unofficial tribute I built myself: no endorsement, no connection to any real racetrack.

My first attempt looked like a figure-8 and was not one. I checked the control points instead of trusting my eyes and the loop had zero self-intersections - it doubled back close to itself and my brain filled in the crossing. So I generated it from a lemniscate, which passes through its own centre and so crosses exactly once, then dragged points about for corner character. One crossing, at 72% of the lap. The bridge is pinned there, so the later pass rides over the earlier one.

Then I priced it at $15,000 and shipped it, and nobody could reach it. The world picker and the shop both read one list, ordered_ids(), and I never added the circuit to it. Nothing errored; it just did not exist. What exposed it was fixing a test that had been quietly passing: it asserted a layout is identical across two seeds, but never pinned which world it ran on, so it graded whatever my save held. False alarm on a procedural world, false pass on a fixed one. The suite now checks every catalogued world is listed and every listed one exists.

Worth trying

Chase a daily number one. Hold the fastest lap on a world today and you drive the gold Champion machine for it, one per class, until somebody beats you. Top five different daily boards at any point and Phantom Byte is yours for good: 88 top speed, 3.1 grip, the fastest and least cooperative thing here.

Go looking for a code stone. Every build stands one dark monolith well off the road with a code glowing above it; the spot and the code are both seeded, so it moves whenever the track rebuilds. Type it into the H panel. Each works once per save - some pay cash, one hands over a car nothing will sell you, one unlocks a world.

Then feel the offroad stat. Put the Rally Lynx (0.88 offroad) and the Vortex GT (0.38) onto the snow in Alpine, where the world grip is multiplied by 0.82 anyway. Parts stack on top: four slots (engine, shell, tires, nitro), five rarities up to mythical, stored per car, so every machine tunes separately.