[video output=day076 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Entity Heights and Collision Detection" vod_platform=youtube id=0mGWYcE6yG8 annotator=dspecht annotator=Miblo]
[2:34][Start everything up, make sure it's all still working and plan for the day]
[6:21][handmade_sim_region.cpp: Consider confining collision detection to the entities' Z neighbourhood]
[9:41][Blackboard: Extending Minkowsi collision into the third dimension]
[11:49][handmade_sim_region.cpp: Check Rel.Z against the MinCorner and MaxCorner]
[12:58][Run the game and find that we're passing through everything]
[13:17][Debugger: Step in and inspect the MinCorner and MaxCorner]
[14:59][handmade.cpp: Give the wall and other entities some height]
[16:58][Run the game and find that we now stop correctly]
[18:00][win32_handmade.cpp: Ensure that we're not passing WS_EX_LAYERED to CreateWindowExA]
[19:45][Blackboard: Conceptualising TileSideInMeters]
[24:09][Blackboard: Conceptualising WorldChunk]
[28:27][handmade_world.cpp: Pass in TileDepthInMeters to InitializeWorld]
[29:36][Blackboard: Competing Gathers]
[32:29][handmade_world.cpp: Update ChunkPositionFromTilePosition to reflect our new Tile dimensions]
[34:57][Postpone this until we have debug visualisations]
[35:43][Run the game and double check that it's working properly]
[36:18][handmade.cpp: Specify the height of things]
[37:45][handmade_math.h: See what RectanglesIntersect does]
[38:50][Blackboard: Inclusion tests]
[42:04][Blackboard: Checking overlaps]
[43:48][handmade_math.h: Change the tests in RectanglesIntersect]
[44:55][Run the game and find that we are unexpectedly still working properly]
[45:35][Investigate what's happening with the stairs]
[46:59][Blackboard: Understanding entity placement]
[48:55][handmade_sim_region.cpp: Take a look at where Dim is being used]
[49:59][handmade.cpp: Introduce AddGroundedEntity]
[53:00][Pass AddGroundedEntity to AddWall]
[54:08][Run the game and double check that it worked]
[54:37][handmade.cpp: Pass AddGroundedEntity to AddStair, AddPlayer, AddMonstar and AddFamiliar]
[58:06][Run the game and see where we're at]
[58:40][Debugger: Step into AddGroundedEntity]
[59:27][handmade.cpp: Consider fixing the drawing code]
[1:01:56][Q&A][:speech]
[1:03:02][Q: That kid you just created is around two foot tall]
[1:03:30][Q: Better data is at halls.md[ref
    site="Moose & Doc"
    page="Children's Growth Charts of height weight and body mass index for boys and girls"
    url="http://halls.md/growthchart-boys-girls-height-weight/"]]
[1:04:03][Q: I was wondering, why do you have two windows open and not just one?]
[1:04:53][Q: Over four feet seems right for a seven year old]
[1:05:42][handmade.cpp: Make the Hero 1.2 metres tall]
[1:06:32][Q: What apps are you using for the dev environment?]
[1:07:55][Q: Any recommendations for tracking down heap corruption bugs?]
[1:16:08][Q: If you're not allocating memory as the game goes, are you allocating a bunch at the start? How does that work?]
[1:17:13][Q: What are the Linux equivalents to these functions?]
[1:17:53][Q: How far along are we in developing the game?]
[1:19:48][Q: munmap is another Linux equivalent call]
[1:20:02][Q: Is this in C++?]
[1:21:11][Q: Does C++ compiler generate hidden code like constructors, copy constructors, etc., in the way that you structuring the game?]
[1:22:54][Q: Do you use the STL at all in your code?]
[1:24:18][Call it][:speech]
[/video]
