Deterministic prediction-rollback netcode library for fast-paced games.
UNSTABLE, DO NOT USE IN PRODUCTION. Stable version will come soon.
Repository was reseted 28.01.2024. Previous version performs really well on memory consumption, but was awkward to work with and has many issues with CPU performance, and its structure is basically impossible to serialize.
- Responsive controls with no delay
- Unlimited session length with late-joins
- Clean and simple architecture
- Cross-platform determinism
This is a library, not a framework. Thus, the user controls everything that happens.
Implemented features:
- Prediction-rollback with zero GC allocations
- Live command timeline - make changes in the past and see immediate effect upon the future
- Distributed simulation - killer feature, allowing for many great things
- Algorithmic command prediction
- Input replication
- Input decay (fading out)
- Snapshots memory recycling on demand
- Replays with command history
TODO:
- Commands serialization
- State serialization for late-joins
- Actual networking
Here is some simple shooter with prediction-rollback features.
Input prediction sample. When there is no input from the player, the movement is fading out, and the shooting repeates in the last direction.
movie_017.mp4
Live simulation replay sample.