I am developing a game similar to other 4x games like Sots, MoO,...
I am storing all information about the game(like star/planet/ship/fleet positions, owners and a lot of other stuff) in a data structure in memory. I call this structure the datastore.
I have one client act as server.
All clients should have a copy of the datastore, because in case the server disconnects another client could overtake the server role.
On the end of every turn all changes the clients did should be stored in the server datastore.
If it is important I use C# and Unity Pro.
After all client changes are applied to the server should I just copy the complete datastore to each client or is the way to go to sync only the changes made?
I would appreciate to get answers that not only include personal opinion but more about drawbacks or advantages of the different approaches.