The last few days i played ES:Classic thoroughly with two friends of mine. And we noticed that there are many and many problems with the game synchronization.



For example: one player thinks that he invade an enemy planet the couple of turns and is already next to success, then the game freezes on the end of a turn and after reloading the player realize that his fleet just sit on the planet's orbit and his ally invade it instead of him. Frustrating, the player declines to continue game, and MP fun is wasted.



What i notice, there are not so many situations that cause almost all desyncs. And all them are linked to concurrent actions that players try to do in a course of a turn:

1. Colonyze a planet before other player(s) arrive

2. Outrun an enemy before he installs blockade on a system

3. Start invasion before any allied force when defending fleed is wiped off



There is a simple cure for all the situations: just make them not concurrent. The first two can be linked to "end of turn" feature:



1. Colonyzation don't happen immediately. Instead the player command his fleet to colonyze planet. At end of turn, if there are no enemy fleets and no friendly fleets with the same "colonyze" command, the planet become colonized. Otherwise the player receive the message that describe why his colonization attempt is declined.



2. Blockade don't happen immediately but also is installed at end of turn (if the blockaded fleet still exist).



Also i suggest to change the way the blockade works: a blockading fleet don't just make impossible to leave the blockaded system but instead fights automatically with any unfriendly fleet that try to arrive or leave the system. The fight outcome means the blockade-breaking fleet movement result:

a) if the blockading fleet wins or the fight is a draw, the blockade-breaking fleet movement is cancelled. If the blockade-breaking fleet remains manage to flee from the battle, they flee in a random direction instead of desired one. Otherwise they stay on the blockaded system and lose all movement points. If the blockade-breaking fleet try to arrive to blockaded system, it remains "flee" automatically.

b) if the blockading fleet lose the battle, the blockade is cancelled and if there are no other blockading fleets the blockade-breaking fleet remains move on. If there are another blockading fleet, the new battle is started.



That is the way a blockade works IRL, in naval history that can be a good example for a space strategy game.



3. Invasion itself must be concurrent, not just start of it. If two or more players fleets invade the same system, they all do it and collect "invasion points" based on invasion power of their fleets. When the system before-ownership come to an end, the player with the most "invasion points" take ownership. That happens at end of turn of course.