Setting up the save system for Age Of Singularity, my Ultima VI fan recreation project.
I'm making a Unity C# script to serialize the GameState to .json files, and making the savefile menu check that directory and instantiate new savefile cells to populate with the details. I even got a RenderTexture set up to capture a screenshot to use, when you pause the game. Still working out all the kinks.
It's funny how this is because of the dialogue system; in order for dialogue to work correctly, I need Conditions in a box the game can check, to determine what some npcs say (have you crafted a lens yet or not?) And in order to have a box of conditions,
I need a box called a GameState that tracks all the relevant variables in the game like your party members, inventories, stats, etc. And in order to populate the GameState, i need to be able to load, alter, and save the GameState data - hence, trying to get dialogue to branch correctly, leads to me making a save system.
Here's the original fb UDIC post.