[video output=day073 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Temporarily Overlapping Entities" vod_platform=youtube id=e0yjNipizK0 annotator=schme annotator=Miblo]
[0:57]["Little tiny baby zipfiles"][quote 30]
[2:06][Recap and plan for the day]
[4:09][handmade.cpp: Load rock02.bmp into the set]
[5:01][handmade_sim_region.h: Add EntityType_Stairwell to entity_type]
[6:42][handmade.cpp: Re-enable DoorUp and DoorDown]
[7:44][Talk about adding an entity for the stairwell]
[8:47][Introduce AddStair]
[13:23][Run the game and see our new stairwell]
[13:50][Consider how to implement the stairwell]
[15:23][Blackboard: Traversing stairs]
[18:22][Blackboard: Inside / Outside]
[21:51][handmade_sim_region.cpp: Introduce the concept of the player being within regions of space]
[26:25][Blackboard: Specifying the traversable area of the stairwell]
[27:34][handmade_sim_region.cpp: Continue writing the inclusion check]
[42:03][Blackboard: Checking to see if two rectangles intersect]
[46:42][handmade_sim_region.cpp: Write RectanglesIntersect]
[49:55][HandleCollision between the Hero and a Stairwell]
[51:33][Try passing through the stairwell]
[51:53][Debugger: Step into HandleCollision]
[53:46][handmade.cpp: Make AddCollisionRule return a boolean which states whether or not the entity was already added]
[55:46][handmade_sim_region.cpp: Record the fact that you've added a collision rule if it's new]
[57:27][handmade.cpp: Intrdouce RemoveCollisionRule]
[59:07][handmade.h: Introduce pairwise_collision_rule_flag]
[1:00:29][TODO(casey): Transient collision rules! Clear based on flag]
[1:03:04][Q&A][:speech]
[1:04:43][Q: Why did you decide to code at, like, 4?]
[1:05:20][Q: Glad to see the A-A B-B collision detection code come up. Took me way too long to figure that one out]
[1:09:50][Q: You mentioned yesterday about choosing between two ways to solve the problem of large entities that overlap the sim region but are not in the selected chunks. It looked to me like you could use both solutions. If the entity is larger than the max entity size, still allow it and use the add it twice approach. Would this get you all the advantages of both with neither of the disadvantages?]
[1:11:36][Q: Would it make sense to just put a wall of 1/3rd the length on each side of the stairwell to handle the collision?]
[1:12:15][Q: Is the TODO list in the platform layer a more or less comprehensive list of changes you would do before shipping, or are there some additional things one should note?]
[1:12:42][Q: Yesterday you mentioned that when jumping up to a chunk above, the character would jump over the ground level Z=0 and then come down, however, since the jump code is making the Z position go to 0 from negative, wouldn't the character be pushed up to 0 as soon as it reached the low side of the upper chunk, and won't this cause problems when trying to move the character up the stairs?]
[1:13:57][Q: All of the these algorithms all specify convex shapes. Is there anything usable for concave shapes, or is it usually always the case that it's better to just split up a concave shape into multiple convex shapes?]
[1:15:11][Q: About the TODO list, you mentioned a while back that you want to code some sort of zooming out that would let you see entities outside the sim region]
[1:15:30][Q: An episode on metaprogramming, please?]
[1:16:18][We're out of time][:speech]
[/video]
