[, < / ], >Jump to previous / next episode W, K, P / S, J, NJump to previous / next timestamp t / TToggle theatre / SUPERtheatre mode VRevert filter to original stateYSelect link (requires manual Ctrl-c)
Menu toggling
qQuotesrReferencesfFilteryLinkcCredits
In-Menu and Index Controls
a
w s
d
hjkl
←
↑ ↓
→
EscClose menu / unfocus timestamp
Quotes and References Menus and Index
EnterJump to timestamp
Quotes, References and Credits Menus
oOpen URL (in new tab)
Filter Menu
x, SpaceToggle category and focus next X, ShiftSpaceToggle category and focus previous vInvert topics / media as per focus
2:10Determine to switch the collision detection to use voxel-by-voxel stepping
🗩
2:10Determine to switch the collision detection to use voxel-by-voxel stepping
🗩
2:10Determine to switch the collision detection to use voxel-by-voxel stepping
🗩
5:33Introduce an f32 version of Floor()
5:33Introduce an f32 version of Floor()
5:33Introduce an f32 version of Floor()
7:21Center the FromP around stable collision voxel bounds in MoveEntityLocally()
7:21Center the FromP around stable collision voxel bounds in MoveEntityLocally()
7:21Center the FromP around stable collision voxel bounds in MoveEntityLocally()
11:16Introduce a v3 version of Floor()
11:16Introduce a v3 version of Floor()
11:16Introduce a v3 version of Floor()
13:06Continue to switch MoveEntityLocally() to use stable voxel-by-voxel stepping
13:06Continue to switch MoveEntityLocally() to use stable voxel-by-voxel stepping
13:06Continue to switch MoveEntityLocally() to use stable voxel-by-voxel stepping
16:29Thoughts on embedding recovery
📖
16:29Thoughts on embedding recovery
📖
16:29Thoughts on embedding recovery
📖
19:04Introduce move_result for MoveEntityLocally() to return
19:04Introduce move_result for MoveEntityLocally() to return
19:04Introduce move_result for MoveEntityLocally() to return
20:53Voxel collision states: 1) Any legal corners
📖
20:53Voxel collision states: 1) Any legal corners
📖
20:53Voxel collision states: 1) Any legal corners
📖
21:59Voxel collision states: 2) Where would the entity be placed?
📖
21:59Voxel collision states: 2) Where would the entity be placed?
📖
21:59Voxel collision states: 2) Where would the entity be placed?
📖
22:33Make MoveEntityLocally() use GetClosestPointInBox() to compute the entity placement
22:33Make MoveEntityLocally() use GetClosestPointInBox() to compute the entity placement
22:33Make MoveEntityLocally() use GetClosestPointInBox() to compute the entity placement
23:01Deep thoughts on collision
📖
23:01Deep thoughts on collision
📖
23:01Deep thoughts on collision
📖
23:43Consider using GetClosestPointInBox() on repeated subdivisions of the collision voxel
📖
23:43Consider using GetClosestPointInBox() on repeated subdivisions of the collision voxel
📖
23:43Consider using GetClosestPointInBox() on repeated subdivisions of the collision voxel
📖
26:35immibis Something I wondered about The Witness is: Why does the player not move on a navmesh? Then you wouldn't have needed that brute force testing thingy
🗪
26:35immibis Something I wondered about The Witness is: Why does the player not move on a navmesh? Then you wouldn't have needed that brute force testing thingy
🗪
26:35immibis Something I wondered about The Witness is: Why does the player not move on a navmesh? Then you wouldn't have needed that brute force testing thingy
🗪
29:39tadasv123 Are you and Jon Blow on the same team or something?
🗪
29:39tadasv123 Are you and Jon Blow on the same team or something?
🗪
29:39tadasv123 Are you and Jon Blow on the same team or something?
🗪
29:49Introduce CollidesAtP() for MoveEntityLocally() to call
29:49Introduce CollidesAtP() for MoveEntityLocally() to call
29:49Introduce CollidesAtP() for MoveEntityLocally() to call
32:39b1dd1e So, tuned in just in time to witness a Casey epiphany?
🗪
32:39b1dd1e So, tuned in just in time to witness a Casey epiphany?
🗪
32:39b1dd1e So, tuned in just in time to witness a Casey epiphany?
🗪
32:56b1dd1e Yup
🗪
32:56b1dd1e Yup
🗪
32:56b1dd1e Yup
🗪
33:39b1dd1e Do I need a code word?
🗪
33:39b1dd1e Do I need a code word?
🗪
33:39b1dd1e Do I need a code word?
🗪
34:32Introduce Mike Biddlecombe
34:32Introduce Mike Biddlecombe
34:32Introduce Mike Biddlecombe
34:49b1dd1e In Vancouver
🗪
34:49b1dd1e In Vancouver
🗪
34:49b1dd1e In Vancouver
🗪
35:033D movement realisation: If we could place an entity in a cell, we may then root-find1 to pick exactly where
35:033D movement realisation: If we could place an entity in a cell, we may then root-find1 to pick exactly where
35:033D movement realisation: If we could place an entity in a cell, we may then root-find1 to pick exactly where
36:26Introduce a root-finding2 RefineVoxelPlacement() for MoveEntityLocally() to call
36:26Introduce a root-finding2 RefineVoxelPlacement() for MoveEntityLocally() to call
36:26Introduce a root-finding2 RefineVoxelPlacement() for MoveEntityLocally() to call
49:17Explain RefineVoxelPlacement()
📖
49:17Explain RefineVoxelPlacement()
📖
49:17Explain RefineVoxelPlacement()
📖
50:13Fix RefineVoxelPlacement() to halve the tStep each iteration
50:13Fix RefineVoxelPlacement() to halve the tStep each iteration
50:13Fix RefineVoxelPlacement() to halve the tStep each iteration
50:23Explain the root-finding3 of RefineVoxelPlacement() (cont.)
📖
50:23Explain the root-finding3 of RefineVoxelPlacement() (cont.)
📖
50:23Explain the root-finding3 of RefineVoxelPlacement() (cont.)
📖
54:23Make MoveEntity() call RefineVoxelPlacement() at the end
54:23Make MoveEntity() call RefineVoxelPlacement() at the end
54:23Make MoveEntity() call RefineVoxelPlacement() at the end
54:58Recap the parameters passed to RefineVoxelPlacement()
📖
54:58Recap the parameters passed to RefineVoxelPlacement()
📖
54:58Recap the parameters passed to RefineVoxelPlacement()
📖
55:39Handling shifting FromP: 1) Map it into the cell
📖
55:39Handling shifting FromP: 1) Map it into the cell
📖
55:39Handling shifting FromP: 1) Map it into the cell
📖
55:47Handling shifting FromP: 2) Convect it around the centre of voxel faces
📖
55:47Handling shifting FromP: 2) Convect it around the centre of voxel faces
📖
55:47Handling shifting FromP: 2) Convect it around the centre of voxel faces
📖
56:16Make MoveEntity() and MoveEntityLocally() map the FromP and ToP into the cell
56:16Make MoveEntity() and MoveEntityLocally() map the FromP and ToP into the cell
56:16Make MoveEntity() and MoveEntityLocally() map the FromP and ToP into the cell
57:40haeristudios I am really confused with the quality of the video and lighting setup. Why is it so good?
🗪
57:40haeristudios I am really confused with the quality of the video and lighting setup. Why is it so good?
🗪
57:40haeristudios I am really confused with the quality of the video and lighting setup. Why is it so good?
🗪
58:48Remove the voxel subdivision code from MoveEntity()
58:48Remove the voxel subdivision code from MoveEntity()
58:48Remove the voxel subdivision code from MoveEntity()
59:17Plan to pathfind to our nearest legal destination
📖
59:17Plan to pathfind to our nearest legal destination
📖
59:17Plan to pathfind to our nearest legal destination
📖
1:01:41scanberg What happened to the glasses?
🗪
1:01:41scanberg What happened to the glasses?
🗪
1:01:41scanberg What happened to the glasses?
🗪
1:02:12abecderic Now I need to learn this stuff. StarCinematographyGalaxy when?
🗪
1:02:12abecderic Now I need to learn this stuff. StarCinematographyGalaxy when?
🗪
1:02:12abecderic Now I need to learn this stuff. StarCinematographyGalaxy when?
🗪
1:03:25kiewi3 You need a red arrow in the thumbnail
🗪
1:03:25kiewi3 You need a red arrow in the thumbnail
🗪
1:03:25kiewi3 You need a red arrow in the thumbnail
🗪
1:03:42Setup MoveEntity() to pathfind to our nearest legal destination, welding in MoveEntityLocally()
1:03:42Setup MoveEntity() to pathfind to our nearest legal destination, welding in MoveEntityLocally()
1:03:42Setup MoveEntity() to pathfind to our nearest legal destination, welding in MoveEntityLocally()
1:05:18Consider calling RefineVoxelPlacement() on multiple cells
📖
1:05:18Consider calling RefineVoxelPlacement() on multiple cells
📖
1:05:18Consider calling RefineVoxelPlacement() on multiple cells
📖
1:05:43mallesbixie The tip professional Cinematographers do not want you to know!
🗪
1:05:43mallesbixie The tip professional Cinematographers do not want you to know!
🗪
1:05:43mallesbixie The tip professional Cinematographers do not want you to know!
🗪
1:06:00Make MoveEntity() pathfind to our nearest legal destination (cont.)
1:06:00Make MoveEntity() pathfind to our nearest legal destination (cont.)
1:06:00Make MoveEntity() pathfind to our nearest legal destination (cont.)
1:09:12mallesbixie Yeah, now I also spot the divide outside the floor somebody mentioned earlier, at VoxelMinCorner
🗪
1:09:12mallesbixie Yeah, now I also spot the divide outside the floor somebody mentioned earlier, at VoxelMinCorner
🗪
1:09:12mallesbixie Yeah, now I also spot the divide outside the floor somebody mentioned earlier, at VoxelMinCorner
🗪
1:09:18Fix the computation of VoxelMinCorner in MoveEntity()
1:09:18Fix the computation of VoxelMinCorner in MoveEntity()
1:09:18Fix the computation of VoxelMinCorner in MoveEntity()
1:09:42Make MoveEntity() pathfind to our nearest legal destination (cont.)
1:09:42Make MoveEntity() pathfind to our nearest legal destination (cont.)
1:09:42Make MoveEntity() pathfind to our nearest legal destination (cont.)
1:12:29sgtrumbi Is there a return statement in the refine function?
🗪
1:12:29sgtrumbi Is there a return statement in the refine function?
🗪
1:12:29sgtrumbi Is there a return statement in the refine function?
🗪
1:12:56Make MoveEntity() pathfind to our nearest legal destination (cont.)
1:12:56Make MoveEntity() pathfind to our nearest legal destination (cont.)
1:12:56Make MoveEntity() pathfind to our nearest legal destination (cont.)
1:16:32Flipped refinement and movement legality
📖
1:16:32Flipped refinement and movement legality
📖
1:16:32Flipped refinement and movement legality
📖
1:18:34Determine to make MoveEntity() handle movement from a legal place
📖
1:18:34Determine to make MoveEntity() handle movement from a legal place
📖
1:18:34Determine to make MoveEntity() handle movement from a legal place
📖
1:22:24Make MoveEntity() handle movement from a legal place
1:22:24Make MoveEntity() handle movement from a legal place
1:22:24Make MoveEntity() handle movement from a legal place
1:31:16Introduce voxel_move for MoveEntity() to use
1:31:16Introduce voxel_move for MoveEntity() to use
1:31:16Introduce voxel_move for MoveEntity() to use
1:32:09Make MoveEntity() handle movement from a legal place (cont.)
1:32:09Make MoveEntity() handle movement from a legal place (cont.)
1:32:09Make MoveEntity() handle movement from a legal place (cont.)
1:40:38Implement UpdateBest()
1:40:38Implement UpdateBest()
1:40:38Implement UpdateBest()
1:44:02Consider this okay for one day's work
🗩
1:44:02Consider this okay for one day's work
🗩
1:44:02Consider this okay for one day's work
🗩
1:44:33Step through MoveEntity()
🏃
1:44:33Step through MoveEntity()
🏃
1:44:33Step through MoveEntity()
🏃
1:46:06Step through MoveEntity() in -Od
🏃
1:46:06Step through MoveEntity() in -Od
🏃
1:46:06Step through MoveEntity() in -Od
🏃
1:47:06Set MOTION_DISPLACEMENT_SIZE to 0.125 (as the closest power of 2 to 0.1) in MoveEntity()
1:47:06Set MOTION_DISPLACEMENT_SIZE to 0.125 (as the closest power of 2 to 0.1) in MoveEntity()
1:47:06Set MOTION_DISPLACEMENT_SIZE to 0.125 (as the closest power of 2 to 0.1) in MoveEntity()
1:47:40Step through MoveEntity()
🏃
1:47:40Step through MoveEntity()
🏃
1:47:40Step through MoveEntity()
🏃
1:49:45Pull out the DeltaP in UpdateBest() for debugging convenience
1:49:45Pull out the DeltaP in UpdateBest() for debugging convenience
1:49:45Pull out the DeltaP in UpdateBest() for debugging convenience
1:50:23Step in to UpdateBest()
🏃
1:50:23Step in to UpdateBest()
🏃
1:50:23Step in to UpdateBest()
🏃
1:51:57Retain the Best.DistanceSq as the nearest valid distance in MoveEntity()
1:51:57Retain the Best.DistanceSq as the nearest valid distance in MoveEntity()
1:51:57Retain the Best.DistanceSq as the nearest valid distance in MoveEntity()
1:53:31Step wildly
🏃
1:53:31Step wildly
🏃
1:53:31Step wildly
🏃
1:54:17Update remedybg from 0.3.3.3 to 0.3.3.5
🗹
1:54:17Update remedybg from 0.3.3.3 to 0.3.3.5
🗹
1:54:17Update remedybg from 0.3.3.3 to 0.3.3.5
🗹
1:58:28Step wildly still
🏃
1:58:28Step wildly still
🏃
1:58:28Step wildly still
🏃
1:59:27Try stepping in -O2, unsuccessfully
🏃
1:59:27Try stepping in -O2, unsuccessfully
🏃
1:59:27Try stepping in -O2, unsuccessfully
🏃
1:59:40sori_daijinCasey, you might need new glasses
🗪
1:59:40sori_daijinCasey, you might need new glasses
🗪
1:59:40sori_daijinCasey, you might need new glasses
🗪
1:59:49This is still in a bad state
🏃
1:59:49This is still in a bad state
🏃
1:59:49This is still in a bad state
🏃
2:00:03Compile in -Od
2:00:03Compile in -Od
2:00:03Compile in -Od
2:00:33ezioauditorerevshandmade_hero Did you order the glasses from Apple?
🗪
2:00:33ezioauditorerevshandmade_hero Did you order the glasses from Apple?
🗪
2:00:33ezioauditorerevshandmade_hero Did you order the glasses from Apple?
🗪
2:00:40Fallacious positive arguments for Apple vs consumer rights law
💢
🗩
2:00:40Fallacious positive arguments for Apple vs consumer rights law
💢
🗩
2:00:40Fallacious positive arguments for Apple vs consumer rights law
💢
🗩
2:05:42hexadecimalinteger That's where competition comes in
🗪
2:05:42hexadecimalinteger That's where competition comes in
🗪
2:05:42hexadecimalinteger That's where competition comes in
🗪
2:07:31Step through MoveEntity()
🏃
2:07:31Step through MoveEntity()
🏃
2:07:31Step through MoveEntity()
🏃
2:09:40ryuukk_ tl;dr I love capitalism when it works for me. Screw other people
🗪
2:09:40ryuukk_ tl;dr I love capitalism when it works for me. Screw other people
🗪
2:09:40ryuukk_ tl;dr I love capitalism when it works for me. Screw other people
🗪
2:14:37ezioauditorerevshandmade_hero Can we get Handmade Political as a podcast?
🗪
2:14:37ezioauditorerevshandmade_hero Can we get Handmade Political as a podcast?
🗪
2:14:37ezioauditorerevshandmade_hero Can we get Handmade Political as a podcast?
🗪
2:16:25Step through MoveEntity()
🏃
2:16:25Step through MoveEntity()
🏃
2:16:25Step through MoveEntity()
🏃
2:16:55Flip the sense of our Occupied tests in MoveEntity()
2:16:55Flip the sense of our Occupied tests in MoveEntity()
2:16:55Flip the sense of our Occupied tests in MoveEntity()
2:17:26Step through MoveEntity()
🏃
2:17:26Step through MoveEntity()
🏃
2:17:26Step through MoveEntity()
🏃
2:20:19Fix MoveEntity() to reset Best.Moved each iteration
2:20:19Fix MoveEntity() to reset Best.Moved each iteration
2:20:19Fix MoveEntity() to reset Best.Moved each iteration
2:20:36Step through MoveEntity()
🏃
2:20:36Step through MoveEntity()
🏃
2:20:36Step through MoveEntity()
🏃
2:20:53The glove moves by whole voxel steps
🏃
2:20:53The glove moves by whole voxel steps
🏃
2:20:53The glove moves by whole voxel steps
🏃
2:21:13Make MoveEntity() use the result of the pathfinding loop in its final position settings
2:21:13Make MoveEntity() use the result of the pathfinding loop in its final position settings
2:21:13Make MoveEntity() use the result of the pathfinding loop in its final position settings
2:21:50Collision is getting there, but the glove can still penetrate the wall
🏃
2:21:50Collision is getting there, but the glove can still penetrate the wall
🏃
2:21:50Collision is getting there, but the glove can still penetrate the wall
🏃
2:22:25Q&A
🗩
2:22:25Q&A
🗩
2:22:25Q&A
🗩
2:22:43damnzl Hey dude! In love with the stream title, definitely stealing next time I play that game
🗪
2:22:43damnzl Hey dude! In love with the stream title, definitely stealing next time I play that game
🗪
2:22:43damnzl Hey dude! In love with the stream title, definitely stealing next time I play that game
🗪
2:23:22x13pixels Q: My apologies for the stepping issue you were seeing. I'll take a look and see wtf is going on!
🗪
2:23:22x13pixels Q: My apologies for the stepping issue you were seeing. I'll take a look and see wtf is going on!
🗪
2:23:22x13pixels Q: My apologies for the stepping issue you were seeing. I'll take a look and see wtf is going on!
🗪
2:24:02mindmark42 Q: Can you explain how that .125 thing works?
🗪
2:24:02mindmark42 Q: Can you explain how that .125 thing works?
🗪
2:24:02mindmark42 Q: Can you explain how that .125 thing works?
🗪
2:28:19Recommend 'What Every Computer Scientist Should Know About Floating-Point Arithmetic'4
📖
2:28:19Recommend 'What Every Computer Scientist Should Know About Floating-Point Arithmetic'4
📖
2:28:19Recommend 'What Every Computer Scientist Should Know About Floating-Point Arithmetic'4
📖
2:29:32b1dd1e Check out random ASCII (Bruce Dawson) blog posts on floating point5
🗪
2:29:32b1dd1e Check out random ASCII (Bruce Dawson) blog posts on floating point5
🗪
2:29:32b1dd1e Check out random ASCII (Bruce Dawson) blog posts on floating point5
🗪
2:29:45stelios_tvhandmade_hero The Floating-Point Guide6
🗪
2:29:45stelios_tvhandmade_hero The Floating-Point Guide6
🗪
2:29:45stelios_tvhandmade_hero The Floating-Point Guide6
🗪
2:29:57mikeryp But how much of a difference can this minute computation really make in real time?
🗪
2:29:57mikeryp But how much of a difference can this minute computation really make in real time?
🗪
2:29:57mikeryp But how much of a difference can this minute computation really make in real time?
🗪
2:30:54Temporarily set MOTION_DISPLACEMENT_SIZE to 0.1 in MoveEntity()
2:30:54Temporarily set MOTION_DISPLACEMENT_SIZE to 0.1 in MoveEntity()
2:30:54Temporarily set MOTION_DISPLACEMENT_SIZE to 0.1 in MoveEntity()
2:31:26Inspect the ToP
🏃
2:31:26Inspect the ToP
🏃
2:31:26Inspect the ToP
🏃
2:32:01Revert MOTION_DISPLACEMENT_SIZE to 0.125 in MoveEntity()
2:32:01Revert MOTION_DISPLACEMENT_SIZE to 0.125 in MoveEntity()
2:32:01Revert MOTION_DISPLACEMENT_SIZE to 0.125 in MoveEntity()
2:32:40This was a bad example
🏃
2:32:40This was a bad example
🏃
2:32:40This was a bad example
🏃
2:32:56Temporarily set MOTION_DISPLACEMENT_SIZE to 0.1 in MoveEntity()
2:32:56Temporarily set MOTION_DISPLACEMENT_SIZE to 0.1 in MoveEntity()
2:32:56Temporarily set MOTION_DISPLACEMENT_SIZE to 0.1 in MoveEntity()
2:33:10Inspect the values resulting from a MOTION_DISPLACEMENT_SIZE of 0.1
🏃
2:33:10Inspect the values resulting from a MOTION_DISPLACEMENT_SIZE of 0.1
🏃
2:33:10Inspect the values resulting from a MOTION_DISPLACEMENT_SIZE of 0.1
🏃
2:33:25Revert MOTION_DISPLACEMENT_SIZE to 0.125 in MoveEntity()
2:33:25Revert MOTION_DISPLACEMENT_SIZE to 0.125 in MoveEntity()
2:33:25Revert MOTION_DISPLACEMENT_SIZE to 0.125 in MoveEntity()
2:33:39Inspect the values resulting from a MOTION_DISPLACEMENT_SIZE of 0.125
🏃
2:33:39Inspect the values resulting from a MOTION_DISPLACEMENT_SIZE of 0.125
🏃
2:33:39Inspect the values resulting from a MOTION_DISPLACEMENT_SIZE of 0.125
🏃
2:34:22hollowjazz35 How long have you been working on this project?
🗪
2:34:22hollowjazz35 How long have you been working on this project?
🗪
2:34:22hollowjazz35 How long have you been working on this project?
🗪
2:36:03newtothis11 You look like a render
🗪
2:36:03newtothis11 You look like a render
🗪
2:36:03newtothis11 You look like a render
🗪
2:36:19internationalizationist We need more codelesthenics, Casey, and you need it as well
🗪
2:36:19internationalizationist We need more codelesthenics, Casey, and you need it as well
🗪
2:36:19internationalizationist We need more codelesthenics, Casey, and you need it as well
🗪
2:37:29ezioauditorerevs Q: How does your fancy transparent whiteboard work? Did you learn to write backwards, or is it all just mirrored?
🗪
2:37:29ezioauditorerevs Q: How does your fancy transparent whiteboard work? Did you learn to write backwards, or is it all just mirrored?
🗪
2:37:29ezioauditorerevs Q: How does your fancy transparent whiteboard work? Did you learn to write backwards, or is it all just mirrored?
🗪
2:37:44bulmanator I don't understand why we can't show birthdays on the user profile page
🗪
2:37:44bulmanator I don't understand why we can't show birthdays on the user profile page
🗪
2:37:44bulmanator I don't understand why we can't show birthdays on the user profile page
🗪
2:38:00ezioauditorerevs "et-zio" "ow-dit-or-A"
🗪
2:38:00ezioauditorerevs "et-zio" "ow-dit-or-A"
🗪
2:38:00ezioauditorerevs "et-zio" "ow-dit-or-A"
🗪
2:38:17buljanoff Everyone needs to say the word dynamically at least once
🗪
2:38:17buljanoff Everyone needs to say the word dynamically at least once
🗪
2:38:17buljanoff Everyone needs to say the word dynamically at least once
🗪
2:39:00ezioauditorerevs Q: Ezio Auditore is the main character from Assassin's Creed 2
🗪
2:39:00ezioauditorerevs Q: Ezio Auditore is the main character from Assassin's Creed 2
🗪
2:39:00ezioauditorerevs Q: Ezio Auditore is the main character from Assassin's Creed 2