[video output=day080 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Handling Traversables in the Collision Loop" vod_platform=youtube id=QxxVwnE8V1c annotator=Miblo annotator=dspecht]
[4:29][Blackboard: Augmenting the collision loop to loop over two types of t value]
[5:10][handmade_sim_region.cpp: Introduce tMax]
[5:58][handmade_sim_region.cpp: Consider how best to modify this routine]
[11:03][handmade_sim_region.cpp: Loop over the Walls to get all of the data taken by TestWall]
[15:15][handmade_sim_region.cpp: Introduce test_wall]
[15:56][Run the game and make sure it's still working]
[16:14][handmade_sim_region.cpp: Embed TestWall directly in the collision loop]
[17:45][Run the game and test the collision]
[18:52][handmade_sim_region.cpp: Test tMax]
[22:03][handmade_sim_region.cpp: Massage the routine]
[24:27][handmade_sim_region.cpp: Implement the tMin vs. tMax logic]
[26:27][handmade_sim_region.cpp: Write the tests for Overlap and EntityFlag_Traversable]
[28:09][Encourage us not to be scared of solving complex problems]
[32:49][handmade_sim_region.cpp: Improve the overlap test]
[35:57][handmade_sim_region.cpp: Introduce EntitiesOverlap for this overlap test]
[38:42][handmade_sim_region.cpp: Make EntitiesOverlap take an Epsilon enlargement region]
[40:06][handmade_sim_region.cpp: Reenable the EntityFlag_Traversable test and use EntitiesOverlap]
[41:52][Run the game and find that we can't get past our tMax]
[42:27][handmade_sim_region.cpp: Move tMin, tMax and HitThis inside the loop]
[44:03][handmade_sim_region.cpp: Rethink the logic of the collision routine]
[46:25][Run the game and find that we're working a little more properly]
[46:44][handmade.cpp: Only create walls in the first room in order to test the new world definition]
[47:07][Run the game and test the collision detection]
[50:04][handmade_sim_region.cpp: Increase the size of the overlap Epsilon]
[51:55][Debugger: Step into the collision routine]
[54:03][handmade_sim_region.cpp: Initialise tMaxTest to our current tMax]
[54:34][Run the game and find that everything seems pretty good, but still a little janky]
[54:55][Set the stage for next week]
[55:33][Q&A][:speech]
[55:43][Consult the TODO list]
[58:14][@a_pulsing_mage][Can you explain the LengthOf(array) macro, and the sizeof pointers?]
[1:06:19][@ttbjm][Will the space entities be used for the collision optimization you were talking about in an earlier stream? o(n^2) stuff]
[1:07:18][@insofaras][sizeof(game_input::Controllers) works for me with g++]
[1:08:09][@kknewkles][I noticed that you tend to mostly skip over questions past the first question mark. Is it because you just parse that way or the rest tends to be not much interesting?]
[1:09:03][@garlandobloom][For things like the projectiles, are we going to extend their bounding boxes in the Z axis so they will always hit enemies that are below them? Or are we going to handle that in screen space somehow?]
[1:10:04][@dmitsuki][Do you dislike templates?]
[1:11:17][@samfosteriam][How will you handle something like an explosion that affects all things in an area? Then it's not 1 entity colliding with another]
[1:12:09][@flynnspixel][What do you think about the new Vulkan API?]
[1:13:15][Wrap things up][:speech]
[/video]
