Setups are the most abstract chunks of functionality,
e.g. a server, a client, an editor or a local test scene.

Usually, each setup has a single dedicated button in the game’s main menu.
Users may choose which setup to launch on startup via a relevant config.json setting.

They are allocated and used directly by main.cpp.

Edit me

Interface

Each setup is required to expose several public member functions that the main.cpp uses to run a viable program session. Examples:

  • const cosmos& get_viewed_cosmos() const - return a reference to the cosmos to be viewed in this frame.
  • entity_id get_viewed_character_id() const - return an id of the entity that is used as the viewer in this frame.
  • auto get_audiovisual_speed() const - get a floating-point scalar that determines the speed with which to advance all audiovisual systems.