[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]