Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dbartolini/data-oriented-design

A curated list of data oriented design resources.
https://github.com/dbartolini/data-oriented-design

Last synced: about 2 months ago
JSON representation

A curated list of data oriented design resources.

Awesome Lists containing this project

README

        

# Data Oriented Design Resources

A curated list of awesome data oriented design resources.

Feel free to contribute by sending PR!

- [Data Oriented Design](#data-oriented-design-resources)
- [Presentations](#presentations)
- [Blog Posts](#blog-posts)
- [Videos](#videos)
- [Other](#other)
- [Code Examples](#code-examples)

## Presentations

* [A Step Towards Data Orientation (2010)](http://www.slideshare.net/DICEStudio/a-step-towards-data-orientation) - Johan Torp
* [Introduction To Data Oriented Design (2010)](http://www.slideshare.net/DICEStudio/introduction-to-data-oriented-design) - DICE
* [Memory Optimization (2003)](https://www.slideshare.net/backkom/memory-optimization-212630?qid=900a4da7-e1dd-447f-bdbe-389ad83f3a0c) - Christer Ericson
* [A Crash Course in Modern Hardware](https://www.infoq.com/presentations/click-crash-course-modern-hardware/) - Dr. Cliff Click
* [Practical Examples In Data Oriented Design (2013)](https://docs.google.com/presentation/d/17Bzle0w6jz-1ndabrvC5MXUIQ5jme0M8xBF71oz-0Js/present?slide=id.i0) - Niklas Frykholm
* [Three Big Lies (2008)](http://cellperformance.beyond3d.com/articles/2008/03/three-big-lies.html) - Mike Acton
* [Typical C++ Bullshit (2008)](https://macton.smugmug.com/Other/2008-07-15-by-Eye-Fi/n-xmKDH) - Mike Acton
* [Data-Oriented Design and C++ (2014)](https://www.slideshare.net/cellperformance/data-oriented-design-and-c) - Mike Acton
* [Entity Component Systems &
Data Oriented Design (2018)](http://aras-p.info/texts/files/2018Academy%20-%20ECS-DoD.pdf) - Aras Pranckevičius
* [Pitfalls of Object Oriented Programming - Revisited (2017)](https://docs.google.com/presentation/d/1ST3mZgxmxqlpCFkdDhtgw116MQdCr2Fax2yjd8Az6zM/edit#slide=id.p) - Tony Albrecht
* [Pitfalls of Object Oriented Programming (2009)](http://www.slideshare.net/EmanWebDev/pitfalls-of-object-oriented-programminggcap09) - Tony Albrecht

## Blog Posts

* [Adventures in data-oriented design – Part 1: Mesh data (2011)](https://molecularmusings.wordpress.com/2011/11/03/adventures-in-data-oriented-design-part-1-mesh-data-3/) - Stefan Reinalter
* [Adventures in data-oriented design – Part 2: Hierarchical data (2013)](https://molecularmusings.wordpress.com/2013/02/22/adventures-in-data-oriented-design-part-2-hierarchical-data/) - Stefan Reinalter
* [Adventures in data-oriented design – Part 3a: Ownership (2013)](https://molecularmusings.wordpress.com/2013/05/02/adventures-in-data-oriented-design-part-3a-ownership/) - Stefan Reinalter
* [Adventures in data-oriented design – Part 3b: Internal References (2013)](https://molecularmusings.wordpress.com/2013/05/17/adventures-in-data-oriented-design-part-3b-internal-references/) - Stefan Reinalter
* [Adventures in data-oriented design – Part 3c: External References (2013)](https://molecularmusings.wordpress.com/2013/07/24/adventures-in-data-oriented-design-part-3c-external-references/) - Stefan Reinalter
* [Adventures in data-oriented design – Part 4: Skinning it to 11 (2013)](https://molecularmusings.wordpress.com/2013/08/22/adventures-in-data-oriented-design-part-4-skinning-it-to-11/) - Stefan Reinalter
* [An introduction to Data Oriented Design with Rust](https://jamesmcm.github.io/blog/intro-dod/)
* [Allocation Adventures 1: The DataComponent (2015)](http://bitsquid.blogspot.it/2015/06/allocation-adventures-1-datacomponent.html) - Niklas Frykholm
* [Allocation Adventures 2: Arrays of Arrays (2015)](http://bitsquid.blogspot.it/2015/06/allocation-adventures-2-arrays-of-arrays.html) - Niklas Frykholm
* [An Example in Data-Oriented Design: Sound Parameters (2011)](http://bitsquid.blogspot.it/2011/11/example-in-data-oriented-design-sound.html) - Niklas Frykholm
* [Building a Data-Oriented Entity System (part 1) (2014)](http://bitsquid.blogspot.it/2014/08/building-data-oriented-entity-system.html) - Niklas Frykholm
* [Building a Data-Oriented Entity System (Part 2: Components) (2014)](http://bitsquid.blogspot.it/2014/09/building-data-oriented-entity-system.html) - Niklas Frykholm
* [Building a Data-Oriented Entity System (Part 3: The Transform Component) (2014)](http://bitsquid.blogspot.it/2014/10/building-data-oriented-entity-system.html) - Niklas Frykholm
* [Building a Data-Oriented Entity System (Part 4: Entity Resources) (2014)](http://bitsquid.blogspot.it/2014/10/building-data-oriented-entity-system_10.html) - Niklas Frykholm
* [Data Locality (2014)](http://gameprogrammingpatterns.com/data-locality.html) - http://gameprogrammingpatterns.com
* [Data Oriented Luddites (2010)](https://tomforsyth1000.github.io/blog.wiki.html#[[Data%20Oriented%20Luddites]]) - Tom Forsyth
* [Data-Oriented Design (Or Why You Might Be Shooting Yourself in The Foot With OOP) (2009)](http://gamesfromwithin.com/data-oriented-design) - Noel Llopis
* [Data-Oriented Design Now And In The Future (2011)](http://gamesfromwithin.com/data-oriented-design-now-and-in-the-future) - Noel Llopis
* [Data-Oriented Hash Table (2015)](http://www.reedbeta.com/blog/2015/01/12/data-oriented-hash-table/) - Nathan Reed
* [Is Data-Oriented Design a Paradigm? (2010)](http://solid-angle.blogspot.it/2010/12/is-data-oriented-design-paradigm.html) - Steve Anichini
* [Maximizing code performance by thinking data first - Part 1 (2016)](https://nicolaslopezblog.wordpress.com/2016/07/14/maximizing-code-performance-by-thinking-data-first-part-1/) - Nicolas Lopez
* [Maximizing code performance by thinking data first - Part 2 (2016)](https://nicolaslopezblog.wordpress.com/2016/08/15/maximizing-code-performance-by-thinking-data-first-part-2/) - Nicolas Lopez
* [Musings on Data-Oriented Design (2010)](http://solid-angle.blogspot.it/2010/02/musings-on-data-oriented-design.html) - Steve Anichini
* [Niklas Frykholm github blog (2009-2016)](https://github.com/niklasfrykholm/blog)
* [OOP != classes, but may == DOD (2010)](https://roathe.wordpress.com/2010/03/22/oop-classes-but-may-dod/) - roathe.com
* [The Latency Elephant (2009)](http://seven-degrees-of-freedom.blogspot.it/2009/10/latency-elephant.html) - Tony Albrecht
* [Visual Scripting the Data-Oriented Way (2010)](http://bitsquid.blogspot.it/2010/09/visual-scripting-data-oriented-way.html) - Niklas Frykholm
* [What is Data-Oriented Game Engine Design? (2014)](http://gamedevelopment.tutsplus.com/articles/what-is-data-oriented-game-engine-design--cms-21052) - David Davidović
* [Comments on Data Oriented Design – Part I (2015)](https://gautiertalkstechnology.wordpress.com/2015/02/21/comments-on-data-oriented-design-part-i) - Michael Gautier
* [Comments on Data Oriented Design – Part II (2015)](https://gautiertalkstechnology.wordpress.com/2015/02/22/comments-on-data-oriented-design-part-ii) - Michael Gautier
* [Data oriented design is not about SoA and ECS (2020)](https://www.polymonster.co.uk/blog/dod-ecs) - Alex Dixon

## Videos

* [CPU Caches and Why You care (2014)](https://vimeo.com/97337258) - Scott Meyers
* [Data-Oriented Demo: SOA, composition (2015)](https://www.youtube.com/watch?v=ZHqFrNyLlpA) - Jonathan Blow
* [Data-Oriented Design and C++ (cppcon 2014)](https://www.youtube.com/watch?v=rX0ItVEVjHc) - Mike Acton
* [Data-Oriented Design (2013)](https://www.youtube.com/watch?v=16ZF9XqkfRY) - Sean Middleditch
* [Democratizing Data-Oriented Design: A Data-Oriented Approach to Using Component Systems (2018)](https://www.youtube.com/watch?v=p65Yt20pw0g) - Mike Acton
* [Democratizing Data-Oriented Design: From C# to Machine Code (2018)](https://www.youtube.com/watch?v=NF6kcNS6U80) - Andreas Fredriksson
* [Efficiency with Algorithms, Performance with Data Structures (2014, cppcon)](https://www.youtube.com/watch?v=fHNmRkzxHWs&list=WL&index=1) - Chandler Carruth
* [Memory Optimization (2003)](https://www.youtube.com/watch?v=t15T_BkOtm0) - Christer Ericson
* [Native Code Performance and Memory: The Elephant in the CPU (2013)](https://channel9.msdn.com/Events/Build/2013/4-329) - Eric Brumer
* [Object-Oriented Programming is Bad (2016)](https://www.youtube.com/watch?v=QM1iUe6IofM) - Brian Will
* [Performance Optimization, SIMD and Cache (2015)](https://www.youtube.com/watch?v=Nsf2_Au6KxU) - Sergiy Migdalskiy
* [OOP Is Dead, Long Live Data-oriented Design (cppcon 2018)](https://www.youtube.com/watch?v=yy8jQgmhbAU) - Stoyan Nikolov
* [Using Rust For Game Development (RustConf 2018)](https://www.youtube.com/watch?v=aKLntZcp27M) - Catherine West
* [Overwatch Gameplay Architecture and Netcode (GDC 2017)](https://www.youtube.com/watch?v=W3aieHjyNvw) - Timothy Ford
* [Rust Auckland - Azriel: ECS: A Programming Paradigm (2018)](https://www.youtube.com/watch?v=SofC6c9xQv4&) - Azriel Hoh
* [Unity at GDC - ECS for Small Things (2018)](https://www.youtube.com/watch?v=EWVU6cFdmr0) - Vlad Vukicevic
* [Building a Data-Oriented Future - Mike Acton (2019)](https://www.youtube.com/watch?v=u8B3j8rqYMw) - Mike Acton
* [Intrinsic Functions - Vector Processing Extensions](https://youtu.be/x9Scb5Mku1g) - Javidx9
* [GDC 2015: How to Write Code the Compiler Can Actually Optimize](https://gdcvault.com/play/1021866/Code-Clinic-2015-How-to) - Mike Acton
* [A Practical Guide To Applying Data-Oriented Design](https://vimeo.com/649009599) - Andrew Kelley
* [A Practical Guide To Applying Data-Oriented Design - Q&A](https://vimeo.com/649016743) - Andrew Kelley
* [Embedded Systems: Marketable Skills & Intro To Data-Oriented Design Western Michigan University IEEE](https://www.youtube.com/watch?v=YlhA2Y-qpUA) - James Novorita
* [Pitfalls of Object Oriented Programming, Revisited (TGC 2017)](https://www.youtube.com/watch?v=VAT9E-M-PoE) - Tony Albrecht

## Other

* [Data alignment: Straighten up and fly right (2005)](http://www.ibm.com/developerworks/library/pa-dalign/) - Jonathan Rentzsch
* [Data Locality (2014)](http://gameprogrammingpatterns.com/data-locality.html) - Robert Nystrom
* [Data Oriented Design (2011-2014)](https://plus.google.com/u/0/+Dataorienteddesign/posts) - plus.google.com
* [Mike Acton's review of OgreNode.cpp, revealing some common OOP game engine development pitfalls (2013)](http://www.bounceapp.com/116414)
* [On why DoD isn't a modelling approach at all (2016)](https://sites.google.com/site/macton/home/onwhydodisntamodellingapproachatall) - Christer Ericson
* [What Every Programmer Should Know About Memory (2007)](http://www.akkadia.org/drepper/cpumemory.pdf) - Ulrich Drepper
* [What Is Data Oriented Design (2009)](http://stackoverflow.com/questions/1641580/what-is-data-oriented-design) - stackoverflow.com
* [Data Oriented Design Book (2018)](http://www.dataorienteddesign.com/dodbook/dodmain.html) - Richard Fabian
* [Cache-Line Aware Data Structures (2018)](https://accu.org/index.php/journals/2535) - accu.org
* [Investigating Data-Oriented Design - Master Thesis (2019)](https://github.com/Per-Morten/master_project) - Per-Morten Straume
* [The Data-Oriented Design Process for Game Development](https://doi.ieeecomputersociety.org/10.1109/MC.2022.3155108) - Jessica D. Bayliss

## Code Examples

* [bgfx](https://github.com/bkaradzic/bgfx)
* [crown](https://github.com/crownengine/crown)
* [dear imgui](https://github.com/ocornut/imgui)