It's been lots of fun following along with this video series. As someone who's been coding a long while in the web development sphere as well as writing games, it's great to get a fresh perspective on development process along with modern game dev techniques. Thanks a bunch Casey - I'm recommending your series everywhere I go!
So a question: I'm new to the memory pooling approach, and I'm interested in how serialisation might work.
With my previous engine I had to manually walk through all the pointers in a complex hierarchy: it was slow, error-prone and took ages to code and maintain. With a memory pool, it seems like we can mostly save arrays of entities etc direct to disk.
Assuming we aren't fixing the memory base addresses in production, the only thing we'd need to do besides dumping and reloading most of the memory is to fix any pointers. As long as we keep pointers out of the main structures, and only use indexes, in theory we could simply store the old base address we were given, then do some pointer arithmetic to move all the pointers over to the new scheme.
Anything I'm missing? Are there other 'standard' ways of doing this out there?