[video output=day277 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="The Sparse Entity System" vod_platform=youtube id=wqpxe-s9xyw annotator=Miblo]
[0:14][Introduce Milton[ref
    site="Handmade Network"
    page="Milton"
    url="https://milton.handmade.network/"]]
[1:25]["I have no idea how to say Sergio properly, let alone sexily"][quote 481]
[6:22][Recap and set the stage for the day]
[10:27][Blackboard: Entity systems]
[14:47][Blackboard: Current compositional approach]
[17:00][Blackboard: Looking Glass's Act / React Model]
[21:28][Blackboard: Problems with the AOS approach]
[24:45][Blackboard: Sparse Entity System]
[27:06][Blackboard: Inheritance]
[36:44][Blackboard: When inheritance falls apart]
[40:25][Blackboard: "Inheritance is compression"]
[46:47][Blackboard: One epically huge entity struct]
[51:24][Blackboard: Sparse matrix solver]
[52:37][Blackboard: Summary of the plan]
[54:37][Q&A][:speech]
[55:36][@xdafal][Can you talk about the dynamic dispatch?]
[56:09][Blackboard: Dispatch]
[1:00:53][Blackboard: C++'s implementation of dynamic dispatch]
[1:07:30][Blackboard: Why our system won't use dynamic dispatch]
[1:09:52][@popcorn][Do you use the struct entry method in your current game?]
[1:10:22][@sssmcgrath][Have you seen my psuedo-hacked discriminated union inheritance system that I use in my game on stream? It's pretty cool]
[1:10:52][@insofaras][What made you choose this approach over an AoS style + storing indices of each separate component in the main entity struct?]
[1:11:27][@dudeinbasement1][I missed it. What about the matrix \[i,j\]? I was confused there]
[1:12:24][@parsnip_][How and where would you go about checking if a property existed on your 'mega-struct' whenever you want to do your operations? Would they all be null pointers if undefined?]
[1:13:15][@tterrace][What are you going to use to track which struct members have been touched / set back to null?]
[1:14:13][@jessem3y3r][What portions of this design could you foresee causing perf issues?]
[1:19:02][@connor_rentz][What are some alternatives to an entity system?]
[1:21:01][@Mr4thDimention][Are you already thinking of a backup plan for the entities and how you would transition to that system if you had to?]
[1:22:27][@videogamestoohard][Do you play Street Fighter? Who is your favorite character?]
[1:23:54][@soysaucethekid][Will the entity system include things such as particle effects?]
[1:24:33][@xdafal][Did you play Bomberman?]
[1:24:37][@sssmcgrath][You can't stand the Street Fighter pause but you liked the Mortal Kombat rotoscope?]
[1:25:27][@demetrispanos][Yeah that seems reasonable, it does seem unlikely that you'd get 300 entities needing 60FPS simulation except, as you say, bullet hell with bullets-as-entities rather than being their own optimized thing]
[1:27:37][Close down][:speech]
[/video]
