-
-
Notifications
You must be signed in to change notification settings - Fork 3.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ignore system order ambiguities from specific components and resources. #9884
Comments
rj00a
added
C-Feature
A new feature, making something new possible
S-Needs-Triage
This issue needs to be labelled
labels
Sep 21, 2023
alice-i-cecile
added
A-ECS
Entities, components, systems, and events
and removed
S-Needs-Triage
This issue needs to be labelled
labels
Sep 21, 2023
flecs doesn't have execution order ambiguities because its systems don't run in parallel :) |
I can put together a pr for this. I'm currently knee deep in this code and it shouldn't be too hard because of that. |
rj00a
changed the title
Ignore system order ambiguities between specific components and resources.
Ignore system order ambiguities from specific components and resources.
Sep 21, 2023
github-merge-queue bot
pushed a commit
that referenced
this issue
Oct 4, 2023
# Objective - Fixes #9884 - Add API for ignoring ambiguities on certain resource or components. ## Solution - Add a `IgnoreSchedulingAmbiguitiy` resource to the world which holds the `ComponentIds` to be ignored - Filter out ambiguities with those component id's. ## Changelog - add `allow_ambiguous_component` and `allow_ambiguous_resource` apis for ignoring ambiguities --------- Co-authored-by: Ryan Johnson <[email protected]>
regnarock
pushed a commit
to regnarock/bevy
that referenced
this issue
Oct 13, 2023
# Objective - Fixes bevyengine#9884 - Add API for ignoring ambiguities on certain resource or components. ## Solution - Add a `IgnoreSchedulingAmbiguitiy` resource to the world which holds the `ComponentIds` to be ignored - Filter out ambiguities with those component id's. ## Changelog - add `allow_ambiguous_component` and `allow_ambiguous_resource` apis for ignoring ambiguities --------- Co-authored-by: Ryan Johnson <[email protected]>
ameknite
pushed a commit
to ameknite/bevy
that referenced
this issue
Nov 6, 2023
# Objective - Fixes bevyengine#9884 - Add API for ignoring ambiguities on certain resource or components. ## Solution - Add a `IgnoreSchedulingAmbiguitiy` resource to the world which holds the `ComponentIds` to be ignored - Filter out ambiguities with those component id's. ## Changelog - add `allow_ambiguous_component` and `allow_ambiguous_resource` apis for ignoring ambiguities --------- Co-authored-by: Ryan Johnson <[email protected]>
rdrpenguin04
pushed a commit
to rdrpenguin04/bevy
that referenced
this issue
Jan 9, 2024
# Objective - Fixes bevyengine#9884 - Add API for ignoring ambiguities on certain resource or components. ## Solution - Add a `IgnoreSchedulingAmbiguitiy` resource to the world which holds the `ComponentIds` to be ignored - Filter out ambiguities with those component id's. ## Changelog - add `allow_ambiguous_component` and `allow_ambiguous_resource` apis for ignoring ambiguities --------- Co-authored-by: Ryan Johnson <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
What problem does this solve or what need does it fill?
Currently, it is possible to ignore system order ambiguities for whole sets of systems by using the
ambiguous_with
API. However, it would be useful to ignore ambiguities resulting from specific components or resources to handle the situation where ambiguous uses of those types should not be considered a bug.Motivation
In my app, many systems need write-only access to a specific component in order to send gameplay packets. The systems are ordered in such a way to ensure game logic correctness, but they're not ordered strictly enough to resolve the ambiguities. Resolving the ambiguities "properly" would pollute the schedule with ordering constraints between modules that do not actually depend on each other for correctness. This harms local reasoning.
What solution would you like?
Add
ambiguous_resource
andambiguous_component
methods toApp
andSchedule
at least.What alternative(s) have you considered?
Additional context
#8595 appears to solve a related but separate concern (that I would love to have a fix for!).
The text was updated successfully, but these errors were encountered: