Handmade Hero»Episode Guide
Temporarily Overlapping Entities
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
0:57"Little tiny baby zipfiles"α
0:57"Little tiny baby zipfiles"α
0:57"Little tiny baby zipfiles"α
2:06Recap and plan for the day
2:06Recap and plan for the day
2:06Recap and plan for the day
4:09handmade.cpp: Load rock02.bmp into the set
4:09handmade.cpp: Load rock02.bmp into the set
4:09handmade.cpp: Load rock02.bmp into the set
5:01handmade_sim_region.h: Add EntityType_Stairwell to entity_type
5:01handmade_sim_region.h: Add EntityType_Stairwell to entity_type
5:01handmade_sim_region.h: Add EntityType_Stairwell to entity_type
6:42handmade.cpp: Re-enable DoorUp and DoorDown
6:42handmade.cpp: Re-enable DoorUp and DoorDown
6:42handmade.cpp: Re-enable DoorUp and DoorDown
7:44Talk about adding an entity for the stairwell
7:44Talk about adding an entity for the stairwell
7:44Talk about adding an entity for the stairwell
8:47Introduce AddStair
8:47Introduce AddStair
8:47Introduce AddStair
13:23Run the game and see our new stairwell
13:23Run the game and see our new stairwell
13:23Run the game and see our new stairwell
13:50Consider how to implement the stairwell
13:50Consider how to implement the stairwell
13:50Consider how to implement the stairwell
15:23Blackboard: Traversing stairs
15:23Blackboard: Traversing stairs
15:23Blackboard: Traversing stairs
18:22Blackboard: Inside / Outside
18:22Blackboard: Inside / Outside
18:22Blackboard: Inside / Outside
21:51handmade_sim_region.cpp: Introduce the concept of the player being within regions of space
21:51handmade_sim_region.cpp: Introduce the concept of the player being within regions of space
21:51handmade_sim_region.cpp: Introduce the concept of the player being within regions of space
26:25Blackboard: Specifying the traversable area of the stairwell
26:25Blackboard: Specifying the traversable area of the stairwell
26:25Blackboard: Specifying the traversable area of the stairwell
27:34handmade_sim_region.cpp: Continue writing the inclusion check
27:34handmade_sim_region.cpp: Continue writing the inclusion check
27:34handmade_sim_region.cpp: Continue writing the inclusion check
42:03Blackboard: Checking to see if two rectangles intersect
42:03Blackboard: Checking to see if two rectangles intersect
42:03Blackboard: Checking to see if two rectangles intersect
46:42handmade_sim_region.cpp: Write RectanglesIntersect
46:42handmade_sim_region.cpp: Write RectanglesIntersect
46:42handmade_sim_region.cpp: Write RectanglesIntersect
49:55HandleCollision between the Hero and a Stairwell
49:55HandleCollision between the Hero and a Stairwell
49:55HandleCollision between the Hero and a Stairwell
51:33Try passing through the stairwell
51:33Try passing through the stairwell
51:33Try passing through the stairwell
51:53Debugger: Step into HandleCollision
51:53Debugger: Step into HandleCollision
51:53Debugger: Step into HandleCollision
53:46handmade.cpp: Make AddCollisionRule return a boolean which states whether or not the entity was already added
53:46handmade.cpp: Make AddCollisionRule return a boolean which states whether or not the entity was already added
53:46handmade.cpp: Make AddCollisionRule return a boolean which states whether or not the entity was already added
55:46handmade_sim_region.cpp: Record the fact that you've added a collision rule if it's new
55:46handmade_sim_region.cpp: Record the fact that you've added a collision rule if it's new
55:46handmade_sim_region.cpp: Record the fact that you've added a collision rule if it's new
57:27handmade.cpp: Intrdouce RemoveCollisionRule
57:27handmade.cpp: Intrdouce RemoveCollisionRule
57:27handmade.cpp: Intrdouce RemoveCollisionRule
59:07handmade.h: Introduce pairwise_collision_rule_flag
59:07handmade.h: Introduce pairwise_collision_rule_flag
59:07handmade.h: Introduce pairwise_collision_rule_flag
1:00:29TODO(casey): Transient collision rules! Clear based on flag
1:00:29TODO(casey): Transient collision rules! Clear based on flag
1:00:29TODO(casey): Transient collision rules! Clear based on flag
1:03:04Q&A
🗩
1:03:04Q&A
🗩
1:03:04Q&A
🗩
1:04:43Q: Why did you decide to code at, like, 4?
1:04:43Q: Why did you decide to code at, like, 4?
1:04:43Q: Why did you decide to code at, like, 4?
1:05:20Q: Glad to see the A-A B-B collision detection code come up. Took me way too long to figure that one out
1:05:20Q: Glad to see the A-A B-B collision detection code come up. Took me way too long to figure that one out
1:05:20Q: 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:50Q: 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:09:50Q: 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:09:50Q: 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:36Q: 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:11:36Q: 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:11:36Q: 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:15Q: 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:15Q: 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:15Q: 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:42Q: 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:12:42Q: 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:12:42Q: 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:57Q: 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:13:57Q: 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:13:57Q: 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:11Q: 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:11Q: 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:11Q: 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:30Q: An episode on metaprogramming, please?
1:15:30Q: An episode on metaprogramming, please?
1:15:30Q: An episode on metaprogramming, please?
1:16:18We're out of time
🗩
1:16:18We're out of time
🗩
1:16:18We're out of time
🗩