Concepts

Feather is quite a bit different from regular Minecraft server software written in Java. Feather is written using the Entity Component System architecture, which greatly improves the utilization of the CPU, most notable being improved cache hit ratio, compared to Object Oriented Programming.

The following definitions is used throughout the book to avoid confusion

  1. Entity is a unique identifier used to associate data in ECS.
  2. Component is a container of data associated with a single entity in ECS.
  3. World is a container of queryable data associated with entity's in ECS.
  4. Spawn is the action of inserting an entity and its components into a world in ECS.
  5. Despawn is the action of removing an entity and its components from a world in ECS.
  6. Dimension is a world in Minecraft.

Chapters

  1. Entity Component
  2. World
  3. Resource
  4. System
  5. Scheduler
  6. Events

Additional resources

  1. Theres a great talk on ECS from RustConf 2018.
  2. Theres a great comparison between Specs and Legion here by Cora Sherratt who worked on specs.