The only real responsibility of the server, beyond connecting players, is tracking changes. Changes to the world are either in real-time or for storage. Storage changes are simple enough - as their logic is direct, and it is the real-time events that require careful handling.
Real-time changes to the world include the following:
- The awareness of players to their surroundings.
- The awareness of players to each other.
- The awareness of objects (e.g. NPCs) to their surroundings.
- The awareness of the world to each player (connection).
- The awareness of the world to functional events (that require a response).