python-tcod-ecs icon indicating copy to clipboard operation
python-tcod-ecs copied to clipboard

A Roadmap to Entity Relationships

Open HexDecimal opened this issue 2 years ago • 0 comments

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.

HexDecimal avatar Sep 13 '23 20:09 HexDecimal