Fifty hertz is the physics
RP412PHYSICSHZ defaults to 50: the simulation advances in fixed 20 ms steps whatever the display does, and every machine plays the same race. The proof preceded the promotion - a scripted lap with a crash, a burn, a tumble and two respawns runs bit-identical at 30, 60 and 144 fps, and identical runs reproduce exactly, neither of which was ever true of this engine at any frame rate. Fifty because it is exact on the engine's millisecond clock (a rate like 60 quietly becomes 17 ms steps wearing the wrong name), and because its settled hover ride height measured closest to the frame-coupled physics the game has always run - the least change of feel for the most change of correctness. The pods' 25 and the smoother 100 stay one line away for the play testers, and 0 keeps the original frame-coupled behaviour for comparison, where the frame rate is part of the simulation. Carried-over environ files do not mention the option, so existing testers get 50 on their next build and rpl4.log names both the option they have not heard of and the mode every launch. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+9
-6
@@ -653,13 +653,16 @@ static Scalar
|
||||
*setting = getenv("RP412PHYSICSHZ");
|
||||
|
||||
//
|
||||
// OFF until it is proven. The accumulator below is correct in
|
||||
// isolation but measured WORSE than the frame-coupled path it
|
||||
// replaces - at 30 fps the pod climbs, at 144 it barely moves -
|
||||
// so something else is still rate-dependent and feeding it. Not
|
||||
// a default until the trace says two frame rates agree.
|
||||
// 50 Hz is the default: a 20 ms step, exact on the millisecond
|
||||
// clock, and the rate whose settled hover ride height measured
|
||||
// closest to the frame-coupled physics the game has always run.
|
||||
// Proven before it was defaulted - a scripted lap with a crash,
|
||||
// a burn and two respawns runs bit-identical at 30, 60 and 144
|
||||
// fps, and identical runs reproduce exactly. 0 restores the
|
||||
// original frame-coupled behaviour, where the frame rate is
|
||||
// part of the physics.
|
||||
//
|
||||
int rate = (setting != NULL) ? atoi(setting) : 0;
|
||||
int rate = (setting != NULL) ? atoi(setting) : 50;
|
||||
|
||||
//
|
||||
// Guard the arithmetic rather than the taste: a rate below the
|
||||
|
||||
Reference in New Issue
Block a user