Data Oriented Design Resources
A curated list of awesome data oriented design resources.
Feel free to contribute by sending PR!
Presentations
- A Step Towards Data Orientation (2010) - Johan Torp
- Introduction To Data Oriented Design (2010) - DICE
- Memory Optimization (2003) - Christer Ericson
- A Crash Course in Modern Hardware - Dr. Cliff Click
- Practical Examples In Data Oriented Design (2013) - Niklas Frykholm
- Three Big Lies (2008) - Mike Acton
- Typical C++ Bullshit (2008) - Mike Acton
- Data-Oriented Design and C++ (2014) - Mike Acton
- Entity Component Systems & Data Oriented Design (2018) - Aras Pranckeviฤius
- Pitfalls of Object Oriented Programming - Revisited (2017) - Tony Albrecht
- Pitfalls of Object Oriented Programming (2009) - Tony Albrecht
Blog Posts
- Adventures in data-oriented design โ Part 1: Mesh data (2011) - Stefan Reinalter
- Adventures in data-oriented design โ Part 2: Hierarchical data (2013) - Stefan Reinalter
- Adventures in data-oriented design โ Part 3a: Ownership (2013) - Stefan Reinalter
- Adventures in data-oriented design โ Part 3b: Internal References (2013) - Stefan Reinalter
- Adventures in data-oriented design โ Part 3c: External References (2013) - Stefan Reinalter
- Adventures in data-oriented design โ Part 4: Skinning it to 11 (2013) - Stefan Reinalter
- An introduction to Data Oriented Design with Rust
- Allocation Adventures 1: The DataComponent (2015) - Niklas Frykholm
- Allocation Adventures 2: Arrays of Arrays (2015) - Niklas Frykholm
- An Example in Data-Oriented Design: Sound Parameters (2011) - Niklas Frykholm
- Building a Data-Oriented Entity System (part 1) (2014) - Niklas Frykholm
- Building a Data-Oriented Entity System (Part 2: Components) (2014) - Niklas Frykholm
- Building a Data-Oriented Entity System (Part 3: The Transform Component) (2014) - Niklas Frykholm
- Building a Data-Oriented Entity System (Part 4: Entity Resources) (2014) - Niklas Frykholm
- Data Locality (2014) - http://gameprogrammingpatterns.com
- Data Oriented Luddites (2010) - Tom Forsyth
- Data-Oriented Design (Or Why You Might Be Shooting Yourself in The Foot With OOP) (2009) - Noel Llopis
- Data-Oriented Design Now And In The Future (2011) - Noel Llopis
- Data-Oriented Hash Table (2015) - Nathan Reed
- Is Data-Oriented Design a Paradigm? (2010) - Steve Anichini
- Maximizing code performance by thinking data first - Part 1 (2016) - Nicolas Lopez
- Maximizing code performance by thinking data first - Part 2 (2016) - Nicolas Lopez
- Musings on Data-Oriented Design (2010) - Steve Anichini
- Niklas Frykholm github blog (2009-2016)
- OOP != classes, but may == DOD (2010) - roathe.com
- The Latency Elephant (2009) - Tony Albrecht
- Visual Scripting the Data-Oriented Way (2010) - Niklas Frykholm
- What is Data-Oriented Game Engine Design? (2014) - David Davidoviฤ
- Comments on Data Oriented Design โ Part I (2015) - Michael Gautier
- Comments on Data Oriented Design โ Part II (2015) - Michael Gautier
- Data oriented design is not about SoA and ECS (2020) - Alex Dixon
Videos
- CPU Caches and Why You care (2014) - Scott Meyers
- Data-Oriented Demo: SOA, composition (2015) - Jonathan Blow
- Data-Oriented Design and C++ (cppcon 2014) - Mike Acton
- Data-Oriented Design (2013) - Sean Middleditch
- Democratizing Data-Oriented Design: A Data-Oriented Approach to Using Component Systems (2018) - Mike Acton
- Democratizing Data-Oriented Design: From C# to Machine Code (2018) - Andreas Fredriksson
- Efficiency with Algorithms, Performance with Data Structures (2014, cppcon) - Chandler Carruth
- Memory Optimization (2003) - Christer Ericson
- Native Code Performance and Memory: The Elephant in the CPU (2013) - Eric Brumer
- Object-Oriented Programming is Bad (2016) - Brian Will
- Performance Optimization, SIMD and Cache (2015) - Sergiy Migdalskiy
- OOP Is Dead, Long Live Data-oriented Design (cppcon 2018) - Stoyan Nikolov
- Using Rust For Game Development (RustConf 2018) - Catherine West
- Overwatch Gameplay Architecture and Netcode (GDC 2017) - Timothy Ford
- Rust Auckland - Azriel: ECS: A Programming Paradigm (2018) - Azriel Hoh
- Unity at GDC - ECS for Small Things (2018) - Vlad Vukicevic
- Building a Data-Oriented Future - Mike Acton (2019) - Mike Acton
- Intrinsic Functions - Vector Processing Extensions - Javidx9
- GDC 2015: How to Write Code the Compiler Can Actually Optimize - Mike Acton
- A Practical Guide To Applying Data-Oriented Design - Andrew Kelley
- A Practical Guide To Applying Data-Oriented Design - Q&A - Andrew Kelley
- Embedded Systems: Marketable Skills & Intro To Data-Oriented Design Western Michigan University IEEE - James Novorita
Other
- Data alignment: Straighten up and fly right (2005) - Jonathan Rentzsch
- Data Locality (2014) - Robert Nystrom
- Data Oriented Design (2011-2014) - plus.google.com
- Mike Acton's review of OgreNode.cpp, revealing some common OOP game engine development pitfalls (2013)
- On why DoD isn't a modelling approach at all (2016) - Christer Ericson
- What Every Programmer Should Know About Memory (2007) - Ulrich Drepper
- What Is Data Oriented Design (2009) - stackoverflow.com
- Data Oriented Design Book (2018) - Richard Fabian
- Cache-Line Aware Data Structures (2018) - accu.org
- Investigating Data-Oriented Design - Master Thesis (2019) - Per-Morten Straume
- The Data-Oriented Design Process for Game Development - Jessica D. Bayliss