We have a performance problem with World.update() when there are hundreds of thousands of entities. We need to improve the performance for individual systems, and generally establish how we're going to call systems.
Types of Entities & Components
Entities/Components not yet added to World
Needed to support testing, and multi-threading (one day)
Components that are members of Entities in the world, but should not be updated by Systems
SpawnPointComponent on a NPC Entity that hasn't been spawned itself
API
# SpawnSystem needs SpawnPoints, but not those that are templates
SpawnSystem.update(registry[SpawnPointComponent])
ConnectionSystem.update(registry[ConnectionComponent])
Open questions
Will we support multi-threading?
How do we support SpawnPoints inside chars that have not been spawned?
Check for a valid location? No, rooms don't have a Location.
What does it mean for a Component to exist, but not be a member of an Entity, or that Entity not be added to the World?
Entity grouping options
Per-Component Arrays
Update Options
Static updates
World.update() explicitly calls each System update method. This makes it easier to manage the component/entty
We have a performance problem with
World.update()
when there are hundreds of thousands of entities. We need to improve the performance for individual systems, and generally establish how we're going to call systems.Types of Entities & Components
API
Open questions
Entity grouping options
Per-Component Arrays
Update Options
Static updates
World.update()
explicitly calls each System update method. This makes it easier to manage the component/enttyDynamic