python-tcod-ecs
python-tcod-ecs copied to clipboard
A Roadmap to Entity Relationships
I've been using Sander Mertens articles to implement relationships. I've implemented these in the basic sense but they also have an article that describes a roadmap for a more complete implementation.
- [x] Components as entities - Python objects natively support what this is trying to do
- [ ] #6
- [ ] Support relationship pairs in archetype storage
- [x] Relationship components - Already added
- [ ] Wildcard queries - Half of this is implemented
- [x] The component index
- [ ] Cleanup
- [ ] Cleanup traits
- [ ] Multi-source queries
- [x] Relationship traversal
- [x] Query cache revalidation
- [x] Breadth first traversal
- [ ] Uncached queries
- [ ] Multi component observers
- [ ] Event propagation
- [ ] Empty table optimization
- [ ] Garbage collection
- [ ] Rule engine
- [x] Exclusive relationships - Already added as an alternative syntax for relationship access
- [x] #12
- [x] Query DSL - Probably not needed for a Python library
I don't know if I'll ever complete this. Some of these might be too slow when implemented in pure-Python and if I were to make a C extension then I may as well just port Flecs itself to Python.
It's clear that these features will be incredibly useful once added. At the very least I should keep all of these in mind as I work on this module.