Multiplayer time attack

Real physics, turned all the way up.

NetRacer is a free time-attack racer on tracks snapped together from road blocks: loops, wallrides, banked turns, jumps and ice, all inside one stadium. The car is a full simulation with sprung wheels, a clutch, a sequential gearbox you shift yourself, a V10 that cuts at 20,000 rpm and enough downforce to corner at about two g. The magnitudes are absurd. The relationships between them are all real.

Every run is deterministic to the bit, so the server re-drives your inputs and only a lap it reproduces goes on the board.

No build is published yet. The download page says what that means.

200 Hz
Physics ticks
~2 g
Cornering grip
20,000
rpm before the cut
0
Floats in the sim
The car on the run-up to a loop, the stadium behind.
The run-up to the loop.
The car upside down at the top of a loop.
Over the top. Downforce and speed keep it on the road.
The car leaning into a banked turn.
A banked turn at full throttle.

In-engine, uncut, on a track built from blocks in Blender.

01The game

One lap. Proven.

NetRacer takes the shape of an arcade racer, a stadium full of loops and jumps and a clock, and puts a simulation-grade car under it. Nothing about the driving is scripted. The car does what a car with these numbers would do, and getting fast means learning what that is.

A car, not a puck

Four sprung wheels on struts with bump and rebound damping, tyres that build grip with slip up to a friction ellipse, a clutch, a six-speed sequential box, a limited-slip four-wheel drivetrain, aerodynamic downforce and drag, and a rigid chassis that meets the walls. Understeer, lift-off oversteer and a locked rear axle on a bad downshift all happen because the physics says so.

Air control that is really physics

The wheels are flywheels. Brake in the air and the reaction torque pitches the nose down. Floor it and the nose comes up. There is no air-control cheat: landing a jump flat is a skill made from the same equations that drive the car on the ground.

Fifteen surfaces you can feel

Asphalt, concrete, kerb, dirt, gravel, grass, sand, snow, ice, wet, metal, wood, plastic, water and wall, each with its own grip along and across the road. The contrast is turned up on purpose: ice is a different sport, and the road tells you what it is through the wheel.

Every time is proven

The simulation is integer arithmetic, fixed point with no floats anywhere, so it produces the same numbers on every machine. When you cross the line the server re-drives your input stream and compares state hashes. A time it cannot reproduce is never published. A cheat is a divergence, and a divergence is logged, not smoothed over.

Ghosts, medals and splits

Every track carries an author time, and gold, silver and bronze come off it. Your personal best drives beside you as a white ghost with split deltas at every checkpoint, so you always know exactly where the time went.

Cars never collide

Everyone drives the same road at once and nobody can be punted off it. Other cars are live ghosts: you see their lines, their mistakes and their speed through the loop, and the only thing between you and the top of the board is your own lap.

Restart is one key

A run starts after a 1.2 second countdown. Restart is always one key away, and respawn puts you back at the last checkpoint. Nothing else moves the car: leave the map and it stays where it landed, clock running, until you decide.

Tracks from blocks

Road pieces on a 32 metre grid in 8 metre levels snap together end to end in Blender through the NetRacer add-on: straights, turns, banked turns, wallrides, S-bends, slopes, kickers, landings and loops, in tech, dirt, sausage, pipe, bobsleigh and platform road types, on any surface. Seams share bit-identical vertices, so there is nothing to fall through.

Special blocks

Turbo and super turbo pads, rocket boosters that lift and throw the car, a grip pad, a spring and an overdrive. Each is a coloured pad on the road and a rule in the physics, and every one of them is fair game for the fastest line.

02The car

The spec sheet.

One car, the same for everyone. Its parameters are compiled into the game and are not a setting, so a time on the board means the same thing for every driver.

Engine
A V10 that idles at 2,300 rpm and cuts at 20,000. Upshifts on the sequential box cut the ignition for 60 milliseconds and need no clutch. Downshifts do not blip the throttle for you: shift down without matching revs and the rear axle locks.
Gearbox
Six forward gears and reverse, shifted by you. The auto-clutch only manages launches, stalls and the moment around a shift, and you can switch it off and own the pedal.
Drive
Four-wheel drive with a limited-slip differential at the front, the centre and the rear.
Grip
Racing slicks, the rears wider, gripping around two times the load on asphalt and more with downforce. Traction control and anti-lock braking hold a target slip and can be felt working.
Suspension
Long-travel struts with light bump damping and heavy rebound, bump stops and droop stops. Dropped from two metres the car lands once and stays down.
Aerodynamics
Front and rear downforce that grows with speed squared, extra downforce under braking, and drag that sets the top speed rather than a number in a file.
Brakes
Four discs biased to the front, and a handbrake that locks the rears and swings the tail.
Controls
Keyboard or gamepad. Left stick steers, triggers are the pedals, bumpers shift. Every key can be rebound.
03How a time is proven

Your machine drives. The server checks.

Your car is simulated only on your machine, two hundred times a second. What goes to the server is your input stream, nine bytes a tick, and the server relays it to everyone else so their machines can re-drive your car beside theirs. Nothing about where your car is ever crosses the wire.

When you cross the finish, your client claims the time and a server thread re-drives that run from the stored inputs, about half a second of work for a one minute lap. Only a time the re-simulation reproduces, with every state hash matching, is published as verified.

How it works, in depth

What this buys

No position cheats
A client can only send inputs, and inputs are re-driven by everyone. Teleporting, speed hacks and clipping through walls all fail the replay.
Every lap is a replay
A run is its input stream. Ghosts, records and the verification all use the same file.
Fair on any machine
Fixed-point integer maths gives the same result on every processor, so a lap driven on a laptop verifies on the server to the bit.
A server with no physics
The server stores and relays inputs and verifies finished runs on a separate thread. It never simulates a car in its main loop.
04Tracks

Snap it together. Drive it.

A track is a Blender file, and building one is picking blocks from a panel and pressing Add. Turn on strict layout and the exporter refuses anything that does not line up. Leave it off and you can tilt a platform by hand or leave a road hanging in the air. Test drive saves, exports and starts the game on your map in one click.

Inside a loop block.
A loop block, from inside.
A banked turn block.
A banked turn on the tech road type.

Build a track

Free, and one zip.

Download it, host a track, send the address to your friends. No launcher, no store page, nothing to buy. The server binary is in the download, so anyone can run one. Find people to race, share a track or report a bug in the Discord, which is where I answer things.

No build is published yet. The download page says what that means.

Alex Wilkinson
05Made by

Alex Wilkinson

I build NetRacer on my own. The game is Rust on Fyrox, the open-source engine, and the tracks are Blender files snapped together from road blocks. Every decision comes back to the same rule: real physics, and a lap time you can trust.

I also made ProAim, a shooter about nothing but aim, Nail, the programming language this site is written in, and Simple Universal Language. The rest is at alex-wilkinson.ca.