Hello, I need to implement a save/load data system and have some questions… I’ve found more than enough resources that explain how to do it, and I’ve gathered that it’s always gonna need to be tailored to your game specifically (since that dictates what exactly you’ll need to save, obviously) I was just wondering if there was anything else I should keep in mind while outlining beforehand, or any particular way to sketch things out that might be better?
Honestly I just struggle a lot with executive functioning in general lol (and as a result I have difficulty properly outlining/planning projects or parts of them) and I just wanted to make sure i sketched things out as best I can before getting into it cuz I didn’t want to just start following tutorials and make a mess (due to lack of proper foresight) so just figured it was worth asking.
TLDR; aside from a list of what indeed to save in my game and the weath of tutorials out there that explain how to do it, is there anything else I should keep in mind while outlining (or any certain way that might be better) so i don’t just jump in and make a mess?
And yeahh, it’s just already a disorganized mess as it is and i didn’t want to make it even more of one lol (since it just makes it harder to keep up with as well as troubleshoot) but if that’s just how it is then I guess I’ll just jump right into it then. Thanks!
My preferred strategy is to make a mess and clean up my code as things become more concrete. I’m a big fan of Serialization and often use a SaveGame class to represent savegame data, and as more features are added I make sure these features also hold some Serializable object I can encapsulate within the SaveGame class.
That way I can still decide later how my game handles the actual loading and saving. I could use a list of files to freely load and save, a savepoint system, or a roguelike system with a Save & Quit system.
In short, my advice is to seperate ‘what data to save’ from ‘where and when to save and load data’. Seperate those concerns and your mess will remain managable.