Skip to content

PolyTrack, on its own - #242

Merged
Mason363 merged 21 commits into
mainfrom
polytrack
Oct 27, 2026
Merged

Mason363 merged 21 commits into
mainfrom
polytrack

Conversation

@Mason363

Copy link
Copy Markdown
Owner

PolyTrack by Kodub on the calculator: all 17 official tracks, time trials with checkpoints, respawn and restart, a ghost of your best run, loops, wall rides and tubes on the game's own physics. Built on Boris-TH's PolyGT 3D from #201, with his commit kept. 1,292,636 bytes installed, 30 fps on the N0110.

Boris-TH and others added 21 commits October 24, 2026 11:11
# Conflicts:
#	games/games.json
…es that keep

Boris-TH's low-poly racer, rebuilt to play well and never break. The race now runs
in whole numbers, a step of 20 ms at a time, so it comes out the same on every
calculator and computer. The car goes where it points, its tyres hold so much in a
bend, braking while steering hard slides it round a hairpin, and the engine pulls
through six gears. The three circuits are fixed loops with their own bends, hills
and roadside instead of a new random shape every race, so records and the ghost of
your best lap mean something. The endless road changes scenery as it goes, with
zones to reach before the clock runs out.

Up to seven rivals brake for the bends at three levels, keep to their lines, pass
slower cars and take nitro orbs, and no car goes through another or the barriers.
The picture is drawn with flat-shaded triangles and a depth buffer, edge to edge
with no gaps, at a steady 30 frames a second on an N0110.

Up accelerates, Down brakes, OK burns nitro, + and - shift with the manual gearbox,
Back pauses (Resume, Restart race, How to play, Quit game, which asks first) and
Home saves and quits, even mid-race: Continue picks it up. Every screen has a line
of keys, and the first race starts with them.

polygt3d.sav is one checked format, with a copy in polygt3d_saves.py. The game is a
big game of its own at rank 21, after Turbo Rush, installs as 69 KB and needs 98 KB
of RAM. make test checks the roads, laps, the physics, crashes, the rivals
finishing every circuit at every level, a race and the endless road through the
keys, damaged saves, a full storage, 300 sessions of random keys and a race hash.
His single file, test and PC key list are gone, and the cars carry names of their
own.
# Conflicts:
#	.github/workflows/build.yml
#	Makefile
#	games/games.json
#	tests/test_games.py
#	tools/release.py
Its card, GIF, credit and How to play section.
… 3D picture

tools/pack.py reads PolyTrack 0.6.3's web build: the 17 official tracks, the track parts' models (simplified for
the screen, cut into 20 m chunks, with a physics mesh and grid each), the car, the materials and the track maps,
into src/data.bin. car.c ports what the game's physics does every 1 ms frame: a 400 kg Bullet body, a raycast
vehicle with PolyTrack's wheels and tuning, its downforce and steering, the checkpoints and the finish.
render.c draws the track, the mountains and the car with PolyTrack's sky, sun and colours.

Work in progress: the screens and the build come next.
The title over the track in 3D, the tracks by season with their maps and records, the car's colour, how to
play, PolyTrack's timer (record, current, difference) with checkpoint splits, its hints, the pause and the
finish. The car waits at the start until a driving key, as in the game. OK goes back to the last checkpoint,
Backspace starts over. Best times and checkpoint times go in polytrack.sav (copied into polytrack_saves.py),
the ghosts of the last records in polytrack_ghosts.sav. Triangles are sorted into strips once a frame and the
depth buffer is filled in fixed point.
…ts, thumbnail and GIF; PolyGT's pictures gone
Its card, GIF, credit and How to play section, in PolyGT 3D's place.
@Mason363
Mason363 merged commit e9d6884 into main Oct 27, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant