Here we go againer
Unfortunately, I've not found the time to update this or work (much) on the game. But here is an update.
Inspired by Billy Basso talking about the architecture of Animal Well, I've set up hot/live/whatever you call it reloading.
What this looks like is that I have a watcher program that monitors the game's source files.
When it detects a change, it recomplies the game as a DLL, exposing only a very tiny API (init, main_loop, save, and load). Seperately, there's a hypervisor process that actually runs the game. It does this by loading the DLL and calling main_loop in its main loop. (Maybe main_loop is a bad name? It's not actually a loop, it's the body of the game's main loop.) When the hypervisor detects that the DLL has changed, it loads the new DLL. This means that when I make a change to the code, so long as no data structures definitions have changed, the new code just takes effect on the live game state, as you can see here:
It's very nice, especially for tinkering with graphical effects! Now, it's time to actually get the game going. This weekend will be busy...