Design: Game State Management System
Focus on the core game state management logic and synchronization. Out of scope are graphics rendering, network transport protocols, and user interface design.
Functional Requirements
Non-Functional Requirements
Jump into concepts and practice - no test required
+---------------------+
| Game Clients |
| (Players' devices) |
+----------+----------+
|
| WebSocket / TCP
v
+---------------------+
| State Synchronizer |
| (Handles updates, |
| conflicts, pushes) |
+----------+----------+
|
+----------v----------+
| Game State Store |
| (In-memory database) |
+----------+----------+
|
+----------v----------+
| Save/Load Manager |
| (Persistence layer) |
+---------------------+game state management in a video game?changeState('PAUSED') twice?class GameStateManager:
def __init__(self):
self.state = 'MENU'
def changeState(self, new_state):
if self.state != new_state:
self.state = new_state
print(f'State changed to {self.state}')
else:
print(f'State already {self.state}')
manager = GameStateManager()
manager.changeState('PAUSED')
manager.changeState('PAUSED')class GameStateManager:
def __init__(self):
self.state = 'MENU'
def changeState(self, new_state):
if self.state == new_state:
self.state = new_state
print(f'State changed to {self.state}')
else:
print(f'State already {self.state}')