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:

  1. Store and/or process all the information:
  2. About remote clients (users);
  3. About server-side clients (NPCs and other modules that are able to interact with the game environment and players);
  4. About game resources (all the in-game content: textures, models etc.);
  5. About clients' interactions between themselves and with the game resources.
  6. Transmit and receive needed data to/from its clients.

Currently, CC Server SHOULD:

  1. Be parallelable (multiple machines, single data context)
  2. Have a small memory/CPU time footprint

Client-side mode

CC Server MUST:

  1. Store and/or process some of the information:
  2. About nearby clients (users and server-side clients);
  3. About game resources required in the current domain;
  4. About interactions of the client with other clients and game-resources, and events happening nearby.
  5. 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

  1. cc-server: implementation abstract, code, programmer's docs