For the networking for Realm of Mankind we have decided to go for a throwback to how it used to be in the late 90s, early 2000s with the likes of Doom and Age of Empires II. The method is simultaneous deterministic lockstep simulation. The basic principle is that the game engine and AI should be deterministic, meaning that if give the same exact input it should produce the exact same results. This means that all the networking has to do is give the clients the same inputs and they should all produce the same results meaning that there is no need to sync anything else.
To do this we need a way to make sure that they all process the inputs at the same time, as some computers will be slower or on a slower network, this is where lockstep comes into play. Lockstep is a structure which all aspects of the simulation work with, it splits the game into turns which is where the game wait till it has received the new commands before it can continue. This means that all users receive the inputs at the same time in the game.
Another benefit of this system is the ability to recreate a replay system very quickly. If all the commands are saved in a database then all the game has to do in order to replay it is to run the game and renter the inputs for the database at the correct time. With the AI, also being deterministic it would simply play the game as if it was a real game rather than a replay and it should produce the exact same results!
The beauty of this system is that very little information has to be sent to each client meaning that it does not require an expensive server system, which as a small company we simply would not be able to afford, in order for users to get a smooth multiplayer experience for our users.