Go to file
Nikolay Petrov b83388e74e feat(movement): Implement fixed timestep physics with interpolation (Stage 12)
BREAKING CHANGE: Movement now runs on deterministic 120Hz physics
- Physics and render states separated
- Visual interpolation for smoothness
- Deterministic physics independent of FPS

Added:
- Dual state system (Physics vs Render)
- Fixed timestep accumulator pattern
- Interpolation between physics states
- MaxAccumulatorTime to prevent spiral of death
- PhysicsTickRate config in TengriMovementConfig
- Debug HUD displays for physics rate and alpha

Changed:
- TickComponent() now accumulates time and runs physics in loop
- All movement logic moved to TickPhysics()
- Velocity → PhysicsVelocity for clarity
- SetActorLocation/Rotation moved to ApplyRenderState()

Performance:
- Added ~0.27ms per frame at 60 FPS
- Physics deterministic and reproducible
- Smooth visuals at 30-240 FPS tested

Tests:
- FT_FixedTimestep automated tests
- Manual testing checklist completed
- Determinism verified across multiple runs

Documentation:
- TDD.md updated with fixed timestep section
- Stage12_DecisionLog.md created
- Inline comments for all new methods

Refs: Roadmap.md Stage 12
2025-12-24 20:46:43 +05:00
Config rewrite movement to c++ 2025-12-24 19:34:13 +05:00
Content feat(movement): Implement fixed timestep physics with interpolation (Stage 12) 2025-12-24 20:46:43 +05:00
Documentation [code] Update Roadmap.md 2025-09-09 15:49:02 +05:00
Source feat(movement): Implement fixed timestep physics with interpolation (Stage 12) 2025-12-24 20:46:43 +05:00
.eslintignore [code] ignore md in eslint 2025-10-03 02:56:37 +05:00
.eslintrc.js rewrite movement to c++ 2025-12-24 19:34:13 +05:00
.gitattributes [code] Stage 1 Complete: Surface Classification System 2025-08-18 00:31:09 +05:00
.gitignore [code] Update docs 2025-09-02 22:33:56 +05:00
.prettierignore [code] Add ts instruments & refactor all code 2025-09-02 22:33:33 +05:00
.prettierrc.js [code] Add ts instruments & refactor all code 2025-09-02 22:33:33 +05:00
TengriPlatformer.uproject rewrite movement to c++ 2025-12-24 19:34:13 +05:00
package-lock.json [code] Add ts instruments & refactor all code 2025-09-02 22:33:33 +05:00
package.json rewrite movement to c++ 2025-12-24 19:34:13 +05:00
tsconfig.json rewrite movement to c++ 2025-12-24 19:34:13 +05:00