How to make save system non-destructable for future updates/patches

Hello. I’ve been planning to make a save system for unreal. I’ve ton quite a few save systems on unity. One thing that I noticed is that every time I changed a class or add a variable it just messes up the save system and I did quite a hacky and messy job just to patch those.

I’ve been choosing what type of file my save files would be. JSON, Binary, or XML and what are the techniques to avoid the problem as mentioned above. I’m planning a save system that saves the saveable actors present in the level automatically.

I know there are great systems available in the marketplace like Rama’s and savior but I want to challenge myself and make a complex save system from scratch.

I will truly appreciate it if anyone can share their wisdom. Thanks :smiley:

I spent a long time experimenting with the blueprint save system, because I wondered about exactly what you mention here.

It turns out that, as long as all the types in the save game are generic UE types, you can add, delete, change the order, etc - no problem. The serialization sorts it out for you.

The thing I’m not sure about, is putting your own types in the save game.

And I sense you may wonder why that’s not a good thing? It’s because your asset reference chart basically becomes a massive black hole. Because almost everything knows about the save game, and the save game knows about some of your types, which know about other types… which know about the save game… which knows about…

I spent about 6 weeks sorting out a weird crashing problem related to this. The game ran fine, but whenever you changed the structure of the save game and re-compiled - BANG - editor goes bye bye.

I wasn’t happy releasing the game in that state, even if the game itself never crashed.