Handmade Hero»Episode Guide
Confirming No Total Ordering
?
?

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)
1:15handmade_render_group.cpp: Correctly compute the SpriteBound values in GetBoundFor()
1:15handmade_render_group.cpp: Correctly compute the SpriteBound values in GetBoundFor()
1:15handmade_render_group.cpp: Correctly compute the SpriteBound values in GetBoundFor()
2:23Recap and set the stage for the day
2:23Recap and set the stage for the day
2:23Recap and set the stage for the day
6:42handmade_render_group.cpp: Enable SortEntries() to do a total ordering check
6:42handmade_render_group.cpp: Enable SortEntries() to do a total ordering check
6:42handmade_render_group.cpp: Enable SortEntries() to do a total ordering check
12:14Run the game, try doing the new check and hit our Assertion
12:14Run the game, try doing the new check and hit our Assertion
12:14Run the game, try doing the new check and hit our Assertion
12:46Debugger: Inspect the SortKey values for EntryA and EntryB
12:46Debugger: Inspect the SortKey values for EntryA and EntryB
12:46Debugger: Inspect the SortKey values for EntryA and EntryB
15:28handmade_sort.cpp: Temporarily change the Assert in SortEntries() to a BreakHere, and count the SortErrors
15:28handmade_sort.cpp: Temporarily change the Assert in SortEntries() to a BreakHere, and count the SortErrors
15:28handmade_sort.cpp: Temporarily change the Assert in SortEntries() to a BreakHere, and count the SortErrors
17:22Debugger: Break into SortEntries() to see how many sort errors there were
17:22Debugger: Break into SortEntries() to see how many sort errors there were
17:22Debugger: Break into SortEntries() to see how many sort errors there were
18:13Blackboard: Sort Partial Ordering Problem
18:13Blackboard: Sort Partial Ordering Problem
18:13Blackboard: Sort Partial Ordering Problem
20:43Blackboard: Turning our Partial Ordering into a Total Ordering
20:43Blackboard: Turning our Partial Ordering into a Total Ordering
20:43Blackboard: Turning our Partial Ordering into a Total Ordering
24:00handmade_sort.cpp: Consider making IsInFrontOf() sort by distance from the camera
24:00handmade_sort.cpp: Consider making IsInFrontOf() sort by distance from the camera
24:00handmade_sort.cpp: Consider making IsInFrontOf() sort by distance from the camera
26:20Blackboard: Sorting by distance from the camera
26:20Blackboard: Sorting by distance from the camera
26:20Blackboard: Sorting by distance from the camera
29:43Blackboard: Orthographic camera
29:43Blackboard: Orthographic camera
29:43Blackboard: Orthographic camera
32:55Blackboard: Will taking the topmost point of cards be sufficient?
32:55Blackboard: Will taking the topmost point of cards be sufficient?
32:55Blackboard: Will taking the topmost point of cards be sufficient?
35:25handmade_sort.cpp: Introduce BuildSpriteGraph()
35:25handmade_sort.cpp: Introduce BuildSpriteGraph()
35:25handmade_sort.cpp: Introduce BuildSpriteGraph()
40:50Blackboard: Graph Theory
40:50Blackboard: Graph Theory
40:50Blackboard: Graph Theory
43:14Blackboard: Directed Graph
43:14Blackboard: Directed Graph
43:14Blackboard: Directed Graph
44:27Blackboard: Directed Acyclic Graph
44:27Blackboard: Directed Acyclic Graph
44:27Blackboard: Directed Acyclic Graph
46:43handmade_sort.cpp: Continue implementing BuildSpriteGraph()
46:43handmade_sort.cpp: Continue implementing BuildSpriteGraph()
46:43handmade_sort.cpp: Continue implementing BuildSpriteGraph()
49:45handmade_math.h: Introduce a version of RectanglesIntersect() that takes rectangle2
49:45handmade_math.h: Introduce a version of RectanglesIntersect() that takes rectangle2
49:45handmade_math.h: Introduce a version of RectanglesIntersect() that takes rectangle2
52:31handmade_sort.cpp: Consider partitioning the screen in order to build this graph and potentially using the Z-buffer
52:31handmade_sort.cpp: Consider partitioning the screen in order to build this graph and potentially using the Z-buffer
52:31handmade_sort.cpp: Consider partitioning the screen in order to build this graph and potentially using the Z-buffer
55:40handmade_sort.cpp: Consider leveraging the screen partitioning in order to optimise the software renderer
55:40handmade_sort.cpp: Consider leveraging the screen partitioning in order to optimise the software renderer
55:40handmade_sort.cpp: Consider leveraging the screen partitioning in order to optimise the software renderer
56:15Q&A
🗩
56:15Q&A
🗩
56:15Q&A
🗩
57:03roam00010011 How much more work would you have to do to get a full 3D sorting?
🗪
57:03roam00010011 How much more work would you have to do to get a full 3D sorting?
🗪
57:03roam00010011 How much more work would you have to do to get a full 3D sorting?
🗪
58:47roam00010011 I mean, use fake 3D data, since our cards are essentially flat, we can give an epsilon width to it for the sorting
🗪
58:47roam00010011 I mean, use fake 3D data, since our cards are essentially flat, we can give an epsilon width to it for the sorting
🗪
58:47roam00010011 I mean, use fake 3D data, since our cards are essentially flat, we can give an epsilon width to it for the sorting
🗪
59:15Blackboard: Sorting 3D objects
59:15Blackboard: Sorting 3D objects
59:15Blackboard: Sorting 3D objects
1:02:38Blackboard: Sorting all entities in a linear total ordering
1:02:38Blackboard: Sorting all entities in a linear total ordering
1:02:38Blackboard: Sorting all entities in a linear total ordering
1:10:55Blackboard: Common problematic cases in Handmade Hero
1:10:55Blackboard: Common problematic cases in Handmade Hero
1:10:55Blackboard: Common problematic cases in Handmade Hero
1:14:23insofaras Sorry if this was already answered, but what was the issue with a "return a_z != b_z ? a_z - b_z : a_y - b_y" style total ordering?
🗪
1:14:23insofaras Sorry if this was already answered, but what was the issue with a "return a_z != b_z ? a_z - b_z : a_y - b_y" style total ordering?
🗪
1:14:23insofaras Sorry if this was already answered, but what was the issue with a "return a_z != b_z ? a_z - b_z : a_y - b_y" style total ordering?
🗪
1:14:41Blackboard: The problem with sorting heroes behind walls on rugs on tiles
1:14:41Blackboard: The problem with sorting heroes behind walls on rugs on tiles
1:14:41Blackboard: The problem with sorting heroes behind walls on rugs on tiles
1:19:02insofaras Would the Y then Z sort work if Z is quantized to room layers, and sprites are split where they cross layers (and maybe the ground is special cased)?
🗪
1:19:02insofaras Would the Y then Z sort work if Z is quantized to room layers, and sprites are split where they cross layers (and maybe the ground is special cased)?
🗪
1:19:02insofaras Would the Y then Z sort work if Z is quantized to room layers, and sprites are split where they cross layers (and maybe the ground is special cased)?
🗪
1:20:10Wind it down
🗩
1:20:10Wind it down
🗩
1:20:10Wind it down
🗩