I have a project that I am working on for quite some time now. I made a rookie mistake of not building a save system at the start and just now started looking into it. I’ve googled extensively and asked around but I always get different answers so I am going to ask here.
First of all, I am still lost on how to create a SaveGame() and LoadGame() method. What is the common practise here? Should I go with some kind of ‘re-loading’ the level or does this not involve a restart (actors spawning again etc…).
Second, I am using a lot of custom structs, classes and the biggest problem of all, TSubclassOf’s and various containers (TMap, TArray etc…). I have tried, as one friend suggested, to implement Serialize() methods for all of this and to use the ‘Archive << MyData’ approach. This seems to be not working at all, even though it was implemented everywhere.
Third is that there are a lot of multicast delegates that I am using in various classes that are connected with updating the UI. Do I also need to call them again or does the BeginPlay() fire for all actors upon loading the game?
Major problem is that my in game items are blueprints and not data only (another rookie mistake) as well as other stuff like quests. When trying the serialize method, I was getting the following warning:
Serialized BlueprintGeneratedClass /Game/Blueprints/Player/BP_PlayerCharacter.BP_PlayerCharacter_C for a property of Class /Script/ViolentEnds.BaseQuest. Reference will be nullptred.
Does anyone have any guidelines that I can follow to try to solve the entire issue of the saving and loading?