[video output=day078 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Multiple Collision Volumes Per Entity" vod_platform=youtube id=o1DO5sjUhi0 annotator=Miblo annotator=dspecht]
[1:37][Blackboard: Position != Collision "Mesh"]
[9:13][handmade_sim_region.h: Introduce sim_entity_collision_volume]
[10:54][Blackboard: Two ways of storing this collision volume data]
[12:51][handmade_sim_region.h: Introduce sim_entity_collision_volume_group]
[15:09][Compile and be guided by the compile errors in replacing the Dim]
[15:43][handmade_sim_region.h: Add WalkableDim to sim_entity]
[17:38][handmade_entity.h: Use WalkableDim in GetStairGround]
[19:31][handmade_math.h: Introduce GetBarycentric for rectangle2]
[20:18][handmade_math.h: Introduce Clamp01 for v2]
[21:03][handmade_sim_region.h: Add sim_entity_collision_volume TotalVolume to sim_entity_collision_volume_group]
[23:11][handmade_sim_region.cpp: Pass sim_entity_collision_volume to EntityOverlapsRectangle]
[25:51][handmade_sim_region.h: Specify that the VolumeCount is always expected to be greater than 0 if the entity has any volume]
[27:21][handmade_sim_region.cpp: Iterate over the Volumes]
[28:04][Blackboard: Collision detection is an o(n^2) problem]
[30:02][handmade_sim_region.cpp: Continue writing this loop]
[33:58]["Don't ask me why I'm doing this renaming"][quote 38]
[35:31][Casey is out of tea][quote 39]
[35:41][Dream of gourmet tea][quote 40]
[37:13][handmade.h: Add sim_entity_collision_volume_groups to game_state]
[45:57][handmade.cpp: Use the WalkableDim to draw the Stairwell]
[46:56][handmade.cpp: Implement MakeSimpleGroundedCollision]
[51:10][handmade.cpp: Do InitializeWorld earlier]
[51:35][Run the game and find that we're not totally busteD]
[52:27][handmade.h: Flying things can now go over low walls]
[53:07][handmade.cpp: Initialise the WalkableDim in AddStair]
[54:38][handmade_math.h: Introduce ToRectangleXY]
[55:53][Run the game and see that our stairwell is back]
[56:18][handmade_sim_region.cpp: Reenable the stairwell collision]
[57:23][Run the game and try jumping over the stairwell]
[58:24][handmade.cpp: Implement MakeNullCollision]
[59:50][Run the game and note the weird effect of gravity while falling down the stairwell]
[1:01:04][handmade_sim_region.cpp: Set Drag.Z = 0.0f]
[1:01:49][Run the game and fall down the stairwell]
[1:02:08][Q&A][:speech]
[1:02:38][Run and jump around]
[1:03:36][@rsxole][Can we get a sneak preview of the fundamental types arena?]
[1:03:43][Blackboard: Fundamental Types Arena]
[1:05:03][@drive137][Besides the missed keys]
[1:06:08][@lou_lo][What did I just watch?]
[1:08:50][@morthim][Could you sketch what you did today visually? Was it just changing the collision paradigm?]
[1:08:55][@ttbjm][Would the ground collision be easier / have less issues if it was a volume instead of a plane?]
[1:09:47][Blackboard: Specifying the ground]
[1:12:48][@crayoz][Since you are handling Z, how complicated is it to have entity stacking, with the current code state?]
[1:13:26][@warptrosse][Are you using a memory manager?]
[1:13:31][@blah238][How are you laying out your levels currently and are you going to make a level editor?]
[1:14:20][@childphotography][Is knowing Big O notation important in the game programming industry?]
[1:15:08][@starchypancakes][You mentioned further ways of partitioning collisions past breaking it up into regions. What would some of those be?]
[1:15:56][End that for today][:speech]
[/video]
