Skip to content

A race from the disc ​

2026-10-24, the game app's session.

Un-POD in the browser: the player's car at 173 km/h in 5th on Canyon, a live race started from the game's files

What was tried ​

The first live race this morning started from a step log of the original. Its race cars, drivers and track memory were all copied from the running game. That only worked on Gold's Beltane. This session built the same start from the disc:

  • the track world from the track file (crates/pod-world, checked earlier against a snapshot);
  • each race car from its car file. The parameters are copied as car_to_racer (0x47161c) copies them. The five settings then go through the garage set-up (0x434b94 to 0x434cc8), and inertias and weights come from car_physics_setup (0x41c780);
  • each car on its grid slot, from the track's start records (FUN_004236f0);
  • fresh drivers, and then the two seconds of settling that race_setup (0x49b9d4) runs before the countdown.

What was found ​

  • The settings. The player's car takes the settings in its car file. The computer cars take constants: 80, 80, 75, 35 and 30. On EASY the difficulty factor (0.8) scales the top speed of every car, the computer cars included. A first test that left it out had every computer car's gears off by exactly that factor.
  • The body inertia comes from the half extents of body set 0's six objects plus the four wheels. This was found by trying the candidate sets against the logged values.
  • The settling loop turns the wheels (FUN_004155b8) after each car step. Without it, only the wheels' roll angles differed.
  • The computer drivers' first line point. It must be found the way the game finds it (FUN_00455ed0: the tracker's link first, then the special lanes, then the nearest node's lanes). The pole car, BAKAR, otherwise started on a point of another lane and steered differently.

Measured: after the settling, every word of all eight race cars (pointers aside) matches the first step of the original's Beltane race (crates/pod-game/tests/start.rs).

Headless: the player sixth on Canyon after 23 seconds, holding the accelerator

unpod --live now needs no recording. It drives on any track, and with --menus it drives the race the menus set up. In the browser, ?live=1&track=canyon does the same.

What is next ​

  • The cars still pass through each other. pod-physics has ported the collision pass, but it needs each car's drawn object and collision hull in the world. Building those from the car model is the next piece.
  • The drivers' trackers are still put on the nearest path point (FUN_004aa8a0 is not ported).
  • The menus' grid draw, and a gamepad.

Prose CC0 1.0, code Apache 2.0. POD: Planet of Death is © Ubi Soft; none of its files are on this site.