Walking East On A Map That Thought You Were Going West
Inverted movement fixed, a fixed-timestep accumulator at 60Hz, three air-acceleration modes, and stair smoothing.
The Coordinate Bug
Direction calculation was inverted, and yaw rotation had to be corrected to Babylon's left-handed coordinates:
forward = sin(yaw), cos(yaw)This is the bug that makes an isometric game feel like it is being fought by the input layer. Every control mapped correctly and every direction was wrong.
Three Modes Of Air
Ported from the local controller so both sides agreed:
Mode 1 W-only forward acceleration (Warsow-style bunny hopping)
Mode 2 A/D-only strafe bunny accel (CPMA strafe jumping)
Mode 3 default air control (Q3-style)The Clock
LocalGameHost gained a fixed timestep accumulator. The simulation runs at 60Hz regardless of render framerate. cl_smoothfactor lerps camera Y on network mode, which prevents screen shake on stairs.
This is the first fixed-timestep accumulator in the project, seven weeks before v0.9.0 moves the whole simulation to 125Hz. It arrives here as a bug fix and turns out to be the foundation.
Wall Jump, Again, Properly
Momentum preservation via the reflection formula R = V - 2(V.N)N, multi-direction detection across 5 directions, eye-level validation, a 100ms grace timer before exiting the available state to prevent detection flicker, and charging as a freeze with a boost on release.
Ledge Grab, Again, Properly
4-trace detection: waist trace, head clearance, downward ledge surface, and a room-to-stand check. 50ms minimum grab duration before cancel. Pushing backward cancels it.
debug player visualises the collision volume. Also fixed locally: ground distance trace uses eye level (position + 24) instead of origin, and wall jump now requires releasing space after a ground jump.
Known Issues: none stated.