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