40 lines
2.8 KiB
Plaintext
40 lines
2.8 KiB
Plaintext
|
[video 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]
|
||
|
[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]
|
||
|
[/video]
|