Skip to content

Props, beacons and the racing line ​

2026-10-24, third session.

The editor in the viewer on Beltane: the beacons as cyan lines, a road face picked, and the racing-line controls; the history holds a beacon move and a racing-line move

The editor on POD Gold's BELTANE.BL3 in the browser build. The cyan lines across the road are the race's beacons; a click picks one. A picked face now offers a new prop there and a move of the racing line around it.

Until now the editor changed what a track looks like: textures, vertices, props moved. This session it reached what the race does: props added and taken away, the beacons that count laps, and the line the computer's cars drive.

Adding and removing props ​

Every edit so far wrote new bytes over old ones, so the file never changed size. A new prop needs 48 bytes more in the environment. The track writer can already re-lay the file when a part grows, so the edit replaces the whole environment part: a copy of an existing prop's record with a new position, appended to the global list, and the list's count raised by one. Removing a prop cuts its record out and lowers its list's count.

The first try failed its own test. A prop added and then undone left the file one block longer. After a size change the editor split the newly encoded file again, and the encoder pads the file to whole blocks; splitting took that padding into the last entry, and it stayed when the part shrank back. Now the writer keeps every part's bytes and only finds the offsets again (Layout::reindex). Undo and redo still work by putting bytes back, now whole parts as well as fields. Because undo runs strictly last in, first out, every offset is valid when its undo runs.

The test: on each of Gold's track files with props, add a copy of prop 0 and remove it again, and compare with the original (measured: all 44 identical). The second try still failed, on Parking. Parking is the only track whose props are not all in the global list: one sits in a sector's list, so the new prop's number is not the last one. That is a new fact about Gold's data, now in the track format document.

Beacons and paths as fields ​

A beacon is a gate across the road: four corners and a plane, in 15 words that pod-race already reads (gate.rs). The editor moves the corners. The race paths are the points and nodes the computer's cars follow (pod-race's paths.rs). The editor moves them around a point with a smooth falloff, like the road raise. EASY lives in entry 0, MEDIUM and HARD in entries 1 and 2, which the writer had kept only as bytes; it can now write fields there too.

In Un-POD ​

Each edit was installed into its own game folder and raced with unpod --content, driven by the probe without a window.

The lap line lifted (measured). Beltane's lap line is beacon 35: its chain runs "P-Chrono Tour". Lifted 50 units, the cars pass under it.

After 3:20 on the race clockGold's trackLap line lifted
Racer 1: lap-line crossings20
Racer 1: lapsone, 111.2 snone
Next checkpoint30

The lap line is also the first checkpoint, so the whole race stalls: every car waits for checkpoint 0.

The racing line moved (measured). The paths' points on the downhill straight moved 25 units across the road (radius 80). The first try, 8 units, was lost in the cars' own spread: they race in a pack and push each other. At 25 units the seven computer cars, averaged over their first pass, moved by as much as the line.

The computer cars' mean line across the road, Gold's track and the moved line

The mean y of the seven computer cars on their first pass down the straight: +24.2 at x 595 for a move of 25, and the bell shape of the edit's falloff on both sides.

Props added (measured, frames). A sign and three cones across the player's lane on Alderon, 170 units after the grid:

Alderon in Un-POD: the bend after the grid, empty on Gold's track, a sign and three cones on the edited one

5.95 s into the race: Gold's track (left) and the edited one (right).

The player's car passing between the added cones

6.59 s: the car passes between two of the cones.

The car, holding accelerate, kept exactly the path and the speed it has on Gold's own track. The cones are light against a car, and Un-POD's prop collision runs, but whether the cone in the car's way was knocked aside is not measured: the probe does not report props. Taking props away was tested in the editor (above) but not raced: no existing prop lies on the first stretch of the tracks tried.

Not done ​

  • The reverse race's beacons and paths (entries 3 to 5) are not editable yet.
  • A track without an environment (Beltane's is NEANT) cannot get props: that needs a prop type with its model and textures, copied from another track.
  • Moving a beacon does not turn it; a gate moved onto a bend may face the wrong way.
  • The animation library's instances (the wrong-way sign is one), and saving from the browser.

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