[video output=day279 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing World Chunk Entity Storage" vod_platform=youtube id=yJjVBh7r9-s annotator=Miblo]
[0:52][Blackboard: Why make an entity system using a SOA (Struct of Arrays) rather than an AOS (Array of Structs)]
[4:53][Recap and set the stage for the day]
[9:50][Explain the problem with pulling the world_entity_blocks out of the ChunkHash]
[11:12][Blackboard: Transactional Memory]
[16:04][Blackboard: Making the entity system multithreaded]
[19:23][handmade_sim_region.cpp: Make BeginSim remove the Chunks and Blocks, and return them to the free list]
[22:35][handmade_sim_region.cpp: Make EndSim pack the entities into a new chunk]
[30:32][handmade_world.cpp: Delete ChangeEntityLocation and clean up compile errors]
[34:27][Anticipate 4coder's code intelligence]
[35:52][handmade_world_mode.cpp: Replace low_entity with entity]
[36:32][handmade_sim_region.h: Replace sim_entity with entity]
[41:02][handmade_world.cpp: Remove ChangeEntityLocationRaw and introduce PackEntityIntoWorld]
[48:45][handmade_world.cpp: Introduce PackEntityIntoChunk]
[50:49][handmade_world.h: Make FirstBlock be a pointer in world_chunk]
[53:22][handmade_world.cpp: Introduce HasRoomFor]
[57:03][handmade_world.cpp: Introduce AddBlockToFreeList and AddChunkToFreeList]
[59:45][handmade_world.cpp: Introduce RemoveWorldChunk]
[1:01:01][handmade_world.cpp: Split GetWorldChunk out to GetWorldChunkInternal in order to provide multiple entry points]
[1:07:43][Run the game and let it crash and burn]
[1:08:13][handmade_world_mode.h: Support creating multiple entities at the same time]
[1:11:49][Q&A][:speech]
[1:12:47][Blackboard: Using a Pointer to a Pointer to enable editing of chunks]
[1:16:17][@novynn][How are you finding Milton? I didn't catch the start of the stream sorry]
[1:17:38][@paulsix][How do you pronounce your name?]
[1:18:10][@elxenoanizd][Is the Sparse Entity System the same as "mixins" that you mentioned before? If not, are we ever going to use or talk about mixins? I'm really curious as to what they are]
[1:18:28][Blackboard: Mixin]
[1:19:45][@cubercaleb][Do friend classes count as mixins?]
[1:20:32][@paulsix][Couldn't you avoid having to compress the entities if you used some unions in the entity?]
[1:21:19][@elxenoanizd][How are you finding 4coder so far? Any features you find missing? Is it worth getting into coming from emacs?]
[1:22:35][@paulsix][What do you think of the other more data-oriented entity system implementations online (like anax, EntityX, etc.)?]
[1:23:55][Wrap it up][:speech]
[/video]
