what are the best practices to keep data synchronized in a multiplayer game?
Is usually the server responsible to send up to date data based on the order at which it receives the events from the clients?
Think for instance of a shooter game where players have rechargable shields:
the simplest way that I can think of is that the server receives a "hit" event and then computes the up to date shield value of the hit player according to the time from the game start at which it _receives_ the event.
Then the server sends the new shield value of the hit player to all of the clients (including the shooter player) that simply accept the new value.
Has anyone ever thought of a strategy to move this computation away from the server?
Is it something it is worth enough to think of, anyway?