Entity Heights and Collision Detection
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next timestamp
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 and Index Controls

a
w
s
d
h j k l


Esc Close menu / unfocus timestamp

Quotes and References Menus and Index

Enter Jump to timestamp

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