Seems most of the good answers are here, but like most things, you need to set your expectations around what you need to achieve.
It all comes down to a few requirements for your save files:
- Do you want it readable? - If so json is small, xml is verbose, text is also large. Binary or hex if not
- Do you want to protect against alteration - If yes, then also consider encrypting your saves.
- Multi-platform - be aware that some serialisers work differently on different platforms. Not too much of an issue unless you want cross-platform saves. Test on each platform
- Upgradability - Always ensure your config is always upgradable, nothing kills a game more than a game that is reset because it was upgraded. Also be clear how old a save can be before it isnāt upgradable (donāt just support the last version). Test, Test, Test upgrading save games and keep old save files to test with.
- Modding - Does your game support modding and if so, ensure your saves support modding (else things get messy). If you want to support modding, use interfaces and save data that allows extensibility.
Iām sure there is more, just take the advice and base it against the aspirations for your game, And donāt be afraid to start small and then build on it.