Instantaneous Live Code Editing
?
?
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)
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
V Revert filter to original state Y Select link (requires manual Ctrl-c)
Menu toggling
q Quotes r References f Filter y Link 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
Filter and Link Menus
z Toggle filter / linking modeCredits Menu
Enter Open URL (in new tab)⏫
Previous: 'Loading Game Code Dynamically'
⏫
0:02Recap and set the stage for the day
🗩
0:02Recap and set the stage for the day
🗩
0:02Recap and set the stage for the day
🗩
2:22Remove DllMain() and successfully recompile
2:22Remove DllMain() and successfully recompile
2:22Remove DllMain() and successfully recompile
3:28Demo hot reloading, and determine to reduce the update lag and enable debugging of it
🏃
3:28Demo hot reloading, and determine to reduce the update lag and enable debugging of it
🏃
3:28Demo hot reloading, and determine to reduce the update lag and enable debugging of it
🏃
5:58Visual Studio .pdb unloading
🗩
5:58Visual Studio .pdb unloading
🗩
5:58Visual Studio .pdb unloading
🗩
7:00Try using cl's -Fd flag1 to output the .pdb to a different location, without success
7:00Try using cl's -Fd flag1 to output the .pdb to a different location, without success
7:00Try using cl's -Fd flag1 to output the .pdb to a different location, without success
10:32Try using cl's -PDB:filename linker flag2 to output the .pdb to a different location, successfully
10:32Try using cl's -PDB:filename linker flag2 to output the .pdb to a different location, successfully
10:32Try using cl's -PDB:filename linker flag2 to output the .pdb to a different location, successfully
11:16Set the .pdb location using a batch file invocation of %date%
11:16Set the .pdb location using a batch file invocation of %date%
11:16Set the .pdb location using a batch file invocation of %date%
16:59Test out hot reloading to find that we create many .pdb files
🏃
16:59Test out hot reloading to find that we create many .pdb files
🏃
16:59Test out hot reloading to find that we create many .pdb files
🏃
18:26Suppress the output of del by piping it to a file
18:26Suppress the output of del by piping it to a file
18:26Suppress the output of del by piping it to a file
20:29Piping stdout and stderr
🗩
20:29Piping stdout and stderr
🗩
20:29Piping stdout and stderr
🗩
21:42Pipe both the stdout and stderr output of del to NUL, and disable incremental linking
21:42Pipe both the stdout and stderr output of del to NUL, and disable incremental linking
21:42Pipe both the stdout and stderr output of del to NUL, and disable incremental linking
23:31Find that our compilation output is more concise, and that we are hot reloading in the debugger
🏃
23:31Find that our compilation output is more concise, and that we are hot reloading in the debugger
🏃
23:31Find that our compilation output is more concise, and that we are hot reloading in the debugger
🏃
24:15Enable Win32LoadGameCode() to use the ftLastWriteTime to determine when a DLL update is necessary3
24:15Enable Win32LoadGameCode() to use the ftLastWriteTime to determine when a DLL update is necessary3
24:15Enable Win32LoadGameCode() to use the ftLastWriteTime to determine when a DLL update is necessary3
33:09Find that hot reloading continues to work latently
🏃
33:09Find that hot reloading continues to work latently
🏃
33:09Find that hot reloading continues to work latently
🏃
33:34Make WinMain() reload the DLL if it was updated, using CompareFileTime()4
33:34Make WinMain() reload the DLL if it was updated, using CompareFileTime()4
33:34Make WinMain() reload the DLL if it was updated, using CompareFileTime()4
35:45Try hot reloading to find that it is now instantaneous
🏃
35:45Try hot reloading to find that it is now instantaneous
🏃
35:45Try hot reloading to find that it is now instantaneous
🏃
37:29Try setting the Working Directory to the data directory, and find that Win32GetLastWriteTime() fails to find our .dll file
🗹
🏃
37:29Try setting the Working Directory to the data directory, and find that Win32GetLastWriteTime() fails to find our .dll file
🗹
🏃
37:29Try setting the Working Directory to the data directory, and find that Win32GetLastWriteTime() fails to find our .dll file
🗹
🏃
39:49Enable WinMain() to locate our .exe file using GetModuleFilenameA()5
39:49Enable WinMain() to locate our .exe file using GetModuleFilenameA()5
39:49Enable WinMain() to locate our .exe file using GetModuleFilenameA()5
45:44Find that we get the full path
🏃
45:44Find that we get the full path
🏃
45:44Find that we get the full path
🏃
46:00Truncate the path to the base filename
46:00Truncate the path to the base filename
46:00Truncate the path to the base filename
48:31Step through our path truncation to show it all happen
🏃
48:31Step through our path truncation to show it all happen
🏃
48:31Step through our path truncation to show it all happen
🏃
49:52Introduce CatStrings() for WinMain() to construct our .exe file path
49:52Introduce CatStrings() for WinMain() to construct our .exe file path
49:52Introduce CatStrings() for WinMain() to construct our .exe file path
55:25Implement CatStrings()
55:25Implement CatStrings()
55:25Implement CatStrings()
57:49Step through CatStrings() to find that it does what we want
🏃
57:49Step through CatStrings() to find that it does what we want
🏃
57:49Step through CatStrings() to find that it does what we want
🏃
59:44Set up the new Q&A question grabber, and reflect on our hot reloading improvements
🗹
🗩
59:44Set up the new Q&A question grabber, and reflect on our hot reloading improvements
🗹
🗩
59:44Set up the new Q&A question grabber, and reflect on our hot reloading improvements
🗹
🗩
1:01:21Q&A
🗩
1:01:21Q&A
🗩
1:01:21Q&A
🗩
1:01:45Unseen Owl of Shame moment on the chat machine
🦉
🗩
1:01:45Unseen Owl of Shame moment on the chat machine
🦉
🗩
1:01:45Unseen Owl of Shame moment on the chat machine
🦉
🗩
1:04:21Demonstrate seamless hot reloading
🏃
1:04:21Demonstrate seamless hot reloading
🏃
1:04:21Demonstrate seamless hot reloading
🏃
1:50:39Call it here
🗩
1:50:39Call it here
🗩
1:50:39Call it here
🗩
⏬
Next: 'Looped Live Code Editing'
⏬