3 ms·
It is basically operating on the "column-oriented database" idea, which when applied to a game becomes the "Entity-Component-System" paradigm. More performance
by kroltan 4y ago
It is basically operating on the "column-oriented database" idea, which when applied to a game becomes the "Entity-Component-System" paradigm.
More performance thanks to cache locality, makes it much easier to write multithreaded gameplay code (remember, games are basically a big ol' pile of "cross-cutting concerns" [1]), as well as facilitating simulation-y code by allowing you to address game objects by arbitrary sets of properties.
---
[1]: Games often break the traditional "layers" we like to build in software architecture to enhance maintainability. That means traditionally you often get blobs of references and mutations scattered everywhere through the code. In a shooter, the visuals for a bullet need to know not only their origin and direction, but possibly the pose of any players in their path, as well as stats about the weapon, or even network latency, for a crude example.