# Overview

One of typed-ecstasy's main advantages is its clean API, which makes it easy to use the right way and hard to break it. Let us take a look at how to use it, step by step. Bear in mind this is just a guide, for a complete API reference, please refer to the API documentation.

First, make sure you understand what an Entity Component System is.

Here is a simplified diagram that will help you understand typed-ecstasy's architecture:

Architecture

The green parts are included in typed-ecstasy and you only need to create/configure instances. The other parts are partially included (except for the game) and need to be extended by you.

  • An Entity is no more than an id and a list of components.
  • A Component represents a bag of data with no logic whatsoever.
  • A Family is used to represent a set of entities with a specific collection of components.
  • The Engine is the core of the framework. It manages all entities and systems.
  • In a System you can implement your game logic that may operate on entities of a given family.
  • A Signal allows you emit and connect to various events.
  • An EntityFactory can be used to assemble entities using a data-driven approach.