

Synchronous RTS Engines and a Tale of Desyncs - Rexxar
http://www.altdevblogaday.com/2011/07/09/synchronous-rts-engines-and-a-tale-of-desyncs/?

======
hcarvalhoalves
> With a fully synchronous lockstep architecture! In a synchronous engine
> every client executes the exact same code at the exact same frame rate. Let
> that sink in for a moment. In an 8 player game of SupCom every player has an
> identical copy of the game state and follows an identical code path. Instead
> of transferring over per unit state information (position, health, etc) over
> the network only player input needs to be sent across the networks2. If all
> players have an identical game state and process the same input then their
> output state should also be identical.

In other words, if your game is a function, instead of computing the result of
one iteration and transmitting the _state_ between players, you just transmit
the input and let each player calculate the following states in the same
number of steps. If the game function doesn't include random variables, you
end up with the same game between all players.

That's very useful not only for games, but pretty much any "divide and
conquer" algorithm.

