SeanOMik
3a80c069c9
Moving that out of the MeshesPass makes the rendering meshes accessible to other passes/nodes. The shadow pass will need access to them which is why this was done now |
||
---|---|---|
.. | ||
lyra-ecs-derive | ||
src | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
LICENSE | ||
README.md | ||
shell.nix |
README.md
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
- Spawning entities
- Despawning entities
- Delete entities from archetypes
- 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.
- Grow archetype as it fills up
- Borrow safety of components inside Archetypes
- Return
Ref
andRefMut
from borrow queries
- Return
- Querying components from archetypes
- Views
- Mutable views
- Resources
- 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
- Dispatchers/Executors
- Track when components on entities are changed