As you concluded the save games are solution here. Some advice for the saving would be to have one array of some global struct that has all the information needed. That global struct would have the AI type that is tamed, the owner, his transform when the player leaves and any extra details. If you have to save the same AI multiple times, you can have save an index of its position in the global struct array and then open the save game, change his details and save it again. Treat the save game as any object you have in the game when it comes to accessing and changing the variables, the only difference is that you need to open the save game and use that reference to edit it and save it.