This is the repository for the group project assignment in the course "Project in Introduction to Computer Science" (DD1396), by the Inda21plusplus group.
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
[x] Keep track of entities
[x] Store components
[x] Query for (multiple) components
[x] Iterate over all entities matching a query
[x] Resources
2. Features that should be added soon after
[x] Some way of getting access to components in a type safe way from Rust.
[x] Optionally get handle to Entity with query
[x] Add a way to create and despawn entities while a query is active
[x] 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
[x] 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
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
2. Features that should be added soon after
Entity
with query3. Features that would be nice to add later on
Entities