Handmade Hero » Forums » Code » How does Casey's use of Data Oriented Design compare to that of Mike Acton at Insomniac Studio
Bouke285
5 posts
#14432 How does Casey's use of Data Oriented Design compare to that of Mike Acton at Insomniac Studio
9 months, 2 weeks ago Edited by Bouke285 on March 6, 2018, 1:16 a.m. 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!
mmozeiko
Mārtiņš Možeiko
1833 posts / 1 project
#14433 How does Casey's use of Data Oriented Design compare to that of Mike Acton at Insomniac Studio
9 months, 2 weeks ago Edited by Mārtiņš Možeiko on March 6, 2018, 7:06 a.m.

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.
Mór
78 posts

None

#14438 How does Casey's use of Data Oriented Design compare to that of Mike Acton at Insomniac Studio
9 months, 2 weeks ago Edited by Mór on March 7, 2018, 4:49 a.m.

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/

None