Handling Multiple Metagame Modes
?
?
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
z Toggle filter mode V Revert filter to original state
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus
Keyboard Navigation
Global Keys
[, < / ], > Jump to previous / next episodeW, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
z Toggle filter mode V Revert filter to original state
Menu toggling
q Quotes r References f Filter c CreditsIn-Menu Movement
a
w
s
s
d
h
j
k
l
←
↑
↓
↓
→
Quotes and References Menus
Enter Jump to timecodeQuotes, References and Credits Menus
o Open URL (in new tab)Filter Menu
x, Space Toggle category and focus nextX, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus
Credits Menu
Enter Open URL (in new tab)⏫
Previous: 'Fading In and Out from the Windows Desktop'
⏫
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:12:53Wrap up
🗩
1:12:53Wrap up
🗩
1:12:53Wrap up
🗩
⏬
Next: 'Switching Between Metagame Modes'
⏬