The game will consist of 3 major sub-systems
The client connects to a specified server and establishes a session. The client's primary task is to communicate to the server various events triggered by the user. Additionally, the client receives regular delta updates regarding the current game state as well as a complete update at less frequent intervals. The rendering is handled by the Client using an interface provided by the UI sub-system.
The server creates a game session and maintains the various data structures involved. When a client connects, a session is created and regular updates are sent. Any events received from the client is handled after verification. The Server sub-system can be operated as a stand-alone dedicated server.
The UI sub-system manages the UI session and event handling.