Handmade Hero»Episode Guide
Introduction to Game Architecture
?
?

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:00First day of Programming the Actual Game
0:00First day of Programming the Actual Game
0:00First day of Programming the Actual Game
2:56We'll know how everything happens above the platform layer
2:56We'll know how everything happens above the platform layer
2:56We'll know how everything happens above the platform layer
6:05Software Architecture
6:05Software Architecture
6:05Software Architecture
6:50...vs. Real Architecture
6:50...vs. Real Architecture
6:50...vs. Real Architecture
9:40Taking the metaphor literally: UML as Blueprint
9:40Taking the metaphor literally: UML as Blueprint
9:40Taking the metaphor literally: UML as Blueprint
11:00The problem with that
11:00The problem with that
11:00The problem with that
13:17An alternative view: Software Designer as Urban Planner
13:17An alternative view: Software Designer as Urban Planner
13:17An alternative view: Software Designer as Urban Planner
15:15The freedom of software: malleable architecture
15:15The freedom of software: malleable architecture
15:15The freedom of software: malleable architecture
17:25Software Design: How the city works
17:25Software Design: How the city works
17:25Software Design: How the city works
20:35The Art of Defining Boundaries
20:35The Art of Defining Boundaries
20:35The Art of Defining Boundaries
21:36Why you want boundaries
21:36Why you want boundaries
21:36Why you want boundaries
25:41Metrics for Architecture
25:41Metrics for Architecture
25:41Metrics for Architecture
34:12Game Architecture
34:12Game Architecture
34:12Game Architecture
34:55What we've done
34:55What we've done
34:55What we've done
38:07What's to come
38:07What's to come
38:07What's to come
39:05Principles
39:05Principles
39:05Principles
42:28Input->Update->Render
42:28Input->Update->Render
42:28Input->Update->Render
44:54Coupling and the Cache
44:54Coupling and the Cache
44:54Coupling and the Cache
48:54Resources: Load vs Stream
48:54Resources: Load vs Stream
48:54Resources: Load vs Stream
55:58Immediate mode vs. Retained mode
55:58Immediate mode vs. Retained mode
55:58Immediate mode vs. Retained mode
1:03:00Is Immediate Mode/Retained Mode like IoC (inversion of control) / Dependency Injection [n.b. No it's not -ed]
1:03:00Is Immediate Mode/Retained Mode like IoC (inversion of control) / Dependency Injection [n.b. No it's not -ed]
1:03:00Is Immediate Mode/Retained Mode like IoC (inversion of control) / Dependency Injection [n.b. No it's not -ed]
1:03:14Is it okay that we're using a fixed time step when users might not make 30fps?
1:03:14Is it okay that we're using a fixed time step when users might not make 30fps?
1:03:14Is it okay that we're using a fixed time step when users might not make 30fps?
1:04:20Game won't run at a fixed timestep: we'll take in t as a param
1:04:20Game won't run at a fixed timestep: we'll take in t as a param
1:04:20Game won't run at a fixed timestep: we'll take in t as a param
1:05:05Are you going to work with Virtual File Systems to store resources?
1:05:05Are you going to work with Virtual File Systems to store resources?
1:05:05Are you going to work with Virtual File Systems to store resources?
1:05:34On rendering while updating: What about when the render of something at the top of update() would've changed if we'd known about something that's at the bottom?
1:05:34On rendering while updating: What about when the render of something at the top of update() would've changed if we'd known about something that's at the bottom?
1:05:34On rendering while updating: What about when the render of something at the top of update() would've changed if we'd known about something that's at the bottom?
1:06:25Update dependencies are a general problem that should be solved by the architect
1:06:25Update dependencies are a general problem that should be solved by the architect
1:06:25Update dependencies are a general problem that should be solved by the architect
1:07:25What happens when you need to render in a different order than you update?
1:07:25What happens when you need to render in a different order than you update?
1:07:25What happens when you need to render in a different order than you update?
1:08:14Explain the variable, demands Naysayer88
1:08:14Explain the variable, demands Naysayer88
1:08:14Explain the variable, demands Naysayer88
1:09:16How do you handle update/render at different frame rates?
1:09:16How do you handle update/render at different frame rates?
1:09:16How do you handle update/render at different frame rates?
1:10:00When you say do update/render together, do you mean do it per entity?
1:10:00When you say do update/render together, do you mean do it per entity?
1:10:00When you say do update/render together, do you mean do it per entity?
1:10:35Are we planning on networking?
1:10:35Are we planning on networking?
1:10:35Are we planning on networking?
1:11:00How are you going to handle shaders?
1:11:00How are you going to handle shaders?
1:11:00How are you going to handle shaders?
1:11:11What language are you using primarily? Where can we view old streams?
1:11:11What language are you using primarily? Where can we view old streams?
1:11:11What language are you using primarily? Where can we view old streams?
1:12:10Would a memory mapped virtual filesystem be a bad move?
1:12:10Would a memory mapped virtual filesystem be a bad move?
1:12:10Would a memory mapped virtual filesystem be a bad move?
1:13:39Will handmade use loading or streaming?
1:13:39Will handmade use loading or streaming?
1:13:39Will handmade use loading or streaming?
1:13:52Can you go over how streaming fits in to the GUAR?
1:13:52Can you go over how streaming fits in to the GUAR?
1:13:52Can you go over how streaming fits in to the GUAR?
1:15:09Will combining update and render limit multithreading?
1:15:09Will combining update and render limit multithreading?
1:15:09Will combining update and render limit multithreading?
1:16:47Treatise on threading
1:16:47Treatise on threading
1:16:47Treatise on threading
1:20:43Since the eye can only see at 70fps [citation needed -ed], should we set a max fps?
1:20:43Since the eye can only see at 70fps [citation needed -ed], should we set a max fps?
1:20:43Since the eye can only see at 70fps [citation needed -ed], should we set a max fps?
1:21:28How will we handle vsync?
1:21:28How will we handle vsync?
1:21:28How will we handle vsync?
1:22:08Couldn't you store groups together to win some on a split update / render?
1:22:08Couldn't you store groups together to win some on a split update / render?
1:22:08Couldn't you store groups together to win some on a split update / render?
1:23:25Async job system?
1:23:25Async job system?
1:23:25Async job system?
1:24:20Whennn willl youuu worrrkkk onnn theee gammmeeee?!?!?!?!?!11!!
1:24:20Whennn willl youuu worrrkkk onnn theee gammmeeee?!?!?!?!?!11!!
1:24:20Whennn willl youuu worrrkkk onnn theee gammmeeee?!?!?!?!?!11!!
1:24:53Will we make a physics engine?
1:24:53Will we make a physics engine?
1:24:53Will we make a physics engine?
1:25:17Is it okay to post a js/html5 port on my github?
1:25:17Is it okay to post a js/html5 port on my github?
1:25:17Is it okay to post a js/html5 port on my github?
1:26:54Thanks / Next time on... / Holiday Hours
🗩
1:26:54Thanks / Next time on... / Holiday Hours
🗩
1:26:54Thanks / Next time on... / Holiday Hours
🗩