Data-Oriented design explanation
Common architectures prioritize ease of development over efficiency. However, machines have a performance dependency on how memory is accessed and manipulated. In common systems, data is usually scattered, because ease of code has been a primary focus of the efficiency.
The approach of the Data-Oriented design is to get the most out of modern hardware - simply, hardware should dictite the designs.
Based on current hardware, such architecture takes into the consideration following practices:
- Use Cache Memory as it's orders of magnitude faster than main RAM
- Avoid Cache misses
- Use contiguous data that fits in Cache Memory.
- Pack data that is processed similarly. Instead of storing and processing one individual with all its components at once, systems like Mass is going to pack all the similar data for all the agents at the same time.