Handmade Hero»Episode Guide
Handling Multiple Metagame Modes
?
?

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:03Intro, plans
0:03Intro, plans
0:03Intro, plans
1:19Description of the 'meta-game' elements that Handmade Hero needs
1:19Description of the 'meta-game' elements that Handmade Hero needs
1:19Description of the 'meta-game' elements that Handmade Hero needs
4:54Setting up, compiling and running the current state of the game
4:54Setting up, compiling and running the current state of the game
4:54Setting up, compiling and running the current state of the game
6:21Choosing the first programming task for today
6:21Choosing the first programming task for today
6:21Choosing the first programming task for today
7:30Reviewing the cut-scene code
7:30Reviewing the cut-scene code
7:30Reviewing the cut-scene code
11:36Adding the concept of game modes
11:36Adding the concept of game modes
11:36Adding the concept of game modes
14:32Adding a union to game_state to hold individual state for each game mode
14:32Adding a union to game_state to hold individual state for each game mode
14:32Adding a union to game_state to hold individual state for each game mode
16:54Changing UpdateAndRenderGame to dispatch to other functions based on the current game mode
16:54Changing UpdateAndRenderGame to dispatch to other functions based on the current game mode
16:54Changing UpdateAndRenderGame to dispatch to other functions based on the current game mode
21:33Modifying the cut-scene code to use the new game mode concept
21:33Modifying the cut-scene code to use the new game mode concept
21:33Modifying the cut-scene code to use the new game mode concept
25:37Begin implementing the switching between game modes
25:37Begin implementing the switching between game modes
25:37Begin implementing the switching between game modes
27:27Changing the WorldArena in the game_state to ModeArena, to be used by all game modes
27:27Changing the WorldArena in the game_state to ModeArena, to be used by all game modes
27:27Changing the WorldArena in the game_state to ModeArena, to be used by all game modes
29:34Determining how parameters will be passed to game modes when switching between them
29:34Determining how parameters will be passed to game modes when switching between them
29:34Determining how parameters will be passed to game modes when switching between them
31:03Letting the caller of SetGameMode do the initialization of the new mode, to avoid having to pass unnecessary parameters
31:03Letting the caller of SetGameMode do the initialization of the new mode, to avoid having to pass unnecessary parameters
31:03Letting the caller of SetGameMode do the initialization of the new mode, to avoid having to pass unnecessary parameters
33:40Creating an arena in the World struct, for exclusive use by the main World game mode, instead of having it use the arena in the game_state struct
33:40Creating an arena in the World struct, for exclusive use by the main World game mode, instead of having it use the arena in the game_state struct
33:40Creating an arena in the World struct, for exclusive use by the main World game mode, instead of having it use the arena in the game_state struct
35:46Exposing the SetGameMode function, and updating PlayIntroCutscene and PlayTitleScreen to use the ModeArena
35:46Exposing the SetGameMode function, and updating PlayIntroCutscene and PlayTitleScreen to use the ModeArena
35:46Exposing the SetGameMode function, and updating PlayIntroCutscene and PlayTitleScreen to use the ModeArena
36:18Making world based functions use the new world-specific arena
36:18Making world based functions use the new world-specific arena
36:18Making world based functions use the new world-specific arena
37:21Finish implementing the game mode switch statement in UpdateAndRenderGame
37:21Finish implementing the game mode switch statement in UpdateAndRenderGame
37:21Finish implementing the game mode switch statement in UpdateAndRenderGame
38:34Adding initialization code for the world-specific arena
38:34Adding initialization code for the world-specific arena
38:34Adding initialization code for the world-specific arena
41:06Re-organising the main World game code to be in functions specific to the new World game mode
41:06Re-organising the main World game code to be in functions specific to the new World game mode
41:06Re-organising the main World game code to be in functions specific to the new World game mode
44:01Running the game to see how the new code is working
44:01Running the game to see how the new code is working
44:01Running the game to see how the new code is working
45:02Separating out the persistent elements of game_state from those specific to the World game mode
45:02Separating out the persistent elements of game_state from those specific to the World game mode
45:02Separating out the persistent elements of game_state from those specific to the World game mode
48:23Moving things around to more appropriate files and to appease the compiler
48:23Moving things around to more appropriate files and to appease the compiler
48:23Moving things around to more appropriate files and to appease the compiler
53:59Changing many world-specific functions to work with a game_mode_world struct instead of the game_state struct
53:59Changing many world-specific functions to work with a game_mode_world struct instead of the game_state struct
53:59Changing many world-specific functions to work with a game_mode_world struct instead of the game_state struct
1:01:46Adjusting the creation of memory arenas in the initialization code
1:01:46Adjusting the creation of memory arenas in the initialization code
1:01:46Adjusting the creation of memory arenas in the initialization code
1:05:14Fixing the remaining compile errors
1:05:14Fixing the remaining compile errors
1:05:14Fixing the remaining compile errors
1:06:41Out of time, running the game with the world mode currently inaccessible until the cleanup work is completed at a later date
1:06:41Out of time, running the game with the world mode currently inaccessible until the cleanup work is completed at a later date
1:06:41Out of time, running the game with the world mode currently inaccessible until the cleanup work is completed at a later date
1:07:08Q&A
🗩
1:07:08Q&A
🗩
1:07:08Q&A
🗩
1:08:07actbinary How do the memory areas work?
🗪
1:08:07actbinary How do the memory areas work?
🗪
1:08:07actbinary How do the memory areas work?
🗪
1:08:31blah238 Well since no one's asking, have you heard about AMD open sourcing a lot of their GPU stuff?
🗪
1:08:31blah238 Well since no one's asking, have you heard about AMD open sourcing a lot of their GPU stuff?
🗪
1:08:31blah238 Well since no one's asking, have you heard about AMD open sourcing a lot of their GPU stuff?
🗪
1:09:48XEnDash Should the world mode changing be prefetched like the cut-scenes changing?
🗪
1:09:48XEnDash Should the world mode changing be prefetched like the cut-scenes changing?
🗪
1:09:48XEnDash Should the world mode changing be prefetched like the cut-scenes changing?
🗪
1:10:21elxenoaizd So by 'meta-game' do you mean like the pre-game stuff?
🗪
1:10:21elxenoaizd So by 'meta-game' do you mean like the pre-game stuff?
🗪
1:10:21elxenoaizd So by 'meta-game' do you mean like the pre-game stuff?
🗪
1:10:31thehappypumpkin Hi! I just finished my first semester of computer science in school! Just learned some basic Java, but I was wondering on if you have any tips moving forward. Also, do you know of any colleges that have good computer science departments?
🗪
1:10:31thehappypumpkin Hi! I just finished my first semester of computer science in school! Just learned some basic Java, but I was wondering on if you have any tips moving forward. Also, do you know of any colleges that have good computer science departments?
🗪
1:10:31thehappypumpkin Hi! I just finished my first semester of computer science in school! Just learned some basic Java, but I was wondering on if you have any tips moving forward. Also, do you know of any colleges that have good computer science departments?
🗪
1:11:18evraire Sorry slow night, the chat erupted into a flame war over the exclusion of option menus in games :-P
🗪
1:11:18evraire Sorry slow night, the chat erupted into a flame war over the exclusion of option menus in games :-P
🗪
1:11:18evraire Sorry slow night, the chat erupted into a flame war over the exclusion of option menus in games :-P
🗪
1:11:36Culver_Fly I wonder if there's a specific reason you put the 3 game_mode structs into a union?
🗪
1:11:36Culver_Fly I wonder if there's a specific reason you put the 3 game_mode structs into a union?
🗪
1:11:36Culver_Fly I wonder if there's a specific reason you put the 3 game_mode structs into a union?
🗪
1:11:48elxenoaizd So I have this generic USB controller that's not being detected by XInput, any ideas how to go about detecting it? Use DirectInput? Or try to use an Xbox controller emulator or something?
🗪
1:11:48elxenoaizd So I have this generic USB controller that's not being detected by XInput, any ideas how to go about detecting it? Use DirectInput? Or try to use an Xbox controller emulator or something?
🗪
1:11:48elxenoaizd So I have this generic USB controller that's not being detected by XInput, any ideas how to go about detecting it? Use DirectInput? Or try to use an Xbox controller emulator or something?
🗪
1:12:53Wrap up
🗩
1:12:53Wrap up
🗩
1:12:53Wrap up
🗩