Investigating Corner Collisions
?
?

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:00Recap and set the stage for the day
🗩
0:00Recap and set the stage for the day
🗩
0:00Recap and set the stage for the day
🗩
0:28Demo our sticky collision bug using the new diagramming
🏃
0:28Demo our sticky collision bug using the new diagramming
🏃
0:28Demo our sticky collision bug using the new diagramming
🏃
4:25Launch 4coder, with build initially not working
🗹
4:25Launch 4coder, with build initially not working
🗹
4:25Launch 4coder, with build initially not working
🗹
5:43Reacquaint ourselves with the gliding movement code in MoveEntity()
📖
5:43Reacquaint ourselves with the gliding movement code in MoveEntity()
📖
5:43Reacquaint ourselves with the gliding movement code in MoveEntity()
📖
10:02Interpret our colour-coded collision boxes
🏃
10:02Interpret our colour-coded collision boxes
🏃
10:02Interpret our colour-coded collision boxes
🏃
11:16Reacquaint ourselves with the diagramming code in UpdateBest()
📖
11:16Reacquaint ourselves with the diagramming code in UpdateBest()
📖
11:16Reacquaint ourselves with the diagramming code in UpdateBest()
📖
12:04Reinterpret our colour-coded collision boxes
🏃
12:04Reinterpret our colour-coded collision boxes
🏃
12:04Reinterpret our colour-coded collision boxes
🏃
14:04Consider enabling MoveEntity() to allow diagonal motion
📖
14:04Consider enabling MoveEntity() to allow diagonal motion
📖
14:04Consider enabling MoveEntity() to allow diagonal motion
📖
17:01Corner-diagonal motion should be handled
🏃
17:01Corner-diagonal motion should be handled
🏃
17:01Corner-diagonal motion should be handled
🏃
17:28Double-check Dir and Side in MoveEntity()
📖
17:28Double-check Dir and Side in MoveEntity()
📖
17:28Double-check Dir and Side in MoveEntity()
📖
19:47Our BestCell black box is missing
🏃
19:47Our BestCell black box is missing
🏃
19:47Our BestCell black box is missing
🏃
20:30Disable the BestCell diagramming in MoveEntity()
20:30Disable the BestCell diagramming in MoveEntity()
20:30Disable the BestCell diagramming in MoveEntity()
20:46The cyan plus sign remains
🏃
20:46The cyan plus sign remains
🏃
20:46The cyan plus sign remains
🏃
20:55Continue to wonder about our missing BestCell black box
📖
20:55Continue to wonder about our missing BestCell black box
📖
20:55Continue to wonder about our missing BestCell black box
📖
22:00Disable the gliding code in MoveEntity()
22:00Disable the gliding code in MoveEntity()
22:00Disable the gliding code in MoveEntity()
22:17The BestCell black box is never drawn
🏃
22:17The BestCell black box is never drawn
🏃
22:17The BestCell black box is never drawn
🏃
22:46Try make MoveEntity() draw the BestCell in red
22:46Try make MoveEntity() draw the BestCell in red
22:46Try make MoveEntity() draw the BestCell in red
22:55The BestCell red box is never draw
🏃
22:55The BestCell red box is never draw
🏃
22:55The BestCell red box is never draw
🏃
23:09Leave the BestCell black in MoveEntity() and try drawing a bigger version of the ToP box
23:09Leave the BestCell black in MoveEntity() and try drawing a bigger version of the ToP box
23:09Leave the BestCell black in MoveEntity() and try drawing a bigger version of the ToP box
23:33Our black box remains missing
🏃
23:33Our black box remains missing
🏃
23:33Our black box remains missing
🏃
23:38Try reversing the ToP and BestCell diagramming in MoveEntity()
23:38Try reversing the ToP and BestCell diagramming in MoveEntity()
23:38Try reversing the ToP and BestCell diagramming in MoveEntity()
23:52Our BestCell is drawn, but not the ToP
🏃
23:52Our BestCell is drawn, but not the ToP
🏃
23:52Our BestCell is drawn, but not the ToP
🏃
24:20Inspect RenderDiagrams() for bugs drawing the first entry
📖
24:20Inspect RenderDiagrams() for bugs drawing the first entry
📖
24:20Inspect RenderDiagrams() for bugs drawing the first entry
📖
29:23Step in to AppendDiagramEntry()
🏃
29:23Step in to AppendDiagramEntry()
🏃
29:23Step in to AppendDiagramEntry()
🏃
30:21Fix DIAGRAM_Text() to pass Diagram_Text to AppendDiagramEntry()
30:21Fix DIAGRAM_Text() to pass Diagram_Text to AppendDiagramEntry()
30:21Fix DIAGRAM_Text() to pass Diagram_Text to AppendDiagramEntry()
31:59Our BestCell and ToP are both drawn
🏃
31:59Our BestCell and ToP are both drawn
🏃
31:59Our BestCell and ToP are both drawn
🏃
32:27Re-enable the gliding code in MoveEntity()
32:27Re-enable the gliding code in MoveEntity()
32:27Re-enable the gliding code in MoveEntity()
32:44MoveEntity() tests all but three edges
🏃
32:44MoveEntity() tests all but three edges
🏃
32:44MoveEntity() tests all but three edges
🏃
33:29Enable MoveEntity() to test diagonal edge motion
33:29Enable MoveEntity() to test diagonal edge motion
33:29Enable MoveEntity() to test diagonal edge motion
36:49Somebody is talking about rust again
🗩
36:49Somebody is talking about rust again
🗩
36:49Somebody is talking about rust again
🗩
38:20fat_dratini It gets the hose again
🗪
38:20fat_dratini It gets the hose again
🗪
38:20fat_dratini It gets the hose again
🗪
38:56Tentatively permit "R***"
🗩
38:56Tentatively permit "R***"
🗩
38:56Tentatively permit "R***"
🗩
39:16MoveEntity() now tests the full cube, yet our corner gliding remains not working
🏃
39:16MoveEntity() now tests the full cube, yet our corner gliding remains not working
🏃
39:16MoveEntity() now tests the full cube, yet our corner gliding remains not working
🏃
42:01Fix typo in MoveEntity()
42:01Fix typo in MoveEntity()
42:01Fix typo in MoveEntity()
42:39Consider testing the 2-neighbourhood
🏃
42:39Consider testing the 2-neighbourhood
🏃
42:39Consider testing the 2-neighbourhood
🏃
45:10vacyoui Unmentionable what, RPG Maker?
🗪
45:10vacyoui Unmentionable what, RPG Maker?
🗪
45:10vacyoui Unmentionable what, RPG Maker?
🗪
46:57Determine to widen the gliding movement search space
📖
46:57Determine to widen the gliding movement search space
📖
46:57Determine to widen the gliding movement search space
📖
51:55Consider classifying our movement direction dynamically as we march through the voxel
📖
51:55Consider classifying our movement direction dynamically as we march through the voxel
📖
51:55Consider classifying our movement direction dynamically as we march through the voxel
📖
56:01tk_dev Q: A line drawing algorithm?
🗪
56:01tk_dev Q: A line drawing algorithm?
🗪
56:01tk_dev Q: A line drawing algorithm?
🗪
56:37Consider drawing a wider line
📖
56:37Consider drawing a wider line
📖
56:37Consider drawing a wider line
📖
1:00:40Increase VOXDIM from 2 to 3 in MoveEntity()
1:00:40Increase VOXDIM from 2 to 3 in MoveEntity()
1:00:40Increase VOXDIM from 2 to 3 in MoveEntity()
1:01:17Consider specifying all the possible wider movement directions in MoveEntity(), avoiding oscillation
📖
1:01:17Consider specifying all the possible wider movement directions in MoveEntity(), avoiding oscillation
📖
1:01:17Consider specifying all the possible wider movement directions in MoveEntity(), avoiding oscillation
📖
1:03:27Consider adding an value that directs movement tests based on previous tests
📖
1:03:27Consider adding an value that directs movement tests based on previous tests
📖
1:03:27Consider adding an value that directs movement tests based on previous tests
📖
1:04:10Introduce the notion of TriedOpposites in MoveEntity()
1:04:10Introduce the notion of TriedOpposites in MoveEntity()
1:04:10Introduce the notion of TriedOpposites in MoveEntity()
1:06:51Our gliding movement code now tests further
🏃
1:06:51Our gliding movement code now tests further
🏃
1:06:51Our gliding movement code now tests further
🏃
1:07:18Try making MoveEntity() flip and test each axis on separate loops
1:07:18Try making MoveEntity() flip and test each axis on separate loops
1:07:18Try making MoveEntity() flip and test each axis on separate loops
1:12:24Our gliding movement code tests further still, but doesn't permit corner gliding
🏃
1:12:24Our gliding movement code tests further still, but doesn't permit corner gliding
🏃
1:12:24Our gliding movement code tests further still, but doesn't permit corner gliding
🏃
1:14:19Consider drawing the glove's collision box as a sphere
🏃
1:14:19Consider drawing the glove's collision box as a sphere
🏃
1:14:19Consider drawing the glove's collision box as a sphere
🏃
1:15:35Implement the Diagram_Sphere case in RenderDiagrams()
1:15:35Implement the Diagram_Sphere case in RenderDiagrams()
1:15:35Implement the Diagram_Sphere case in RenderDiagrams()
1:20:10jarput Has anyone noticed the "noise" on Casey's latest streams? The editor seems more blurry to me
🗪
1:20:10jarput Has anyone noticed the "noise" on Casey's latest streams? The editor seems more blurry to me
🗪
1:20:10jarput Has anyone noticed the "noise" on Casey's latest streams? The editor seems more blurry to me
🗪
1:20:17Implement the Diagram_Sphere case in RenderDiagrams() (cont.)
1:20:17Implement the Diagram_Sphere case in RenderDiagrams() (cont.)
1:20:17Implement the Diagram_Sphere case in RenderDiagrams() (cont.)
1:25:55Check out what would be our glove's collision sphere
🏃
1:25:55Check out what would be our glove's collision sphere
🏃
1:25:55Check out what would be our glove's collision sphere
🏃
1:29:24Check how UpdateBest() determines the TestP
📖
1:29:24Check how UpdateBest() determines the TestP
📖
1:29:24Check how UpdateBest() determines the TestP
📖
1:30:31Break down our collision test
🏃
1:30:31Break down our collision test
🏃
1:30:31Break down our collision test
🏃
1:32:54Red means you can't move directly through the current voxel to that voxel
🏃
1:32:54Red means you can't move directly through the current voxel to that voxel
🏃
1:32:54Red means you can't move directly through the current voxel to that voxel
🏃
1:35:48Collision in The Witness: Flood-fill search
🗩
1:35:48Collision in The Witness: Flood-fill search
🗩
1:35:48Collision in The Witness: Flood-fill search
🗩
1:37:07Q&A
🗩
1:37:07Q&A
🗩
1:37:07Q&A
🗩
1:37:42teamrandb Q: Greetings Casey, forgive my rude question, but why did you not post you streaming on twitter?
🗪
1:37:42teamrandb Q: Greetings Casey, forgive my rude question, but why did you not post you streaming on twitter?
🗪
1:37:42teamrandb Q: Greetings Casey, forgive my rude question, but why did you not post you streaming on twitter?
🗪
1:38:01mixelqueen Q: Instead of switching between -O2 and -Od manually, why not [set] a different hotkey to build release vs debug?
🗪
1:38:01mixelqueen Q: Instead of switching between -O2 and -Od manually, why not [set] a different hotkey to build release vs debug?
🗪
1:38:01mixelqueen Q: Instead of switching between -O2 and -Od manually, why not [set] a different hotkey to build release vs debug?
🗪
1:38:18Building both -Od and -O2 for refterm1
📖
1:38:18Building both -Od and -O2 for refterm1
📖
1:38:18Building both -Od and -O2 for refterm1
📖
1:39:29anusaa Q: On day 565 you said that the multithreading code in Handmade Hero was crappy and that you learned much more about it since then. But what exactly is bad in that code?
🗪
1:39:29anusaa Q: On day 565 you said that the multithreading code in Handmade Hero was crappy and that you learned much more about it since then. But what exactly is bad in that code?
🗪
1:39:29anusaa Q: On day 565 you said that the multithreading code in Handmade Hero was crappy and that you learned much more about it since then. But what exactly is bad in that code?
🗪
1:40:16mindmark42 Q: Can you explain what a discriminated union is?
🗪
1:40:16mindmark42 Q: Can you explain what a discriminated union is?
🗪
1:40:16mindmark42 Q: Can you explain what a discriminated union is?
🗪
1:42:36davr0s I call it "tagged union"
🗪
1:42:36davr0s I call it "tagged union"
🗪
1:42:36davr0s I call it "tagged union"
🗪
1:42:41Theoretical discriminated union2
🗩
1:42:41Theoretical discriminated union2
🗩
1:42:41Theoretical discriminated union2
🗩
1:44:13poissonprocess Q: For someone just starting following Handmade Hero, would you recommend against using DirectSound? It looks to be deprecated now. Should I use xaudio2 or WASAPI?
🗪
1:44:13poissonprocess Q: For someone just starting following Handmade Hero, would you recommend against using DirectSound? It looks to be deprecated now. Should I use xaudio2 or WASAPI?
🗪
1:44:13poissonprocess Q: For someone just starting following Handmade Hero, would you recommend against using DirectSound? It looks to be deprecated now. Should I use xaudio2 or WASAPI?
🗪
1:46:07tk_dev Q: Does the order in which entities move change the result in your collision detection?
🗪
1:46:07tk_dev Q: Does the order in which entities move change the result in your collision detection?
🗪
1:46:07tk_dev Q: Does the order in which entities move change the result in your collision detection?
🗪
1:47:13mextroxtm Q: Do you think the concept of IMGUI is applicable the same way in 3D user interfaces as in VR games? Are there any differences you would see? I might be writing a small research paper about it for university if I get the permission to
🗪
1:47:13mextroxtm Q: Do you think the concept of IMGUI is applicable the same way in 3D user interfaces as in VR games? Are there any differences you would see? I might be writing a small research paper about it for university if I get the permission to
🗪
1:47:13mextroxtm Q: Do you think the concept of IMGUI is applicable the same way in 3D user interfaces as in VR games? Are there any differences you would see? I might be writing a small research paper about it for university if I get the permission to
🗪
1:48:02olive_prist Q: You invented IMGUI?
🗪
1:48:02olive_prist Q: You invented IMGUI?
🗪
1:48:02olive_prist Q: You invented IMGUI?
🗪
1:48:41olive_prist Q: Mike Acton recommends sometimes doing deliberate practice for programming as opposed to working on projects. Have you done this yourself? Do you recommend it?
🗪
1:48:41olive_prist Q: Mike Acton recommends sometimes doing deliberate practice for programming as opposed to working on projects. Have you done this yourself? Do you recommend it?
🗪
1:48:41olive_prist Q: Mike Acton recommends sometimes doing deliberate practice for programming as opposed to working on projects. Have you done this yourself? Do you recommend it?
🗪
1:50:420lpbm Well, Wikipedia3 credits Casey, for the doubters
🗪
1:50:420lpbm Well, Wikipedia3 credits Casey, for the doubters
🗪
1:50:420lpbm Well, Wikipedia3 credits Casey, for the doubters
🗪
1:51:33carwynnelson Q: Were there IMGUI interfaces before you coined the term? Or was the idea and the term completely original?
🗪
1:51:33carwynnelson Q: Were there IMGUI interfaces before you coined the term? Or was the idea and the term completely original?
🗪
1:51:33carwynnelson Q: Were there IMGUI interfaces before you coined the term? Or was the idea and the term completely original?
🗪
1:52:52thehorseisbrown Would you coin a different term for IMGUI in hindsight? Wouldn't "code-based" or something in that direction be better?
🗪
1:52:52thehorseisbrown Would you coin a different term for IMGUI in hindsight? Wouldn't "code-based" or something in that direction be better?
🗪
1:52:52thehorseisbrown Would you coin a different term for IMGUI in hindsight? Wouldn't "code-based" or something in that direction be better?
🗪
1:53:12d3dbsp Did you also coin GJK?4
🗪
1:53:12d3dbsp Did you also coin GJK?4
🗪
1:53:12d3dbsp Did you also coin GJK?4
🗪
1:54:05enemypanda Did you coin JavaScript?
🗪
1:54:05enemypanda Did you coin JavaScript?
🗪
1:54:05enemypanda Did you coin JavaScript?
🗪
1:54:33carwynnelson It's odd that you don't have a Wikipedia page5,6
🗪
1:54:33carwynnelson It's odd that you don't have a Wikipedia page5,6
🗪
1:54:33carwynnelson It's odd that you don't have a Wikipedia page5,6
🗪
1:58:52i_am_seabass Q: Microsoft is setting fairly strict hardware requirements for Windows 11. Basically, chips older than two years will not work. Do you think this is a good or bad thing? Seems like it will lead to a lot of waste of perfectly good hardware
🗪
1:58:52i_am_seabass Q: Microsoft is setting fairly strict hardware requirements for Windows 11. Basically, chips older than two years will not work. Do you think this is a good or bad thing? Seems like it will lead to a lot of waste of perfectly good hardware
🗪
1:58:52i_am_seabass Q: Microsoft is setting fairly strict hardware requirements for Windows 11. Basically, chips older than two years will not work. Do you think this is a good or bad thing? Seems like it will lead to a lot of waste of perfectly good hardware
🗪
2:01:48miltondts Nah… the TPM requirement is about locking down the platform, DRM, etc
🗪
2:01:48miltondts Nah… the TPM requirement is about locking down the platform, DRM, etc
🗪
2:01:48miltondts Nah… the TPM requirement is about locking down the platform, DRM, etc
🗪
2:04:34mougatron Q: Have you ever used any physics engine like Havok, PhysX, or Bullet? If so, do you have any opinion on them?
🗪
2:04:34mougatron Q: Have you ever used any physics engine like Havok, PhysX, or Bullet? If so, do you have any opinion on them?
🗪
2:04:34mougatron Q: Have you ever used any physics engine like Havok, PhysX, or Bullet? If so, do you have any opinion on them?
🗪
2:05:03beastexmachina Q: Same opinion for trusted modules in embedded systems?
🗪
2:05:03beastexmachina Q: Same opinion for trusted modules in embedded systems?
🗪
2:05:03beastexmachina Q: Same opinion for trusted modules in embedded systems?
🗪
2:06:44Do we have any Iranians watching?
🗩
2:06:44Do we have any Iranians watching?
🗩
2:06:44Do we have any Iranians watching?
🗩
2:07:24xpaw Does twitch work in Iran?
🗪
2:07:24xpaw Does twitch work in Iran?
🗪
2:07:24xpaw Does twitch work in Iran?
🗪
2:07:45Persian-style grilled meats
🗩
2:07:45Persian-style grilled meats
🗩
2:07:45Persian-style grilled meats
🗩
2:08:11navidhg Kebab koubideh
🗪
2:08:11navidhg Kebab koubideh
🗪
2:08:11navidhg Kebab koubideh
🗪
2:08:22Mediterranean grilled meats
🗩
2:08:22Mediterranean grilled meats
🗩
2:08:22Mediterranean grilled meats
🗩
2:10:16f__stein boop is Iranian, right? At least he spoke about speaking Farsi
🗪
2:10:16f__stein boop is Iranian, right? At least he spoke about speaking Farsi
🗪
2:10:16f__stein boop is Iranian, right? At least he spoke about speaking Farsi
🗪
2:10:40Getting better at grilled chicken
🗩
2:10:40Getting better at grilled chicken
🗩
2:10:40Getting better at grilled chicken
🗩
2:11:20amirh12 Joujeh kebab
🗪
2:11:20amirh12 Joujeh kebab
🗪
2:11:20amirh12 Joujeh kebab
🗪
2:11:25Main problem figuring out the doneness of joujeh kebab
🗩
2:11:25Main problem figuring out the doneness of joujeh kebab
🗩
2:11:25Main problem figuring out the doneness of joujeh kebab
🗩
2:11:57vertual1 Touch
🗪
2:11:57vertual1 Touch
🗪
2:11:57vertual1 Touch
🗪
2:12:12esert If you want to get Middle East / Levant-type of seasonings and other produce in Seattle, try Goodies Mediterranean Market7
🗪
2:12:12esert If you want to get Middle East / Levant-type of seasonings and other produce in Seattle, try Goodies Mediterranean Market7
🗪
2:12:12esert If you want to get Middle East / Levant-type of seasonings and other produce in Seattle, try Goodies Mediterranean Market7
🗪
2:13:17esert Yes, in Lake City. They also have house-made kebabs, ready to cook
🗪
2:13:17esert Yes, in Lake City. They also have house-made kebabs, ready to cook
🗪
2:13:17esert Yes, in Lake City. They also have house-made kebabs, ready to cook
🗪
2:13:28Skewering before coming to room temperature
🗩
2:13:28Skewering before coming to room temperature
🗩
2:13:28Skewering before coming to room temperature
🗩
2:14:27miltondts Does your skewer rotate?
🗪
2:14:27miltondts Does your skewer rotate?
🗪
2:14:27miltondts Does your skewer rotate?
🗪
2:14:29Rotating skewers manually
🗩
2:14:29Rotating skewers manually
🗩
2:14:29Rotating skewers manually
🗩
2:15:59sir_pinecone How about using an infrared thermometer and then remove before it hits the target temperature, because it'll continue to cook for a bit as it sits?
🗪
2:15:59sir_pinecone How about using an infrared thermometer and then remove before it hits the target temperature, because it'll continue to cook for a bit as it sits?
🗪
2:15:59sir_pinecone How about using an infrared thermometer and then remove before it hits the target temperature, because it'll continue to cook for a bit as it sits?
🗪
2:16:31miltondts Also, I don't know if this is common, but I see the meat is not done all at the same time and they cut the meat on the skewer and leave the rest
🗪
2:16:31miltondts Also, I don't know if this is common, but I see the meat is not done all at the same time and they cut the meat on the skewer and leave the rest
🗪
2:16:31miltondts Also, I don't know if this is common, but I see the meat is not done all at the same time and they cut the meat on the skewer and leave the rest
🗪
2:17:40Wrap it up
🗩
2:17:40Wrap it up
🗩
2:17:40Wrap it up
🗩
You have arrived at the (current) end of Handmade Hero