is presently its sole maintainer,
You can support him:
Intro to memory management.
We won't be allocating.
Why talk about allocation now?
What would 'normally' happen
Problem: dynamic allocation spreads managment across code, makes it opaque
Problem: allocation is another trip through the platform layer
What we will do instead
Adding memory to the platform abstraction
Initializing with the new model
Allocating the memory in the platform
Yes, Virginia, memory comes zeroed.
Put it where you want it.
Debugging: Integral promotion
Note that the clear to zero is cheap.
Intro to assertions
Avoiding the runtime cost
Build options for memory
TODO: Pass timing info to game
Start of Q&A
Reasoning behind Main Memory Pool vs Dynamic Allocation?
Why use the void* in game_memory?
Elaborate on Permanent vs Transient storage?
Will the code be on github [be public]?
What do you mean by 'avoiding round trips'?
Are you going to keep the sound buffer allocation seperate?
Why didn't you use libc's assert macro?
You're assert has issues.
Why did you pick a BaseAddress so high up (2TB)?
What is the difference between the memory columns in Task Manager?
Recommended: Channel 9 video: Mark Russinovich Mysteries of Windows Memory Managment.
Are there any guidelines for choosing a safe BaseAddress?
What happens if the user doesn't have enough RAM?
Isn't worrying about not having enough memory silly?
Why are you using pools instead of static allocation?
What mechanism will we use to assign memory out of our pools?
Having Q&A after the episode is like code review. Was that your intent?
What about i.e. modding support? You can't tell in advance if you've allowed enough memory for someone else's mod.
Will our 64-bit allocation break on Raspberry Pi?
Will the Transient storage be freed, or will you just take off its end until its gone?
Is it better to keep track of how much memory is freed instead of total size?
Why are you reluctant to have to constants be 64-bit integers?
Did you pass different flags to VirtualAlloc for permanent and transient storage?
What are the 'other reasons' for specifying a BaseAddress.
Is it possible the pool will be fragmented?