Original Post
Hi, I'm working on a real-time wargame with thousands of unit on map gathered into squadrons drawn up in different formations. As you may understand the pathfinding and tracking algorithms are rather complex here. I need to put a multiplayer in this game. In general I have two different ways to do that (it was already discussed on GameDev but my question has its own specific - see further): 1) Game objects replication (periodical object data propagation) is a server-side simulation approach; 2) Lock-step commands synchronization (as it is proposed in article "1500 Archers on 28.8") is a client-side simulation approach. Usually for huge ammount of units it is reasonable to choose the second option - it saves bandwidth notably. But there can a problem I worry about. To use a lock-step command synchronization I need to make certain unit processing algorithms deterministic ones i.e. I should be sure that on every station the state of object in every moment is fully determined only by its initial state and player's command. In particular it concerns the pathfinding algorithms that are very complex in squadron-based RTS and wargames. So I worry that deterministic algorithms testing and debug will take extremely lot of time and resources in my case. It can even kill the project. I'm not the Microsoft and I have no resources enough for year of testing. As it is written in "1500 Archers on 28.8" article: "At first take it might seem that getting two pieces of identical code to run the same should be fairly easy and straightforward - not so. The Microsoft product manager - Tim Znamenacek told Mark early on “In every project, there is one stubborn bug that goes all the way to the wire - I think out-of-sync is going to be it” - he was right. The difficulty with finding out-of-sync errors is that very subtle differences would multiply over time." The only thing that will prove me an applicability of lock-step command synchronization in my wargame is for example that Mindscape made their Warhammer: Dark Omen multiplayer using this approach or Creative Assembly made their Rome Total War multiplayer using it. In other words I need some proof that a team with up to 6 programmers in it can use this approach to finish multiplayer wargame not more than for 1,5 years. Any information - facts and assuptions will be highly appreciated. Thanks in advance, Denis "Gwynn" Ischenko