0:57Review basics of platform API design
0:57Review basics of platform API design
0:57Review basics of platform API design
3:54What the API needs to support
3:54What the API needs to support
3:54What the API needs to support
4:53Starting with moving sound across the API boundary
4:53Starting with moving sound across the API boundary
4:53Starting with moving sound across the API boundary
10:30How most games deal with time (poorly)
10:30How most games deal with time (poorly)
10:30How most games deal with time (poorly)
11:06What we are going to do
11:06What we are going to do
11:06What we are going to do
14:55Moving sound generation across the boundary
14:55Moving sound generation across the boundary
14:55Moving sound generation across the boundary
22:49Dealing with sound buffers abstractly
22:49Dealing with sound buffers abstractly
22:49Dealing with sound buffers abstractly
25:50Allocating a game sound buffer
25:50Allocating a game sound buffer
25:50Allocating a game sound buffer
29:33Tangent: buffer overruns and how the debugger helps
29:33Tangent: buffer overruns and how the debugger helps
29:33Tangent: buffer overruns and how the debugger helps
31:09Actually using the game-generated sound
31:09Actually using the game-generated sound
31:09Actually using the game-generated sound
37:01Cleaning up the old stuff
37:01Cleaning up the old stuff
37:01Cleaning up the old stuff
43:30Tangent: memory management & alloca
43:30Tangent: memory management & alloca
43:30Tangent: memory management & alloca
47:57Nevermind, we'll put it on the heap
47:57Nevermind, we'll put it on the heap
47:57Nevermind, we'll put it on the heap
1:00:16Will we use alloca to store pointers to game objects that are local to the player?
1:00:16Will we use alloca to store pointers to game objects that are local to the player?
1:00:16Will we use alloca to store pointers to game objects that are local to the player?
1:04:29If the DirectSound Lock fails, you'll pass garbage pointers to the game logic.
1:04:29If the DirectSound Lock fails, you'll pass garbage pointers to the game logic.
1:04:29If the DirectSound Lock fails, you'll pass garbage pointers to the game logic.
1:05:31When you say 60fps may not be feasible do you mean on non-PC platforms?
1:05:31When you say 60fps may not be feasible do you mean on non-PC platforms?
1:05:31When you say 60fps may not be feasible do you mean on non-PC platforms?
1:07:50Are we not worried about clean builds?
1:07:50Are we not worried about clean builds?
1:07:50Are we not worried about clean builds?
1:08:37Allocating every frame was your bug with alloca. You were calling it in a loop.
1:08:37Allocating every frame was your bug with alloca. You were calling it in a loop.
1:08:37Allocating every frame was your bug with alloca. You were calling it in a loop.
1:12:26Can you explain again why our current sound buffer fill is problematic?
1:12:26Can you explain again why our current sound buffer fill is problematic?
1:12:26Can you explain again why our current sound buffer fill is problematic?
1:15:43Wouldn't updating graphics and sound on the same frame cause audio lag?
1:15:43Wouldn't updating graphics and sound on the same frame cause audio lag?
1:15:43Wouldn't updating graphics and sound on the same frame cause audio lag?
1:17:08Since alloca is just a function call, how does the compiler know to free the memory?
1:17:08Since alloca is just a function call, how does the compiler know to free the memory?
1:17:08Since alloca is just a function call, how does the compiler know to free the memory?
1:17:44Will we spilt game sound update out of GameUpdateAndRender so we can use it as a callback or on a different thread?
1:17:44Will we spilt game sound update out of GameUpdateAndRender so we can use it as a callback or on a different thread?
1:17:44Will we spilt game sound update out of GameUpdateAndRender so we can use it as a callback or on a different thread?
1:18:16alloca is deprecated, we should use malloca.
1:18:16alloca is deprecated, we should use malloca.
1:18:16alloca is deprecated, we should use malloca.
1:20:17can you provide a log of the chat on the website?
1:20:17can you provide a log of the chat on the website?
1:20:17can you provide a log of the chat on the website?
1:20:43malloca allocs on the stack if less than 1kB and malloc's if greater.
1:20:43malloca allocs on the stack if less than 1kB and malloc's if greater.
1:20:43malloca allocs on the stack if less than 1kB and malloc's if greater.
1:21:33How can you safely predict where the flip happens so you can write sound there?
1:21:33How can you safely predict where the flip happens so you can write sound there?
1:21:33How can you safely predict where the flip happens so you can write sound there?
1:24:54We know that you can't go below 30fps for 'smooth' video. Is there a similar rule of thumb for audio?
1:24:54We know that you can't go below 30fps for 'smooth' video. Is there a similar rule of thumb for audio?
1:24:54We know that you can't go below 30fps for 'smooth' video. Is there a similar rule of thumb for audio?
1:26:29alloca is deprecated because.... [There are better options.]
1:26:29alloca is deprecated because.... [There are better options.]
1:26:29alloca is deprecated because.... [There are better options.]
1:30:49How do you do 2 voices in 1 buffer?
1:30:49How do you do 2 voices in 1 buffer?
1:30:49How do you do 2 voices in 1 buffer?
1:30:58When will the first sprite be displayed in animation?
1:30:58When will the first sprite be displayed in animation?
1:30:58When will the first sprite be displayed in animation?
1:31:11I've heard the brain treats sounds within 10ms as in-sync?
1:31:11I've heard the brain treats sounds within 10ms as in-sync?
1:31:11I've heard the brain treats sounds within 10ms as in-sync?
1:31:39When you work with temporary memory are there dangers? How do we protect against them?
1:31:39When you work with temporary memory are there dangers? How do we protect against them?
1:31:39When you work with temporary memory are there dangers? How do we protect against them?
1:33:21As a rhythm game player, I can notice audio sync off as little as 10ms...
1:33:21As a rhythm game player, I can notice audio sync off as little as 10ms...
1:33:21As a rhythm game player, I can notice audio sync off as little as 10ms...