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.

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.

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. Read more about ECS here.

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.

Systems in artemis-odb are a natural extension point for your game logic, entity related or otherwise.

ComponentMapper

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

Clone this wiki locally