Skip to content

Create an ECS #5

@foodelevator

Description

@foodelevator

The plan is to create an ECS which will be used to store all entities and their components. Creating systems in the ECS will also be the main way for game scripts to interact with the game world.

1. Features that should be implemented before merging anything into main

  • Keep track of entities
  • Store components
  • Query for (multiple) components
  • Iterate over all entities matching a query
  • Resources

2. Features that should be added soon after

  • Some way of getting access to components in a type safe way from Rust.
  • Optionally get handle to Entity with query
  • Add a way to create and despawn entities while a query is active
  • Add a way to loop through entities twice, as in a nested for-loop. (mutably)

3. Features that would be nice to add later on

  • Add support for optionally querying for components.
  • Add introspection to allow the IDE to edit components.
  • Manage Child & Parent relationship
  • Manage Local & Global position
  • Add support for filtering queries, so that you can have two mutable queries at the same time for a component if the queries are known to not give access to the same entity.
  • Registering systems with required queries
  • Scheduling systems (including multi-threading)
  • Integration with scripting language
  • Add change detection
  • Events
  • Optimize Entities
  • Add different data structures for storing components
  • Optimize stuff

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions