I have a rather large project that I now want to add save game functionality to.
One of the most complex parts is the AI.
Its evaluators (decision makers) run for each agent in a framesliced fashion, and store pointers to entities and other data while they are evaluating. They also have utility maps that are cached and updated...
I am thinking it will be both hard to serialize data like this, and also that maintaining backwards compatibility with save games will be hard.
What strategies are there?
One idea I had was to just not serialize the evaluators' states at all. The evaluators would run from scratch after reloading. This would mean that after reloading, the behaviour of agents would be different than they were right after saving. Most likely, the agents would react a bit slower for the first few seconds because their calculations had to start over.
What do you think?