-
-
Notifications
You must be signed in to change notification settings - Fork 4k
Open
Labels
A-PhysicsCollisions, kinematics, forces and moreCollisions, kinematics, forces and moreA-RenderingDrawing game state to the screenDrawing game state to the screenA-TransformTranslations, rotations and scalesTranslations, rotations and scalesC-FeatureA new feature, making something new possibleA new feature, making something new possibleC-PerformanceA change motivated by improving speed, memory usage or compile timesA change motivated by improving speed, memory usage or compile times
Description
What problem does this solve or what need does it fill?
Both visibility and transform propagation require full hierarchy traversals to complete. This is required even if there are no changed components in the hierarchy.
This may be useful in very large worlds with deep hierarchies where the vast majority of the entities in the World are unchanging parts of the environment.
What solution would you like?
A user-facing way of marking static parts of the hierarchy. Perhaps a Static
marker component in which halts all propagation systems, forcing it and all it's descendants to be ignored during propagation.
These components can also be flags for rendering and physics for things you generally expect to not change over the lifetime of the app after loading.
What alternative(s) have you considered?
Continue with the status quo.
Additional context
Other engines seem to have a similar concept:
- Unity has static GameObjects which enables similar optimizations in rendering.
- Unreal has static meshes, though primarily used for rendering.
- Godot has static bodies which are only used for physics.
jabuwu, ManevilleF and bgagnon
Metadata
Metadata
Assignees
Labels
A-PhysicsCollisions, kinematics, forces and moreCollisions, kinematics, forces and moreA-RenderingDrawing game state to the screenDrawing game state to the screenA-TransformTranslations, rotations and scalesTranslations, rotations and scalesC-FeatureA new feature, making something new possibleA new feature, making something new possibleC-PerformanceA change motivated by improving speed, memory usage or compile timesA change motivated by improving speed, memory usage or compile times