Skip to content

System-order-independent ECS change tracking #68

@cart

Description

@cart

The current change tracking system is very lightweight, both for event generation and consumption (which is why we can enable it by default), but it has the following problem:

schedule.run()
  System1: Change<T> query
  System2: mutates T
  world.clear_trackers()
schedule.run()
  System1: Change<T> query ... misses System2's changes

In most cases, this can be worked around via system registration order and stages, but I anticipate some cases that cannot work around this behavior, as well as general confusion from users like: "why isn't my system running ... im definitely mutating this component?"

I think it would be useful to (optionally) allow stateful "order independent" change tracking. I posted some ideas here: #54

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-ECSEntities, components, systems, and events

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions