Handmade Hero»Episode Guide
Z Movement and Camera Motion
?
?

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)
2:40Run the game and show where we're at
2:40Run the game and show where we're at
2:40Run the game and show where we're at
5:49handmade_world_mode.cpp: Randomise the heights of the traversable points
5:49handmade_world_mode.cpp: Randomise the heights of the traversable points
5:49handmade_world_mode.cpp: Randomise the heights of the traversable points
9:45Run the game and traverse the room
9:45Run the game and traverse the room
9:45Run the game and traverse the room
13:33handmade_sim_region.cpp: Provide the ability to interpolate the camera's height
13:33handmade_sim_region.cpp: Provide the ability to interpolate the camera's height
13:33handmade_sim_region.cpp: Provide the ability to interpolate the camera's height
17:324coder: Spot a potential bug with a space being inserted after a square-bracket
17:324coder: Spot a potential bug with a space being inserted after a square-bracket
17:324coder: Spot a potential bug with a space being inserted after a square-bracket
19:33handmade_sim_region.cpp: Make AddStandardRoom form a ramp
19:33handmade_sim_region.cpp: Make AddStandardRoom form a ramp
19:33handmade_sim_region.cpp: Make AddStandardRoom form a ramp
20:58Run the game and attempt to hop up the ramp
20:58Run the game and attempt to hop up the ramp
20:58Run the game and attempt to hop up the ramp
23:24handmade_world_mode.cpp: Set HeadToPoint.z to 0
23:24handmade_world_mode.cpp: Set HeadToPoint.z to 0
23:24handmade_world_mode.cpp: Set HeadToPoint.z to 0
23:50Run the game and find that we can now hop upwards
23:50Run the game and find that we can now hop upwards
23:50Run the game and find that we can now hop upwards
25:08handmade_world_mode.cpp: Make AddStandardRoom produce a shallower ramp
25:08handmade_world_mode.cpp: Make AddStandardRoom produce a shallower ramp
25:08handmade_world_mode.cpp: Make AddStandardRoom produce a shallower ramp
25:39Run the game and traverse the shallower ramp
25:39Run the game and traverse the shallower ramp
25:39Run the game and traverse the shallower ramp
26:32handmade_world_mode.cpp: Comment out the HeadToPoint.z setting and again traverse the shallower ramp
26:32handmade_world_mode.cpp: Comment out the HeadToPoint.z setting and again traverse the shallower ramp
26:32handmade_world_mode.cpp: Comment out the HeadToPoint.z setting and again traverse the shallower ramp
28:26handmade_world_mode.cpp: Compute the HeadToPoint in order to prefer traversable points in the XY plane
28:26handmade_world_mode.cpp: Compute the HeadToPoint in order to prefer traversable points in the XY plane
28:26handmade_world_mode.cpp: Compute the HeadToPoint in order to prefer traversable points in the XY plane
31:00Run the game and traverse the world
31:00Run the game and traverse the world
31:00Run the game and traverse the world
33:18Blackboard: The Plan for Final Z
33:18Blackboard: The Plan for Final Z
33:18Blackboard: The Plan for Final Z
37:17handmade_world_mode.cpp: Let the ramp go below 0 and traverse it in an effort to see the alpha-fade
37:17handmade_world_mode.cpp: Let the ramp go below 0 and traverse it in an effort to see the alpha-fade
37:17handmade_world_mode.cpp: Let the ramp go below 0 and traverse it in an effort to see the alpha-fade
39:09handmade_world_mode.cpp: Investigate why the alpha-fade is not happening
39:09handmade_world_mode.cpp: Investigate why the alpha-fade is not happening
39:09handmade_world_mode.cpp: Investigate why the alpha-fade is not happening
41:07Debugger: Break on CameraRelativeGroupP initialisation and inspect the values
41:07Debugger: Break on CameraRelativeGroupP initialisation and inspect the values
41:07Debugger: Break on CameraRelativeGroupP initialisation and inspect the values
43:34handmade_world_mode.cpp: Only create one room
43:34handmade_world_mode.cpp: Only create one room
43:34handmade_world_mode.cpp: Only create one room
46:21handmade_world_mode.cpp: Add a DEBUG_VALUE for CameraRelativeGroundP to the HeroHead
46:21handmade_world_mode.cpp: Add a DEBUG_VALUE for CameraRelativeGroundP to the HeroHead
46:21handmade_world_mode.cpp: Add a DEBUG_VALUE for CameraRelativeGroundP to the HeroHead
46:50Run the game, traverse the ramp and watch that CameraRelativeGroundP
46:50Run the game, traverse the ramp and watch that CameraRelativeGroundP
46:50Run the game, traverse the ramp and watch that CameraRelativeGroundP
47:49handmade_world_mode.cpp: Add that DEBUG_VALUE to the Monstar
47:49handmade_world_mode.cpp: Add that DEBUG_VALUE to the Monstar
47:49handmade_world_mode.cpp: Add that DEBUG_VALUE to the Monstar
48:23Run the game and note that we don't load in the world one layer above us
48:23Run the game and note that we don't load in the world one layer above us
48:23Run the game and note that we don't load in the world one layer above us
49:08handmade_world_mode.cpp: Add fifteen floors to the SimBoundsExpansion
49:08handmade_world_mode.cpp: Add fifteen floors to the SimBoundsExpansion
49:08handmade_world_mode.cpp: Add fifteen floors to the SimBoundsExpansion
49:43Run the game and find that the alpha-fade is working
49:43Run the game and find that the alpha-fade is working
49:43Run the game and find that the alpha-fade is working
50:22handmade_world_mode.cpp: Add another column of trees to the room
50:22handmade_world_mode.cpp: Add another column of trees to the room
50:22handmade_world_mode.cpp: Add another column of trees to the room
51:43Run the game, trigger the fade and explain the problem with alpha blending multiple faded entities
51:43Run the game, trigger the fade and explain the problem with alpha blending multiple faded entities
51:43Run the game, trigger the fade and explain the problem with alpha blending multiple faded entities
55:04handmade_render_group.h: Consider ways to blend the alpha
55:04handmade_render_group.h: Consider ways to blend the alpha
55:04handmade_render_group.h: Consider ways to blend the alpha
58:24Q&A
🗩
58:24Q&A
🗩
58:24Q&A
🗩
59:04Miblo That up / down camera movement looks so cool. I do hope the terrain height of the rooms makes good use of this
🗪
59:04Miblo That up / down camera movement looks so cool. I do hope the terrain height of the rooms makes good use of this
🗪
59:04Miblo That up / down camera movement looks so cool. I do hope the terrain height of the rooms makes good use of this
🗪
59:42insofaras Could you do something with GL_MIN / GL_MAX blend equation for the alpha?
🗪
59:42insofaras Could you do something with GL_MIN / GL_MAX blend equation for the alpha?
🗪
59:42insofaras Could you do something with GL_MIN / GL_MAX blend equation for the alpha?
🗪
1:03:12deras007 Can you create the word of warcraft game?
🗪
1:03:12deras007 Can you create the word of warcraft game?
🗪
1:03:12deras007 Can you create the word of warcraft game?
🗪
1:04:19d7 If the contour of your entities wasn't antialiased, you could have used the depth buffer and reverse the render order for the entities being faded (front to back), but alas, it is hard to do properly with the alpha blending around the contours
🗪
1:04:19d7 If the contour of your entities wasn't antialiased, you could have used the depth buffer and reverse the render order for the entities being faded (front to back), but alas, it is hard to do properly with the alpha blending around the contours
🗪
1:04:19d7 If the contour of your entities wasn't antialiased, you could have used the depth buffer and reverse the render order for the entities being faded (front to back), but alas, it is hard to do properly with the alpha blending around the contours
🗪
1:05:50evraire You mentioned rendering to an offscreen buffer then compositing as one means of getting the desired alpha effect, but you also mentioned something along the lines of using a "fragment list"? could you please elaborate a bit more on that approach?
🗪
1:05:50evraire You mentioned rendering to an offscreen buffer then compositing as one means of getting the desired alpha effect, but you also mentioned something along the lines of using a "fragment list"? could you please elaborate a bit more on that approach?
🗪
1:05:50evraire You mentioned rendering to an offscreen buffer then compositing as one means of getting the desired alpha effect, but you also mentioned something along the lines of using a "fragment list"? could you please elaborate a bit more on that approach?
🗪
1:06:23Blackboard: Per-fragment atomic lists
1:06:23Blackboard: Per-fragment atomic lists
1:06:23Blackboard: Per-fragment atomic lists
1:18:08cubercaleb That sounds insane. Are there any modern games that use this?
🗪
1:18:08cubercaleb That sounds insane. Are there any modern games that use this?
🗪
1:18:08cubercaleb That sounds insane. Are there any modern games that use this?
🗪
1:18:52quikligames Could you just pre-render normally to an offscreen buffer, and then composite it with the primary frame buffer with the fade-out alpha?
🗪
1:18:52quikligames Could you just pre-render normally to an offscreen buffer, and then composite it with the primary frame buffer with the fade-out alpha?
🗪
1:18:52quikligames Could you just pre-render normally to an offscreen buffer, and then composite it with the primary frame buffer with the fade-out alpha?
🗪
1:19:22d7 If the antialiasing didn't throw a wrench, you could have used the depth-buffer-front-to-back rendering method all the way, and compensate for some of the extra bandwidth on less overdraw
🗪
1:19:22d7 If the antialiasing didn't throw a wrench, you could have used the depth-buffer-front-to-back rendering method all the way, and compensate for some of the extra bandwidth on less overdraw
🗪
1:19:22d7 If the antialiasing didn't throw a wrench, you could have used the depth-buffer-front-to-back rendering method all the way, and compensate for some of the extra bandwidth on less overdraw
🗪
1:20:36cubercaleb I mean that sounds like it has huge performance implications
🗪
1:20:36cubercaleb I mean that sounds like it has huge performance implications
🗪
1:20:36cubercaleb I mean that sounds like it has huge performance implications
🗪
1:23:59sssmcgrath Speaking of your smoke example, did you see what David Rosen posted today?1
🗪
1:23:59sssmcgrath Speaking of your smoke example, did you see what David Rosen posted today?1
🗪
1:23:59sssmcgrath Speaking of your smoke example, did you see what David Rosen posted today?1
🗪
1:24:58cosmiczord I thought most games were only designed to max out console hardware?
🗪
1:24:58cosmiczord I thought most games were only designed to max out console hardware?
🗪
1:24:58cosmiczord I thought most games were only designed to max out console hardware?
🗪
1:25:55Wrap it up
🗩
1:25:55Wrap it up
🗩
1:25:55Wrap it up
🗩