skittlebrau's comments

skittlebrau | 14 years ago | on: Synchronous RTS Engines and a Tale of Desyncs

The Age of Empires/Age of Mythology series (and Halo Wars) work in an analogous fashion. By the time we were working on AoM, we had a more sophisticated hashing system that allowed the actual program flow to be hashed to some extent (via lots of manual insertion of sync statements in relevant spots). This allowed you to have some insight about how a given client got into a certain state compared to the others. If you just hash the final state, it can be quite mysterious how it ended up wrong. For example there might be hundreds of actions that can change the hitpoints of a unit. If you see hitpoints go out of sync, it helps narrow the search space for the bug a lot to know something like "it was catapult 123's AOE curve calculation for archer 456" that diverged.
page 2