Looped Live Code Editing ⚠ Click here to regain focus ⚠
?
?

Keyboard Navigation

Global Keys

W, A, P / S, D, 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 Credits

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

Credits Menu

Enter Open URL (in new tab)
2:45Review of the live code editing feature
2:45Review of the live code editing feature
2:45Review of the live code editing feature
4:13Building a demo to show gameplay tuning workflow
4:13Building a demo to show gameplay tuning workflow
4:13Building a demo to show gameplay tuning workflow
9:00Testing the demo
9:00Testing the demo
9:00Testing the demo
11:20Adding jumping
11:20Adding jumping
11:20Adding jumping
14:10Necessary improvements to square drawing
14:10Necessary improvements to square drawing
14:10Necessary improvements to square drawing
15:44Jump tuning
15:44Jump tuning
15:44Jump tuning
16:52Problems with gameplay tuning and a solution
16:52Problems with gameplay tuning and a solution
16:52Problems with gameplay tuning and a solution
18:19Making a loop editor for code
18:19Making a loop editor for code
18:19Making a loop editor for code
19:33The ease of storing the input stream in memory
19:33The ease of storing the input stream in memory
19:33The ease of storing the input stream in memory
20:25Writing it out to disk instead
20:25Writing it out to disk instead
20:25Writing it out to disk instead
21:49Creating a win32_state structure that we can pass around
21:49Creating a win32_state structure that we can pass around
21:49Creating a win32_state structure that we can pass around
22:30Press L to record
22:30Press L to record
22:30Press L to record
24:41Usage code for recording and playback
24:41Usage code for recording and playback
24:41Usage code for recording and playback
25:36Implementing the record and playback functions
25:36Implementing the record and playback functions
25:36Implementing the record and playback functions
28:14Functions to handle the recording output file
28:14Functions to handle the recording output file
28:14Functions to handle the recording output file
31:04Functions to handle reading in the recording file
31:04Functions to handle reading in the recording file
31:04Functions to handle reading in the recording file
32:22Some code to loop the input playback
32:22Some code to loop the input playback
32:22Some code to loop the input playback
34:56Testing the recording and playback
34:56Testing the recording and playback
34:56Testing the recording and playback
37:48Bug-fixing
37:48Bug-fixing
37:48Bug-fixing
40:06Input record success, moving on to record game state
40:06Input record success, moving on to record game state
40:06Input record success, moving on to record game state
42:27Implementing recording of game state
42:27Implementing recording of game state
42:27Implementing recording of game state
47:54Testing, and a failure to loop
47:54Testing, and a failure to loop
47:54Testing, and a failure to loop
49:43Successful looped editing demonstration
49:43Successful looped editing demonstration
49:43Successful looped editing demonstration
54:50Playing around with window types
54:50Playing around with window types
54:50Playing around with window types
59:47Transparent Window! And Access Violation!
59:47Transparent Window! And Access Violation!
59:47Transparent Window! And Access Violation!
1:01:56Improvements to transparent window.
1:01:56Improvements to transparent window.
1:01:56Improvements to transparent window.
1:03:47Final Thoughts
1:03:47Final Thoughts
1:03:47Final Thoughts
1:06:24Q&A
1:06:24Q&A
1:06:24Q&A
1:06:50Does Win32PlayBackInput need to return status in case the file read fails and/or reaches the end, since in those cases the function output data structures will be stale or invalid?
1:06:50Does Win32PlayBackInput need to return status in case the file read fails and/or reaches the end, since in those cases the function output data structures will be stale or invalid?
1:06:50Does Win32PlayBackInput need to return status in case the file read fails and/or reaches the end, since in those cases the function output data structures will be stale or invalid?
1:08:36Will this break when you make changes to the game_state structure?
1:08:36Will this break when you make changes to the game_state structure?
1:08:36Will this break when you make changes to the game_state structure?
1:11:30Why didn't you use a switch for all the VKCode stuff?
1:11:30Why didn't you use a switch for all the VKCode stuff?
1:11:30Why didn't you use a switch for all the VKCode stuff?
1:11:54Since it's mostly zeroes, do you think it'd be worth writing out the game state in a sparse way using a simple RLE or something, or is performance sufficient? Or perhaps that would make performance worse?
1:11:54Since it's mostly zeroes, do you think it'd be worth writing out the game state in a sparse way using a simple RLE or something, or is performance sufficient? Or perhaps that would make performance worse?
1:11:54Since it's mostly zeroes, do you think it'd be worth writing out the game state in a sparse way using a simple RLE or something, or is performance sufficient? Or perhaps that would make performance worse?
1:13:22What's on the schedule for next week?
1:13:22What's on the schedule for next week?
1:13:22What's on the schedule for next week?
1:13:57Are you going to show how to create more debug tools like this?
1:13:57Are you going to show how to create more debug tools like this?
1:13:57Are you going to show how to create more debug tools like this?
1:15:01Regarding saving game state for recording, won't we run into problems if we port a system that doesn't allow us to specify a base address?
1:15:01Regarding saving game state for recording, won't we run into problems if we port a system that doesn't allow us to specify a base address?
1:15:01Regarding saving game state for recording, won't we run into problems if we port a system that doesn't allow us to specify a base address?
1:16:08Any chance for a high-level overview while cleaning up?
1:16:08Any chance for a high-level overview while cleaning up?
1:16:08Any chance for a high-level overview while cleaning up?
1:16:45Isn't a two gig snapshot of your game memory crazy huge though?
1:16:45Isn't a two gig snapshot of your game memory crazy huge though?
1:16:45Isn't a two gig snapshot of your game memory crazy huge though?
1:19:17I think your sine wave is a tad bit off on land of the jump.
1:19:17I think your sine wave is a tad bit off on land of the jump.
1:19:17I think your sine wave is a tad bit off on land of the jump.
1:19:38I'm thinking maybe less about the error and more about what happens at the end of the stream when it loops, doesn't that generate an extra repeated input event played back, or am I missing something?
1:19:38I'm thinking maybe less about the error and more about what happens at the end of the stream when it loops, doesn't that generate an extra repeated input event played back, or am I missing something?
1:19:38I'm thinking maybe less about the error and more about what happens at the end of the stream when it loops, doesn't that generate an extra repeated input event played back, or am I missing something?
1:21:25Can you clarify if function pointers are part of that game_state block, maybe elaborate on what could ever cause it to fail or misalign?
1:21:25Can you clarify if function pointers are part of that game_state block, maybe elaborate on what could ever cause it to fail or misalign?
1:21:25Can you clarify if function pointers are part of that game_state block, maybe elaborate on what could ever cause it to fail or misalign?
1:24:26How can we make the playback work if we have no base address?
1:24:26How can we make the playback work if we have no base address?
1:24:26How can we make the playback work if we have no base address?
1:25:40Wouldn't the address spaces of two game_state's clash?
1:25:40Wouldn't the address spaces of two game_state's clash?
1:25:40Wouldn't the address spaces of two game_state's clash?
1:27:00Would a memory-mapped file that doesn't commit to disk be faster to read/write from?
1:27:00Would a memory-mapped file that doesn't commit to disk be faster to read/write from?
1:27:00Would a memory-mapped file that doesn't commit to disk be faster to read/write from?
1:27:58I thought you were going to use the memory snapshot as a game save, but you're using it like a save state in an emulator.
1:27:58I thought you were going to use the memory snapshot as a game save, but you're using it like a save state in an emulator.
1:27:58I thought you were going to use the memory snapshot as a game save, but you're using it like a save state in an emulator.
1:28:30How easy do you think it is to re-arrange an existing codebase so that it supports the instant live code editing feature, and what steps would need to be taken to get there?
1:28:30How easy do you think it is to re-arrange an existing codebase so that it supports the instant live code editing feature, and what steps would need to be taken to get there?
1:28:30How easy do you think it is to re-arrange an existing codebase so that it supports the instant live code editing feature, and what steps would need to be taken to get there?
1:30:02Will there be a Christmas special?
1:30:02Will there be a Christmas special?
1:30:02Will there be a Christmas special?
1:30:18How will replay work once you have start-up logic for the game? How will it be skipped? Will it just work?
1:30:18How will replay work once you have start-up logic for the game? How will it be skipped? Will it just work?
1:30:18How will replay work once you have start-up logic for the game? How will it be skipped? Will it just work?
1:31:04Clarification of earlier question (How often do you look up code?) How often do you study code on your own?
1:31:04Clarification of earlier question (How often do you look up code?) How often do you study code on your own?
1:31:04Clarification of earlier question (How often do you look up code?) How often do you study code on your own?
1:33:22Perhaps ReBaseImage() regarding loading dll at location?
1:33:22Perhaps ReBaseImage() regarding loading dll at location?
1:33:22Perhaps ReBaseImage() regarding loading dll at location?
1:33:51Suggestion to add -mix to the linker for fixed dll location.
1:33:51Suggestion to add -mix to the linker for fixed dll location.
1:33:51Suggestion to add -mix to the linker for fixed dll location.
1:35:14How long did it take for you to get to a point where you can concieve of a feature and with little effort know exactly what you need to accomplish to realize that feature?
1:35:14How long did it take for you to get to a point where you can concieve of a feature and with little effort know exactly what you need to accomplish to realize that feature?
1:35:14How long did it take for you to get to a point where you can concieve of a feature and with little effort know exactly what you need to accomplish to realize that feature?
1:38:43Couldn't you create an offset pointer struct which overloads the unary * operator?
1:38:43Couldn't you create an offset pointer struct which overloads the unary * operator?
1:38:43Couldn't you create an offset pointer struct which overloads the unary * operator?
1:40:43Have you got some good explanation on how you architect code, is that in the text you wrote about your work on the Witness?
1:40:43Have you got some good explanation on how you architect code, is that in the text you wrote about your work on the Witness?
1:40:43Have you got some good explanation on how you architect code, is that in the text you wrote about your work on the Witness?
1:42:06I have to spend a lot of time unlearning what I was taught just to get to features which should be easy, but were made hard by the kind of programming I learned in school. Have you had a similar painful unlearning process?
1:42:06I have to spend a lot of time unlearning what I was taught just to get to features which should be easy, but were made hard by the kind of programming I learned in school. Have you had a similar painful unlearning process?
1:42:06I have to spend a lot of time unlearning what I was taught just to get to features which should be easy, but were made hard by the kind of programming I learned in school. Have you had a similar painful unlearning process?
1:44:51Wrap-up
1:44:51Wrap-up
1:44:51Wrap-up