4 ms·
Synchronous RTS Engines and a Tale of Desyncs
- hcarvalhoalves 14y ago> 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.