Basic concepts

In this chapter we’ll take a high-level perspective on some of the basic concepts behind the simulations.

It's recommended to go through this chapter to get an understanding of the basic ideas around which the system is organized.

If you're not so much interested in learning all that now, and want to get to creating mods and scenarios right away instead, check out the light-weight guided intro to modding under the guides and tutorials section.

At a glance

  • simulation models and data are created by users, therefore
  • the engine itself doesn't contain simulation models or data ("moving parts" like entities and components are generic, almost nothing is hardcoded)
  • data-driven architecture, everything is based on addressed variables (including "event-like" behavior)
  • processing scheme based on single clock, multiple clock events
  • logic based on state machines, each state containing a set of executable commands ("micro programs")
  • built-in separation of the entity objects and their data from each other, reflected in the way inter-entity data operations are written compared to intra-entity