Handmade Hero»Episode Guide
Debugging Cutscene Z and Traversable Creation
?
?

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:09Reflect on our recent dynamically allocated arena upgrade
0:09Reflect on our recent dynamically allocated arena upgrade
0:09Reflect on our recent dynamically allocated arena upgrade
2:54todo.txt: Consult the TODO list
2:54todo.txt: Consult the TODO list
2:54todo.txt: Consult the TODO list
4:52Consider upgrading to a traditional 3D pipeline
4:52Consider upgrading to a traditional 3D pipeline
4:52Consider upgrading to a traditional 3D pipeline
7:50Reflect briefly on the series thus far
7:50Reflect briefly on the series thus far
7:50Reflect briefly on the series thus far
10:45Build and run and investigate what's happening with the cutscene
10:45Build and run and investigate what's happening with the cutscene
10:45Build and run and investigate what's happening with the cutscene
14:36handmade_cutscene.cpp: Make RenderLayeredScene() set the FloorZ, run the game and step through the code
14:36handmade_cutscene.cpp: Make RenderLayeredScene() set the FloorZ, run the game and step through the code
14:36handmade_cutscene.cpp: Make RenderLayeredScene() set the FloorZ, run the game and step through the code
16:37handmade_cutscene.cpp: Try flipping that computation of the FloorZ and run the game to see if that's the correct thing to do
16:37handmade_cutscene.cpp: Try flipping that computation of the FloorZ and run the game to see if that's the correct thing to do
16:37handmade_cutscene.cpp: Try flipping that computation of the FloorZ and run the game to see if that's the correct thing to do
20:30Step into GetRenderEntityBasisP() and inspect the P and OffsetP
20:30Step into GetRenderEntityBasisP() and inspect the P and OffsetP
20:30Step into GetRenderEntityBasisP() and inspect the P and OffsetP
21:34handmade_cutscene.cpp: Make RenderLayeredScene() set the OffsetP.z as well as the FloorZ, run the game and see that the cutscene has been restored
21:34handmade_cutscene.cpp: Make RenderLayeredScene() set the OffsetP.z as well as the FloorZ, run the game and see that the cutscene has been restored
21:34handmade_cutscene.cpp: Make RenderLayeredScene() set the OffsetP.z as well as the FloorZ, run the game and see that the cutscene has been restored
23:53Run the game and demo the bug with the traversables in the initial creation phase
23:53Run the game and demo the bug with the traversables in the initial creation phase
23:53Run the game and demo the bug with the traversables in the initial creation phase
25:00handmade_sim_region.cpp: Consider how entities are created and packed
25:00handmade_sim_region.cpp: Consider how entities are created and packed
25:00handmade_sim_region.cpp: Consider how entities are created and packed
26:53Run the game, step in to AddWall() and inspect StandingOn
26:53Run the game, step in to AddWall() and inspect StandingOn
26:53Run the game, step in to AddWall() and inspect StandingOn
28:15handmade_world_mode.cpp: Make AddStandardRoom() set the StandingOn.Entity.Ptr, run the game and see that all is fixed
28:15handmade_world_mode.cpp: Make AddStandardRoom() set the StandingOn.Entity.Ptr, run the game and see that all is fixed
28:15handmade_world_mode.cpp: Make AddStandardRoom() set the StandingOn.Entity.Ptr, run the game and see that all is fixed
30:11Consider how to clean up where arenas are used and how
30:11Consider how to clean up where arenas are used and how
30:11Consider how to clean up where arenas are used and how
35:53Look at all the places a memory_arena is used
35:53Look at all the places a memory_arena is used
35:53Look at all the places a memory_arena is used
40:10Run the game to verify that we're not leaking memory, and leave the arena where it is
40:10Run the game to verify that we're not leaking memory, and leave the arena where it is
40:10Run the game to verify that we're not leaking memory, and leave the arena where it is
42:20Blackboard: Overlapping Sim
42:20Blackboard: Overlapping Sim
42:20Blackboard: Overlapping Sim
46:37build.bat: Run in O2 and consult the profiler to gauge the cost of the simulation
46:37build.bat: Run in O2 and consult the profiler to gauge the cost of the simulation
46:37build.bat: Run in O2 and consult the profiler to gauge the cost of the simulation
50:02handmade_world_mode.cpp: Make PlayWorld() create more rooms, run the game and consider implementing a debug camera that shows multiple sim regions
50:02handmade_world_mode.cpp: Make PlayWorld() create more rooms, run the game and consider implementing a debug camera that shows multiple sim regions
50:02handmade_world_mode.cpp: Make PlayWorld() create more rooms, run the game and consider implementing a debug camera that shows multiple sim regions
52:27handmade_world_mode.cpp: Introduce UpdateAndRenderSimRegion() to do some of the work of UpdateAndRenderWorld()
52:27handmade_world_mode.cpp: Introduce UpdateAndRenderSimRegion() to do some of the work of UpdateAndRenderWorld()
52:27handmade_world_mode.cpp: Introduce UpdateAndRenderSimRegion() to do some of the work of UpdateAndRenderWorld()
1:01:52Q&A
🗩
1:01:52Q&A
🗩
1:01:52Q&A
🗩
1:02:09Run the game and try out the boost pad
1:02:09Run the game and try out the boost pad
1:02:09Run the game and try out the boost pad
1:02:41hadnmade_world_mode.cpp: Make AddStandardRoom() move the boosters down one tile, run the game and check it out
1:02:41hadnmade_world_mode.cpp: Make AddStandardRoom() move the boosters down one tile, run the game and check it out
1:02:41hadnmade_world_mode.cpp: Make AddStandardRoom() move the boosters down one tile, run the game and check it out
1:04:33longboolean Will the switch to 3D affect the artwork for Handmade Hero?
🗪
1:04:33longboolean Will the switch to 3D affect the artwork for Handmade Hero?
🗪
1:04:33longboolean Will the switch to 3D affect the artwork for Handmade Hero?
🗪
1:05:48uliori Can I ask an off-topic question?
🗪
1:05:48uliori Can I ask an off-topic question?
🗪
1:05:48uliori Can I ask an off-topic question?
🗪
1:07:02uliori Hi, I am way behind you in the series, but you talked about "mixin". I don’t know if you did this yet, but can you please explain it?
🗪
1:07:02uliori Hi, I am way behind you in the series, but you talked about "mixin". I don’t know if you did this yet, but can you please explain it?
🗪
1:07:02uliori Hi, I am way behind you in the series, but you talked about "mixin". I don’t know if you did this yet, but can you please explain it?
🗪
1:11:44macielda Are you working on entity interactions soon (like fire weapons vs ice monster, poisonous arrows and stuff like that)?
🗪
1:11:44macielda Are you working on entity interactions soon (like fire weapons vs ice monster, poisonous arrows and stuff like that)?
🗪
1:11:44macielda Are you working on entity interactions soon (like fire weapons vs ice monster, poisonous arrows and stuff like that)?
🗪
1:11:55tinyconstruct (Very off-topic) Can you think of the last time you took a dynamic programming approach to a problem (e.g. shortest edit distance, optimal BSTs, etc)? DP algorithms are allegedly a common interview topic, despite how silly that seems
🗪
1:11:55tinyconstruct (Very off-topic) Can you think of the last time you took a dynamic programming approach to a problem (e.g. shortest edit distance, optimal BSTs, etc)? DP algorithms are allegedly a common interview topic, despite how silly that seems
🗪
1:11:55tinyconstruct (Very off-topic) Can you think of the last time you took a dynamic programming approach to a problem (e.g. shortest edit distance, optimal BSTs, etc)? DP algorithms are allegedly a common interview topic, despite how silly that seems
🗪
1:13:36Blackboard: Divide & Conquer vs Dynamic Programming
1:13:36Blackboard: Divide & Conquer vs Dynamic Programming
1:13:36Blackboard: Divide & Conquer vs Dynamic Programming
1:16:04handmade_render.cpp: Describe RecursiveFrontToBack() as an example of dynamic programming
1:16:04handmade_render.cpp: Describe RecursiveFrontToBack() as an example of dynamic programming
1:16:04handmade_render.cpp: Describe RecursiveFrontToBack() as an example of dynamic programming
1:18:26Miblo How about movable boosters, that you can set up to chain-boost you?
🗪
1:18:26Miblo How about movable boosters, that you can set up to chain-boost you?
🗪
1:18:26Miblo How about movable boosters, that you can set up to chain-boost you?
🗪
1:18:54Consider possibilities for dynamic programming
1:18:54Consider possibilities for dynamic programming
1:18:54Consider possibilities for dynamic programming
1:20:28dsjimenez So part of the dynamic programming question mentioned the coding interview. Do you do one for new hires?
🗪
1:20:28dsjimenez So part of the dynamic programming question mentioned the coding interview. Do you do one for new hires?
🗪
1:20:28dsjimenez So part of the dynamic programming question mentioned the coding interview. Do you do one for new hires?
🗪
1:20:57On asking people about problems
1:20:57On asking people about problems
1:20:57On asking people about problems
1:24:47Chris Hecker's tech interviewing method
1:24:47Chris Hecker's tech interviewing method
1:24:47Chris Hecker's tech interviewing method
1:30:19On putting people on their own turf
1:30:19On putting people on their own turf
1:30:19On putting people on their own turf
1:33:14mvandevander Is there any time that you've talked about deep learning in depth? Also wondering if you've thought about it in terms of IF parsing problems
🗪
1:33:14mvandevander Is there any time that you've talked about deep learning in depth? Also wondering if you've thought about it in terms of IF parsing problems
🗪
1:33:14mvandevander Is there any time that you've talked about deep learning in depth? Also wondering if you've thought about it in terms of IF parsing problems
🗪
1:33:45teryrords Speaking of past jobs, would you rather see a job at a Java shop (industry experience) vs. a local college's faculty for High Performance Computing (academia)?
🗪
1:33:45teryrords Speaking of past jobs, would you rather see a job at a Java shop (industry experience) vs. a local college's faculty for High Performance Computing (academia)?
🗪
1:33:45teryrords Speaking of past jobs, would you rather see a job at a Java shop (industry experience) vs. a local college's faculty for High Performance Computing (academia)?
🗪
1:36:11dsjimenez Great interview answer, thanks. The only issue I've had with that is candidates who have no projects they're proud enough to really talk about, and I feel like I'm judging them unfairly for not having the same interest for programming outside of work / class
🗪
1:36:11dsjimenez Great interview answer, thanks. The only issue I've had with that is candidates who have no projects they're proud enough to really talk about, and I feel like I'm judging them unfairly for not having the same interest for programming outside of work / class
🗪
1:36:11dsjimenez Great interview answer, thanks. The only issue I've had with that is candidates who have no projects they're proud enough to really talk about, and I feel like I'm judging them unfairly for not having the same interest for programming outside of work / class
🗪
1:37:42longboolean What are some things that can cause a smart individual who has a good understanding of programming to not be productive, and what can be done to eliminate these causes?
🗪
1:37:42longboolean What are some things that can cause a smart individual who has a good understanding of programming to not be productive, and what can be done to eliminate these causes?
🗪
1:37:42longboolean What are some things that can cause a smart individual who has a good understanding of programming to not be productive, and what can be done to eliminate these causes?
🗪
1:40:18roam00010011 But people do come with big claims on their resume, you got to at least ask about pointer math if you're hiring a C expert
🗪
1:40:18roam00010011 But people do come with big claims on their resume, you got to at least ask about pointer math if you're hiring a C expert
🗪
1:40:18roam00010011 But people do come with big claims on their resume, you got to at least ask about pointer math if you're hiring a C expert
🗪
1:41:46chochmah Who wouldn't know how to reverse a linked list? You can do that on the spot
🗪
1:41:46chochmah Who wouldn't know how to reverse a linked list? You can do that on the spot
🗪
1:41:46chochmah Who wouldn't know how to reverse a linked list? You can do that on the spot
🗪
1:44:37jkugelman Often I have a hard time digging in to people's past projects because they throw out tons of acronyms, jargon, frameworks, etc., that I'm not familiar with. Maybe they've worked in a completely different industry, like medical or defense, and their work context is totally unfamiliar to me. How do you handle that?
🗪
1:44:37jkugelman Often I have a hard time digging in to people's past projects because they throw out tons of acronyms, jargon, frameworks, etc., that I'm not familiar with. Maybe they've worked in a completely different industry, like medical or defense, and their work context is totally unfamiliar to me. How do you handle that?
🗪
1:44:37jkugelman Often I have a hard time digging in to people's past projects because they throw out tons of acronyms, jargon, frameworks, etc., that I'm not familiar with. Maybe they've worked in a completely different industry, like medical or defense, and their work context is totally unfamiliar to me. How do you handle that?
🗪
1:46:34sssmcgrath I like this interview methodology. Maybe in a chat stream one day you could mock interview someone (me?) as a demonstration
🗪
1:46:34sssmcgrath I like this interview methodology. Maybe in a chat stream one day you could mock interview someone (me?) as a demonstration
🗪
1:46:34sssmcgrath I like this interview methodology. Maybe in a chat stream one day you could mock interview someone (me?) as a demonstration
🗪
1:47:10mvandevander I think we need to title it "Casey Muratori's Enhanced Interview Techniques"
🗪
1:47:10mvandevander I think we need to title it "Casey Muratori's Enhanced Interview Techniques"
🗪
1:47:10mvandevander I think we need to title it "Casey Muratori's Enhanced Interview Techniques"
🗪
1:47:43sssmcgrath I'll do it another day if you want (can't tonight)!
🗪
1:47:43sssmcgrath I'll do it another day if you want (can't tonight)!
🗪
1:47:43sssmcgrath I'll do it another day if you want (can't tonight)!
🗪
1:48:22superjercom This is actually already how I do interviews. The problem is people tend to be totally blindsided by being asked about their own experience
🗪
1:48:22superjercom This is actually already how I do interviews. The problem is people tend to be totally blindsided by being asked about their own experience
🗪
1:48:22superjercom This is actually already how I do interviews. The problem is people tend to be totally blindsided by being asked about their own experience
🗪
1:49:34On how this technique is impervious to hacking
🗩
1:49:34On how this technique is impervious to hacking
🗩
1:49:34On how this technique is impervious to hacking
🗩
1:52:08Gotta go and reboot the machine
🗩
1:52:08Gotta go and reboot the machine
🗩
1:52:08Gotta go and reboot the machine
🗩