abstract.cc server - noko3/cc-core GitHub Wiki
CC Server
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
Abstract
server <-> client <-> [frontend]
CC Server is the component that performs all the in-game data processing, from text messages to physics, and transceives it to/from clients
Online game mode
Server-side mode
CC Server MUST:
- Store and/or process all the information:
- About remote clients (users);
- About server-side clients (NPCs and other modules that are able to interact with the game environment and players);
- About game resources (all the in-game content: textures, models etc.);
- About clients' interactions between themselves and with the game resources.
- Transmit and receive needed data to/from its clients.
Currently, CC Server SHOULD:
- Be parallelable (multiple machines, single data context)
- Have a small memory/CPU time footprint
Client-side mode
CC Server MUST:
- Store and/or process some of the information:
- About nearby clients (users and server-side clients);
- About game resources required in the current domain;
- About interactions of the client with other clients and game-resources, and events happening nearby.
- Transmit and receive needed data to/from game server and some of the nearby clients.
Single user mode
The same as client-side mode with the only difference of that there is only one user (only one client).
Implementations
- cc-server: implementation abstract, code, programmer's docs