37 lines
3.1 KiB
Plaintext
37 lines
3.1 KiB
Plaintext
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Selective Memory Restoration" vod_platform=youtube id=7oXRggHaP60 annotator=Miblo]
|
|
[0:14][Recap and set the stage for the day]
|
|
[1:05][Run the game and take a look at where we're at with the looped live code editing]
|
|
[3:06][Step into Win32BeginRecordingInput() and inspect what is going on]
|
|
[4:01][win32_handmade.cpp: Make Win32BeginRecordingInput() write to the right handle]
|
|
[5:20][Run the game to see that we've got our looped live code editing working with dynamic allocations]
|
|
[6:26][Consider how to save and restore the loop edits more efficiently]
|
|
[8:23][handmade_asset.cpp: Look at how the asset system currently operates]
|
|
[11:04][win32_handmade.h: Introduce win32_memory_block_flags in order to enable a win32_memory_block to be bypassed by the save / restore process]
|
|
[14:54][win32_handmade.cpp: Make Win32BeginRecordingInput() obey those flags]
|
|
[16:36][handmade_asset.cpp: Make AllocateGameAssets() bootstrap its own arena as NonRestoredMemory]
|
|
[18:54][Run the game and see it work just fine]
|
|
[19:25][handmade_memory.h: Make BootstrapPushSize_() take AllocationFlags, and introduce DefaultBootstrapParams() and NonRestoredArena()]
|
|
[23:27][handmade_platform.h: Make the platform_memory_block_flags platform independent]
|
|
[24:16][Run the game, try out the save / restore, hit the assert in BeginGeneration() and investigate why]
|
|
[26:29][handmade_asset.h: Try disabling the InFlightGeneration code]
|
|
[30:04][Run the game to see that it's all working, and consider whether or not to support InFlightGeneration]
|
|
[31:41][handmade.h: Try putting the InFlightGeneration code in the transient_state]
|
|
[37:19][Run the game with the asset locking being stored and check the size of loop_edit_1_input.hmi]
|
|
[40:09][Consider handling mid-recording memory allocations / deallocations]
|
|
[44:03][win32_handmade.cpp: Enable Win32EndInputPlayBack to handle memory AllocatedDuringLooping]
|
|
[49:56][win32_handmade.cpp: Introduce Win32ClearBlocksByMask() and Win32FreeMemoryBlock()]
|
|
[57:55][win32_handmade.cpp: Make PLATFORM_ALLOCATE_MEMORY() and PLATFORM_DEALLOCATE_MEMORY() set the LoopingFlags, and introduce Win32IsInLoop()]
|
|
[1:00:17][Run the game and leave a loop running]
|
|
[1:00:26][Q&A]
|
|
[1:00:54][nxsy !qa]
|
|
[1:02:30][@neitchzehrer][What happened to the black dot?]
|
|
[1:04:15][@nxsy][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:52][@drchilitopicoso][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:10][@drchilitopicoso][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:55][Go ahead and close things down]
|
|
[1:14:22][Announcement: HandmadeCon 2016 speaker list[ref
|
|
site="Molly Rocket"
|
|
page="HandmadeCon 2016 Speakers"
|
|
url="https://mollyrocket.com/news_0046.html"]]
|
|
[/video]
|