As of 20/02/24 I am actively working on this, I suggest you try the "develop" branch, it has better comments, clearer and improved logic and better debug information. Once I feel its ready I will merge into the main branch and start working on documentation.
This multiplayer template includes the implementation of:
- Client Side Prediction and Reconciliation of the Player
- Entity Interpolation
- Clock Synchronization
- A few other multiplayer systems
Most of the code is inside the client/ and server/ folders. You can use it to speed up your developing process, it is based on the client/auth-server model.
You will need Godot 4.X and C# with at least Net6
This example demonstrates how to implement a client-server architecture in Godot using the Godot networking API, this can work as a base for a proper game or just to learn how this techniques can be implemented. I did not use RPC calls, I sent packed bytes manually over the network.
This diagram tries to explain how the project is structured (note that it may differ from actual code since I'm actively developing this):
This video shows the project in action, I'm simulating a network with 150ms (+ 80ms jitter) of latency (client to server and server to client) + 10% packet loss, and even in these horrible conditions the players have an acceptable experience.
project.mp4
Contact me on Discord (Raz#4584) I will be happy to help