-
-
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
System sets do not share their configuration across schedules #9792
Comments
My first thought was that we should store the metadata about what a system set should do at the However, doing so would break the simpler single-schedule use cases, since then they no longer have a conception of system sets. We could do a lookup across all schedules, maybe? In terms of band-aids:
Rubber-ducking, I think the best solution may be to add "universal" system sets, which are stored at the |
What's a use case for a system set that spans multiple schedules? |
So, a common example in my games is "gameplay logic". These systems should not run if the game is paused, or if the assets are not yet loaded. System sets let us configure this behaviour in one convenient spot, but only if we're only using a single schedule. |
So would the solution be to add all sets at the |
Yep, that's my intended fix. There's one wrinkle though: we need to figure out what to do with system sets for a single schedule, which some Bevy users will be working with. I think the right design here is to have system sets defined at the schedule level, whose config then gets additively mirrored both up and down to |
What do you mean by system sets for a i.e. if we have the set added to a single schedule
the set is included in schedule |
Hmm. So, in theory On reflection, let's just lift this up to |
I see, do you have an example of The only thing i'm worried about is if users were intentionally having different configs for the same |
I'm also worried about ergonomics. It's pretty confusing that
I understand the problem (and ran into it myself a couple times), but the mental model can become a tad confusing |
With this change, we can / should make
I don't think I've seen this in the wild, and it's definitely not in Bevy's codebase. Don't worry about it for now IMO. |
I see, so to summarize:
That works for me! The implementation seems pretty complicated though, that's actual a big change |
Yep, exactly! |
Bevy version
0.11
What you did
MySystemSet
.configure_set(Update, MySystemSet)
.Update
schedule and another schedule to this set.What went wrong
The configuration is silently missing for systems in other schedules.
If a system set defines a set of behaviors (like running in a certain state), then I would expect that behavior to be true across schedules (where possible).
Additional information
The fact that this will happen is thankfully much clearer now that we require explicit schedules everywhere, but it's still a nuisance and a footgun.
The text was updated successfully, but these errors were encountered: