Data Oriented Design and Entity Component System Explained
summary
Explains why memory locality beats extra abstractions, shows Quickbench microbenchmarks with realistic padding to turn a ~10–15% win into 2×+ as structures grow, and demonstrates a tiny ECS storage: two dense vectors plus an indirection table (a dense-sparse array) that uses swap-with-tail indexing and generation IDs for stable entity IDs. Benchmarks and code snippets justify when ECS-like component arrays help (iterating by component) and where they cost (frequent add/removes or many archetype combinations).
AI-written summary · about
chapters (14)
- 0:00Introduction
- 1:56ECS in game dev
- 6:09Hardware limits and cache misses
- 14:36Cache lines and memory access
- 22:36Data-oriented design benefits
- 25:26Traditional vs data-oriented layouts
- 32:55Optimizing memory with dense arrays
- 35:22Benchmarking with Quick Bench
- 39:12Formalizing DOD into ECS
- 44:06Efficient ECS data structures
- 51:07ECS frameworks and implementations
- 1:07:56ECS challenges and limits
- 1:14:35Decoupling data for performance
- 1:19:54Summary
related talks
01h 05mData Storage in Entity Component Systems
14mExploring the Theory and Practice of Concurrency in the Entity-Component-System Pattern
01h 05mImplementation of a component-based entity system in modern C++
41mBeyond OOP: A Journey From Cache Misses to MASS Hits
40mUsing Data-Oriented Design to Build Apps Better
43mIntroduction to Data-Oriented Design in Unity
59mWhy DOTS Is Unity's Silver Bullet
46mGame Architecture in the Service of Business Application Developers
