Handmade Hero»Episode Guide
Selective Memory Restoration
?
?

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:14Recap and set the stage for the day
0:14Recap and set the stage for the day
0:14Recap and set the stage for the day
1:05Run the game and take a look at where we're at with the looped live code editing
1:05Run the game and take a look at where we're at with the looped live code editing
1:05Run the game and take a look at where we're at with the looped live code editing
3:06Step into Win32BeginRecordingInput() and inspect what is going on
3:06Step into Win32BeginRecordingInput() and inspect what is going on
3:06Step into Win32BeginRecordingInput() and inspect what is going on
4:01win32_handmade.cpp: Make Win32BeginRecordingInput() write to the right handle
4:01win32_handmade.cpp: Make Win32BeginRecordingInput() write to the right handle
4:01win32_handmade.cpp: Make Win32BeginRecordingInput() write to the right handle
5:20Run the game to see that we've got our looped live code editing working with dynamic allocations
5:20Run the game to see that we've got our looped live code editing working with dynamic allocations
5:20Run the game to see that we've got our looped live code editing working with dynamic allocations
6:26Consider how to save and restore the loop edits more efficiently
6:26Consider how to save and restore the loop edits more efficiently
6:26Consider how to save and restore the loop edits more efficiently
8:23handmade_asset.cpp: Look at how the asset system currently operates
8:23handmade_asset.cpp: Look at how the asset system currently operates
8:23handmade_asset.cpp: Look at how the asset system currently operates
11:04win32_handmade.h: Introduce win32_memory_block_flags in order to enable a win32_memory_block to be bypassed by the save / restore process
11:04win32_handmade.h: Introduce win32_memory_block_flags in order to enable a win32_memory_block to be bypassed by the save / restore process
11:04win32_handmade.h: Introduce win32_memory_block_flags in order to enable a win32_memory_block to be bypassed by the save / restore process
14:54win32_handmade.cpp: Make Win32BeginRecordingInput() obey those flags
14:54win32_handmade.cpp: Make Win32BeginRecordingInput() obey those flags
14:54win32_handmade.cpp: Make Win32BeginRecordingInput() obey those flags
16:36handmade_asset.cpp: Make AllocateGameAssets() bootstrap its own arena as NonRestoredMemory
16:36handmade_asset.cpp: Make AllocateGameAssets() bootstrap its own arena as NonRestoredMemory
16:36handmade_asset.cpp: Make AllocateGameAssets() bootstrap its own arena as NonRestoredMemory
18:54Run the game and see it work just fine
18:54Run the game and see it work just fine
18:54Run the game and see it work just fine
19:25handmade_memory.h: Make BootstrapPushSize_() take AllocationFlags, and introduce DefaultBootstrapParams() and NonRestoredArena()
19:25handmade_memory.h: Make BootstrapPushSize_() take AllocationFlags, and introduce DefaultBootstrapParams() and NonRestoredArena()
19:25handmade_memory.h: Make BootstrapPushSize_() take AllocationFlags, and introduce DefaultBootstrapParams() and NonRestoredArena()
23:27handmade_platform.h: Make the platform_memory_block_flags platform independent
23:27handmade_platform.h: Make the platform_memory_block_flags platform independent
23:27handmade_platform.h: Make the platform_memory_block_flags platform independent
24:16Run the game, try out the save / restore, hit the assert in BeginGeneration() and investigate why
24:16Run the game, try out the save / restore, hit the assert in BeginGeneration() and investigate why
24:16Run the game, try out the save / restore, hit the assert in BeginGeneration() and investigate why
26:29handmade_asset.h: Try disabling the InFlightGeneration code
26:29handmade_asset.h: Try disabling the InFlightGeneration code
26:29handmade_asset.h: Try disabling the InFlightGeneration code
30:04Run the game to see that it's all working, and consider whether or not to support InFlightGeneration
30:04Run the game to see that it's all working, and consider whether or not to support InFlightGeneration
30:04Run the game to see that it's all working, and consider whether or not to support InFlightGeneration
31:41handmade.h: Try putting the InFlightGeneration code in the transient_state
31:41handmade.h: Try putting the InFlightGeneration code in the transient_state
31:41handmade.h: Try putting the InFlightGeneration code in the transient_state
37:19Run the game with the asset locking being stored and check the size of loop_edit_1_input.hmi
37:19Run the game with the asset locking being stored and check the size of loop_edit_1_input.hmi
37:19Run the game with the asset locking being stored and check the size of loop_edit_1_input.hmi
40:09Consider handling mid-recording memory allocations / deallocations
40:09Consider handling mid-recording memory allocations / deallocations
40:09Consider handling mid-recording memory allocations / deallocations
44:03win32_handmade.cpp: Enable Win32EndInputPlayBack to handle memory AllocatedDuringLooping
44:03win32_handmade.cpp: Enable Win32EndInputPlayBack to handle memory AllocatedDuringLooping
44:03win32_handmade.cpp: Enable Win32EndInputPlayBack to handle memory AllocatedDuringLooping
49:56win32_handmade.cpp: Introduce Win32ClearBlocksByMask() and Win32FreeMemoryBlock()
49:56win32_handmade.cpp: Introduce Win32ClearBlocksByMask() and Win32FreeMemoryBlock()
49:56win32_handmade.cpp: Introduce Win32ClearBlocksByMask() and Win32FreeMemoryBlock()
57:55win32_handmade.cpp: Make PLATFORM_ALLOCATE_MEMORY() and PLATFORM_DEALLOCATE_MEMORY() set the LoopingFlags, and introduce Win32IsInLoop()
57:55win32_handmade.cpp: Make PLATFORM_ALLOCATE_MEMORY() and PLATFORM_DEALLOCATE_MEMORY() set the LoopingFlags, and introduce Win32IsInLoop()
57:55win32_handmade.cpp: Make PLATFORM_ALLOCATE_MEMORY() and PLATFORM_DEALLOCATE_MEMORY() set the LoopingFlags, and introduce Win32IsInLoop()
1:00:17Run the game and leave a loop running
1:00:17Run the game and leave a loop running
1:00:17Run the game and leave a loop running
1:00:26Q&A
🗩
1:00:26Q&A
🗩
1:00:26Q&A
🗩
1:00:54nxsy !qa
1:00:54nxsy !qa
1:00:54nxsy !qa
1:02:30neitchzehrer What happened to the black dot?
🗪
1:02:30neitchzehrer What happened to the black dot?
🗪
1:02:30neitchzehrer What happened to the black dot?
🗪
1:04:15nxsy I'm scared to look back at my own library reload (not even looped editing) after I stopped using it for a few months. Probably 10+ hours of debugging ahead of me
🗪
1:04:15nxsy I'm scared to look back at my own library reload (not even looped editing) after I stopped using it for a few months. Probably 10+ hours of debugging ahead of me
🗪
1:04:15nxsy I'm scared to look back at my own library reload (not even looped editing) after I stopped using it for a few months. Probably 10+ hours of debugging ahead of me
🗪
1:04:52drchilitopicoso Besides UI, what things must use threads in games? Just started learning threads and I'm curious. There are some things that somehow run slower threaded than single
🗪
1:04:52drchilitopicoso Besides UI, what things must use threads in games? Just started learning threads and I'm curious. There are some things that somehow run slower threaded than single
🗪
1:04:52drchilitopicoso Besides UI, what things must use threads in games? Just started learning threads and I'm curious. There are some things that somehow run slower threaded than single
🗪
1:11:10drchilitopicoso For the moment I have a thread job system. It's for rebuilding a mesh. For a big mesh it takes like 20 ms, so I thought maybe it would make it faster but not that much, maybe like 13% faster
🗪
1:11:10drchilitopicoso For the moment I have a thread job system. It's for rebuilding a mesh. For a big mesh it takes like 20 ms, so I thought maybe it would make it faster but not that much, maybe like 13% faster
🗪
1:11:10drchilitopicoso For the moment I have a thread job system. It's for rebuilding a mesh. For a big mesh it takes like 20 ms, so I thought maybe it would make it faster but not that much, maybe like 13% faster
🗪
1:12:55Go ahead and close things down
🗩
1:12:55Go ahead and close things down
🗩
1:12:55Go ahead and close things down
🗩
1:14:22Announcement: HandmadeCon 2016 speaker list1
📖
1:14:22Announcement: HandmadeCon 2016 speaker list1
📖
1:14:22Announcement: HandmadeCon 2016 speaker list1
📖