A frozen frame ten times a second
From Velocia
Velocia's race looked jittery: "like pictures stitched together into a video". Every screenshot looked fine, which is the trap. A still frame cannot show motion, and judging motion by eye on a phone mixes three different causes into one feeling.
So it was measured instead. A playtest records where the watched car and the camera are on every frame, and how far each strays from a steady path between its neighbouring frames. A car moving smoothly strays by millimetres. These strayed by 20 centimetres, on a PC holding an even 60 frames a second, so it was not the frame rate.
Logging the car frame by frame found it: some frames it did not move at all, then carried on. The code that places a car on the track wraps its distance round the lap with posmod, and in Godot posmod is for whole numbers. Every car was drawn to the metre. Moving 0.9 m a frame, it sometimes stayed inside the same metre, and that frame repeated the last one. fposmod is the float version. One word.
Two more were underneath it. The track's line comes from OpenStreetMap as straight 4 m pieces with kinks, and cars turned at every kink, twenty times a second at speed, with the cameras turning with them; they now follow a smooth curve through it. And a car's line across the track moved only when the simulation ticked, ten times a second; it is now blended between ticks like everything else.
The car now strays 1.1 cm a frame instead of 19.6, and the camera's aim 0.01 degrees. The playtest stays in the repository, because the lesson is the measuring rather than the fix: "it looks jittery" became three numbers, and each number pointed at its own cause.