1 Understanding Data-Oriented Design
This chapter covers
- What is Data-Oriented Design?
- Improving performance by leveraging modern CPU architecture.
- Reducing code complexity by separating data and logic.
- Improving code extensibility by solving problems through a data-first approach.
- The Entity Component System (ECS) and how it relates to DOD.
As game developers we face many unique challenges. We need to combine complex logic, graphics, sounds, and handle input, all while running at 60fps. Our games need to be engaging and responsive while working under tight deadlines. We don’t want the gameplay to stutter right when the player is about to beat the final boss, or have the game pause every time the user clicks a button. Nor do we have the luxury of spending months working on a new feature or gameplay mechanic. The next deadline or release date is always right around the corner.