Skip to content
Daan van Yperen edited this page May 30, 2019 · 5 revisions

Basic concepts

A short introduction to the basic concepts in artemis-odb in a nutshell.

Entity Component System (ECS)

ECS is an architectural pattern that attempts to solve the issues with deep and wide hierarchies. It separates data from behavior and prefers composition over inheritance. It is considered to make code easier to extend and maintain. This has several other advantages.

Artemis-odb

Artemis is a high performance Entity System framework for games, written in Java, and is a framework to manage entities in a game world. It is inspired by Entity Systems are the future of MMORPG blog series by Adam Martin. We also borrowed ideas from Ted Brown who implemented a simple high-performance Entity System in Processing based on Adam Martin's blog.

World

World is an isolated container for all entities, systems and components.

Entity

Entities are unique identifiers, and solely the sum of its related components. Entities have no data or behavior by themselves.

Component

Components are minimal, pure data classes that are plugged into entities to support some behavior. Components give entities data. A component itself implements no behavior.

Aspect

Aspects define a component pattern, allowing match entities with certain entities.

System

Systems run continuously and iterate over entities that match a certain Aspect. Systems give entities behavior. System read and write the state of components, resulting in behavior.

Artemis-odb allows systems to be used as a natural extension point for your game logic with BaseSystem.

ComponentMapper

ComponentMappers provide high performance component access and mutation from within a System.

Clone this wiki locally