Handmade Hero»Episode Guide
Debugging the Cycle Check
?
?

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:13Recap and set the stage for the day
0:13Recap and set the stage for the day
0:13Recap and set the stage for the day
1:19Run the game and show where we left things
1:19Run the game and show where we left things
1:19Run the game and show where we left things
2:06handmade_opengl.cpp: Make OpenGLRenderCommands() draw a black border around the render entries
2:06handmade_opengl.cpp: Make OpenGLRenderCommands() draw a black border around the render entries
2:06handmade_opengl.cpp: Make OpenGLRenderCommands() draw a black border around the render entries
8:21Run the game and see what our outlines are telling us
8:21Run the game and see what our outlines are telling us
8:21Run the game and see what our outlines are telling us
10:18handmade_opengl.cpp and handmade_render.cpp: Look through the collision group drawing routines and consider what could be wrong
10:18handmade_opengl.cpp and handmade_render.cpp: Look through the collision group drawing routines and consider what could be wrong
10:18handmade_opengl.cpp and handmade_render.cpp: Look through the collision group drawing routines and consider what could be wrong
12:15handmade_render.cpp: Rename RecursiveFromToBack() to RecursiveFrontToBack()
12:15handmade_render.cpp: Rename RecursiveFromToBack() to RecursiveFrontToBack()
12:15handmade_render.cpp: Rename RecursiveFromToBack() to RecursiveFrontToBack()
13:14handmade_render.cpp: Make RecursiveFrontToBack() set and check things in the correct order
13:14handmade_render.cpp: Make RecursiveFrontToBack() set and check things in the correct order
13:14handmade_render.cpp: Make RecursiveFrontToBack() set and check things in the correct order
14:20Run the game, see the cycles in our sort graph and investigate them
14:20Run the game, see the cycles in our sort graph and investigate them
14:20Run the game, see the cycles in our sort graph and investigate them
16:34handmade_world_mode.cpp: Make AddStandardRoom() only generate one room, run the game and see what happens with cycles
16:34handmade_world_mode.cpp: Make AddStandardRoom() only generate one room, run the game and see what happens with cycles
16:34handmade_world_mode.cpp: Make AddStandardRoom() only generate one room, run the game and see what happens with cycles
21:02handmade_opengl.cpp: Make OpenGLRenderCommands() draw collision groups lightly, then increase their alpha when they cycle
21:02handmade_opengl.cpp: Make OpenGLRenderCommands() draw collision groups lightly, then increase their alpha when they cycle
21:02handmade_opengl.cpp: Make OpenGLRenderCommands() draw collision groups lightly, then increase their alpha when they cycle
22:02Run the game and view the cycles
22:02Run the game and view the cycles
22:02Run the game and view the cycles
23:52Consider how we're doing the sorting in the first place
23:52Consider how we're doing the sorting in the first place
23:52Consider how we're doing the sorting in the first place
27:18Continue to investigate what's happening with the cycles
27:18Continue to investigate what's happening with the cycles
27:18Continue to investigate what's happening with the cycles
29:34handmade_render_group.cpp: Change where PushRectOutline() draws the four edge rectangles
29:34handmade_render_group.cpp: Change where PushRectOutline() draws the four edge rectangles
29:34handmade_render_group.cpp: Change where PushRectOutline() draws the four edge rectangles
31:03Blackboard: Drawing an outline out of non-intersecting rectangles
31:03Blackboard: Drawing an outline out of non-intersecting rectangles
31:03Blackboard: Drawing an outline out of non-intersecting rectangles
35:14Blackboard: What RectanglesIntersect() is currently doing
35:14Blackboard: What RectanglesIntersect() is currently doing
35:14Blackboard: What RectanglesIntersect() is currently doing
37:06handmade_render_group.cpp: Make PushRectOuline() add an epsilon into the equation
37:06handmade_render_group.cpp: Make PushRectOuline() add an epsilon into the equation
37:06handmade_render_group.cpp: Make PushRectOuline() add an epsilon into the equation
37:31Run the game, see that our outlines no longer cause a cycle, but that our hero still does
37:31Run the game, see that our outlines no longer cause a cycle, but that our hero still does
37:31Run the game, see that our outlines no longer cause a cycle, but that our hero still does
44:05handmade_debug.cpp: Make DEBUGEnd() draw one character, run the game and step through SortEntries
44:05handmade_debug.cpp: Make DEBUGEnd() draw one character, run the game and step through SortEntries
44:05handmade_debug.cpp: Make DEBUGEnd() draw one character, run the game and step through SortEntries
47:29handmade_render_group.cpp: Make GetBoundFor() use the SortBias
47:29handmade_render_group.cpp: Make GetBoundFor() use the SortBias
47:29handmade_render_group.cpp: Make GetBoundFor() use the SortBias
48:51Run the game and see that the debug text is now correctly sorted
48:51Run the game and see that the debug text is now correctly sorted
48:51Run the game and see that the debug text is now correctly sorted
51:07handmade_render.cpp: Look at IsInFrontOf()
51:07handmade_render.cpp: Look at IsInFrontOf()
51:07handmade_render.cpp: Look at IsInFrontOf()
54:07Blackboard: How IsInFrontOf() is working
54:07Blackboard: How IsInFrontOf() is working
54:07Blackboard: How IsInFrontOf() is working
55:30Run the game and illustrate the possibility that we may actually be in okay shape here
55:30Run the game and illustrate the possibility that we may actually be in okay shape here
55:30Run the game and illustrate the possibility that we may actually be in okay shape here
56:50handmade_world_mode.cpp: Toggle AddMonstar() and AddFamiliar() back on
56:50handmade_world_mode.cpp: Toggle AddMonstar() and AddFamiliar() back on
56:50handmade_world_mode.cpp: Toggle AddMonstar() and AddFamiliar() back on
58:02Q&A
🗩
58:02Q&A
🗩
58:02Q&A
🗩
59:05insobot I couldn't drop that into The Witness, then. FailFish Really. Kappa?
🗪
59:05insobot I couldn't drop that into The Witness, then. FailFish Really. Kappa?
🗪
59:05insobot I couldn't drop that into The Witness, then. FailFish Really. Kappa?
🗪
59:26blah238 It looks like the torso sprite occasionally draws on top of the head sprite, e.g. going up stairs
🗪
59:26blah238 It looks like the torso sprite occasionally draws on top of the head sprite, e.g. going up stairs
🗪
59:26blah238 It looks like the torso sprite occasionally draws on top of the head sprite, e.g. going up stairs
🗪
1:00:01Blackboard: How the hero is constructed
1:00:01Blackboard: How the hero is constructed
1:00:01Blackboard: How the hero is constructed
1:01:18roam00010011 Does collision work between stairs and hero? Because body under and head above the stairs should not happen
🗪
1:01:18roam00010011 Does collision work between stairs and hero? Because body under and head above the stairs should not happen
🗪
1:01:18roam00010011 Does collision work between stairs and hero? Because body under and head above the stairs should not happen
🗪
1:04:09bryanwwag Do you anticipate similar (if not identical) graph sorting would be used for any other game purpose (other than sprite sort)?
🗪
1:04:09bryanwwag Do you anticipate similar (if not identical) graph sorting would be used for any other game purpose (other than sprite sort)?
🗪
1:04:09bryanwwag Do you anticipate similar (if not identical) graph sorting would be used for any other game purpose (other than sprite sort)?
🗪
1:05:40thesgmastr What language is this?
🗪
1:05:40thesgmastr What language is this?
🗪
1:05:40thesgmastr What language is this?
🗪
1:06:40thesgmastr What are a few pieces of advice you would give to a new programmer?
🗪
1:06:40thesgmastr What are a few pieces of advice you would give to a new programmer?
🗪
1:06:40thesgmastr What are a few pieces of advice you would give to a new programmer?
🗪
1:09:05xendash What is your estimate time it will take for you to finish Handmade Hero? And how different is it from the original estimate? (I assume you are about halfway)
🗪
1:09:05xendash What is your estimate time it will take for you to finish Handmade Hero? And how different is it from the original estimate? (I assume you are about halfway)
🗪
1:09:05xendash What is your estimate time it will take for you to finish Handmade Hero? And how different is it from the original estimate? (I assume you are about halfway)
🗪
1:12:53roam00010011 Off-topic: At the start of the show, you said that every game programmer uses a dev setup similar to what we use: debug with Visual Studio, but code with a different editor. Why?
🗪
1:12:53roam00010011 Off-topic: At the start of the show, you said that every game programmer uses a dev setup similar to what we use: debug with Visual Studio, but code with a different editor. Why?
🗪
1:12:53roam00010011 Off-topic: At the start of the show, you said that every game programmer uses a dev setup similar to what we use: debug with Visual Studio, but code with a different editor. Why?
🗪
1:15:05filiadelski Are you enjoying this project as a programming challenge or are your efforts mainly put into the teaching part of it?
🗪
1:15:05filiadelski Are you enjoying this project as a programming challenge or are your efforts mainly put into the teaching part of it?
🗪
1:15:05filiadelski Are you enjoying this project as a programming challenge or are your efforts mainly put into the teaching part of it?
🗪
1:17:12melg1 What do you think about unit testing and test driven development applied to C++ code? Is this technique really useful and worth trying?
🗪
1:17:12melg1 What do you think about unit testing and test driven development applied to C++ code? Is this technique really useful and worth trying?
🗪
1:17:12melg1 What do you think about unit testing and test driven development applied to C++ code? Is this technique really useful and worth trying?
🗪
1:26:42roam00010011 It's because you are the only programmer! When working in a team that will use your code, you need const
🗪
1:26:42roam00010011 It's because you are the only programmer! When working in a team that will use your code, you need const
🗪
1:26:42roam00010011 It's because you are the only programmer! When working in a team that will use your code, you need const
🗪
1:29:24sssmcgrath I programmed in 100% const correct for 5 years. Never again
🗪
1:29:24sssmcgrath I programmed in 100% const correct for 5 years. Never again
🗪
1:29:24sssmcgrath I programmed in 100% const correct for 5 years. Never again
🗪
1:29:41Close it on out
🗩
1:29:41Close it on out
🗩
1:29:41Close it on out
🗩