Hi. Recently i've been reading alot about network architechture in multiplayer games.
Im curious about how Savage handles this. I have a theory how it's done, but im not sure.
What I think happends:
1. Server is authorative, meaning it calculates position and rotation of players
2. Each client gets a copy of the game state from the server, and in reality, is in practice only playing against server-managed enemies.
3. When considering latency, each client use prediction to emulate the game while not receiving updates from the server. This means high-pingers will have a harder time overall.
4. When recieving state updates from the server, the current client state is either discarded or kept, depending on if the prediction it applied is correct or not.
5. The server keeps a buffer for earlier states, and the update state it sends out allways have a timestamp.
1. How is conflicts managed regarding life/death ? If client A says I'm hitting Client B Now, and Client B is saying "This guy is not even close to hitting me", what determines who is right?
Ps. Great source of reading ( like really easely udnerstandable!) :https://www.cakesolutions.net/teamblogs/how-does-multiplayer-game-sync-their-state-part-1