java-design-patterns icon indicating copy to clipboard operation
java-design-patterns copied to clipboard

Entity component system (ECS) pattern

Open iluwatar opened this issue 9 years ago • 10 comments

Description: The Entity Component System (ECS) design pattern is a robust architectural pattern used in game development and other performance-critical applications. This pattern provides a flexible and efficient way to manage entities and their behaviors by breaking them down into distinct components. The main elements of the ECS pattern include:

  1. Entity: A general-purpose object that serves as a container for components. Entities are usually identified by a unique ID and do not contain any logic.
  2. Component: A modular, reusable piece of data that describes a specific aspect of an entity, such as position, velocity, or health. Components are passive data holders.
  3. System: Logic that operates on entities with specific components. Systems query entities that possess the necessary components and execute game logic, updating component data as needed.

Implementing the ECS pattern involves defining entities, components, and systems, and establishing a way to manage and process these elements efficiently.

References:

Acceptance Criteria:

  1. Create an Entity class that uniquely identifies each entity.
  2. Develop a variety of Component classes that can be associated with entities, such as PositionComponent, VelocityComponent, and HealthComponent.
  3. Implement System classes that operate on entities with specific components, including methods for querying relevant entities and updating their components.
  4. Provide unit tests that validate the correct behavior of entities, components, and systems.
  5. Ensure the implementation adheres to the project's coding standards and contribution guidelines.

iluwatar avatar Aug 11 '16 06:08 iluwatar

I will take care of it, I can solve it @iluwatar

wisamtb1 avatar Mar 03 '17 13:03 wisamtb1

Go ahead @wisamtb1 :+1:

iluwatar avatar Mar 06 '17 18:03 iluwatar

@wisamtb1 are you still implementing this?

iluwatar avatar Dec 25 '17 10:12 iluwatar

@wisamtb1 Are you still implementing this?

Leowbattle avatar Feb 12 '18 16:02 Leowbattle

There's no reply so I assume it is free for taking again. @Leowbattle would you like to implement it?

iluwatar avatar Feb 12 '18 19:02 iluwatar

Can i work on this?

nikhilbarar avatar Jun 17 '18 07:06 nikhilbarar

Ok @nikhilbarar

iluwatar avatar Jul 07 '18 05:07 iluwatar

The issue is free

iluwatar avatar Oct 05 '19 15:10 iluwatar