32 lines
1.3 KiB
Markdown
32 lines
1.3 KiB
Markdown
# Lyra ECS
|
|
An ECS for the Lyra game engine.
|
|
|
|
## Why does it exist?
|
|
I couldn't find anything that fulfilled my needs, specifically an ECS that can store arbitrary components without knowing about the types. This makes it easier to implement into a scripting engine that has the ability to create its own components.
|
|
|
|
## Features
|
|
- [ ] Archetypes
|
|
- [x] Spawning entities
|
|
- [x] Despawning entities
|
|
- [x] Delete entities from archetypes
|
|
- [x] Find some way to fill in the gaps in component columns after entities are deleted
|
|
* This was done by moving the last entity in the column to the gap that was just removed.
|
|
- [x] Grow archetype as it fills up
|
|
- [x] Borrow safety of components inside Archetypes
|
|
- [x] Return `Ref` and `RefMut` from borrow queries
|
|
- [ ] Querying components from archetypes
|
|
- [x] Views
|
|
- [ ] Mutable views
|
|
- [ ] Make it possible so that ONLY `ViewMut` can borrow mutably
|
|
- [x] Resources
|
|
- [x] Get resources in views somehow
|
|
- [ ] Relationships (maybe this can be done through queries, idk)
|
|
- [ ] Dynamic queries
|
|
* Needed for scripting engines that can create their own components that Rust does not know the types of.
|
|
- [ ] Systems
|
|
- [ ] Dispatchers/Executors
|
|
- [ ] Execution graph that follows dependencies
|
|
|
|
<br>
|
|
|
|
To be honest, the name may change at some point |