-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Closed
Labels
A-ECSEntities, components, systems, and eventsEntities, components, systems, and eventsC-FeatureA new feature, making something new possibleA new feature, making something new possibleC-Tracking-IssueAn issue that collects information about a broad development initiativeAn issue that collects information about a broad development initiativeD-ComplexQuite challenging from either a design or technical perspective. Ask for help!Quite challenging from either a design or technical perspective. Ask for help!S-Nominated-To-CloseA triage team member thinks this PR or issue should be closed out.A triage team member thinks this PR or issue should be closed out.X-ControversialThere is active debate or serious implications around merging this PRThere is active debate or serious implications around merging this PR
Description
What problem does this solve or what need does it fill?
Lots of planned and wishlist features require (or would benefit from) mutably sharing components between threads. These notably include assets as entities (#11266), multi-world bevy, readonly queries and other readonly system parameters, pre-registering components, and scripting.
Roadmap
- Prototype. See Synchronized component registration #17569.
- Decouple registration from storage. See Isolate component registration #17671.
- Fix required components merging. See Use register_dynamic for merging #18028.
- Implement generalized atomic staging. See Generalized and atomic staging utils #17701.
- Implement atomic staging for components. See Staged Components #17871.
- Use staged components in
World
. - Change signatures of internal use of
Components
to use staged components. - Allow readonly queries and system parameters to be initialized with only
&World
. - Allow creating and running read-only systems with only
&World
. - Remove
try_query
API (no longer needed). - Expose components to users via a system parameter. Maybe.
- After final interfaces are decided, do a final pass for code quality.
- Related: Make
ComponentInfo
fully immutable in an arc or something. This mainly benefits code quality.
Metadata
Metadata
Assignees
Labels
A-ECSEntities, components, systems, and eventsEntities, components, systems, and eventsC-FeatureA new feature, making something new possibleA new feature, making something new possibleC-Tracking-IssueAn issue that collects information about a broad development initiativeAn issue that collects information about a broad development initiativeD-ComplexQuite challenging from either a design or technical perspective. Ask for help!Quite challenging from either a design or technical perspective. Ask for help!S-Nominated-To-CloseA triage team member thinks this PR or issue should be closed out.A triage team member thinks this PR or issue should be closed out.X-ControversialThere is active debate or serious implications around merging this PRThere is active debate or serious implications around merging this PR