"One of the primary strengths of ECS is its cache efficiency, which is crucial when managing the simulation of thousands to millions of entities in a massive, open-world multiplayer environment. Unlike traditional object-oriented approaches where an object contains both data and methods, ECS separates data and behavior. This separation allows for component data of similar types to be stored contiguously in memory. When the game runs and needs to process these components, the CPU can efficiently load and process large blocks of component data with minimal cache misses. This translates to faster computation and smoother gameplay, which are essential for maintaining performance in large-scale multiplayer environments."
Huh? Is there something I'm missing here? Does he think that object-oriented languages store a copy of behavior code for every instance of an object?
No, the key part is "component data of similar types"
What he means is that when using ECS, the data for all components of a particular type is contiguous. Say you want to update the physics, if all the physics data for all objects is in the same memory block you minimise cache misses when processing it
Without profiling, such statements carry little weight. In particular, for optimal performance unless you use data oriented design and structure using SoA vs AoS.
However for a 2d top-down game where you have extremely good culling and layering, it’s possible you might be IO and GPU bound than anything else.
Huh? Is there something I'm missing here? Does he think that object-oriented languages store a copy of behavior code for every instance of an object?