Overview
The Client-Side Prediction (CSP) system is designed to provide a seamless and responsive multiplayer experience by predicting game states locally on the client. This system is built around a modular architecture that allows for flexible and extensible design, enabling systems that behave as if the game were single-player, while still synchronizing with the server automatically.
Key Components
- PredictionManager:
- Acts as the central "world" for client-side prediction.
- Manages all predicted entities and systems within the scene it resides.
- Handles the lifecycle of predicted states, including prediction, reconciliation, and view updates.
- PredictedIdentity:
- Unity components that define the behavior of predicted entities.
- Created by users to handle specific functionalities, such as movement, physics, or custom logic.
- PredictedHierarchy:
- Provides a prediction compatible version of Unity's Instantiate and Destroy methods.
Design Philosophy
- Decoupled from Traditional Networking:
- This system is completely disconnected from the usual
NetworkIdentitysetup. - RPCs (Remote Procedure Calls) are not supported or needed in this architecture, as prediction handles state synchronization naturally.
- Logic is executed locally on the client, mimicking a single-player experience, while still maintaining consistency with the server.
- This approach simplifies development, as developers can focus on writing game logic without worrying about networking intricacies.
- This system is completely disconnected from the usual
Benefits
- Responsive Gameplay: Predictions provide immediate feedback to the player, reducing the perceived latency.
- Modularity: Systems can be easily added or modified, allowing for flexible and scalable game design.
- Consistency: Reconciliation ensures that the clientโs state aligns with the serverโs authoritative state, maintaining a consistent game world.
Limitations
- Prediction Errors: Incorrect predictions may require corrections, which can occasionally result in visual "snapping" or adjustments.
- Complexity: While the system simplifies networking, it introduces new challenges in managing predicted states and reconciliation.