Handmade Hero»Forums»Code
6 posts
How does Casey's use of Data Oriented Design compare to that of Mike Acton at Insomniac Studio
Edited by Bouke285 on Reason: Initial post
I'm starting to transition away from an OOP mindset into a Data-Oriented Mindset. I've been following a lot of the old Insomniac studio materials on SIMD and Data-Oriented programming in general. Insomniac seems to be a proponent of including intrinsic explicit SIMD optimization wherever it can bring performance boosts and even structuring their data for that purpose.

Casey seems to use intrinsics for explicit SIMD in math calculations, but not so much in the general engine code.

I'm trying to come to terms with the differences between what Casey teaches/does in Handmade Hero with what I've seen at Insomniac, especially from Mike Acton. Is there some disconnect between how Casey structures his code (from a Data oriented perspective) and how someone like Mike Acton does?

I hope this makes sense. Thank you!
Mārtiņš Možeiko
2559 posts / 2 projects
How does Casey's use of Data Oriented Design compare to that of Mike Acton at Insomniac Studio
Edited by Mārtiņš Možeiko on
I believe there is nothing to optimize with SIMD in general HH engine code. It probably will come later - maybe for
pathfinding, or some AI rules.

First you need to write engine/game, only then optimize, otherwise there is nothing to optimize. See how lighting was made - a lot of hours spend implementing/debugging lighting solution as scalar. And now (day 431/432) it is being optimized with SIMD. Same was done with software rendering way back.
75 posts
None
How does Casey's use of Data Oriented Design compare to that of Mike Acton at Insomniac Studio
Edited by Mór on
Casey calls his method Compression Oriented Programming. He explains it in Working on The Witness, Part 11 up to Part 19.

https://mollyrocket.com/casey/