Logo Platform
logo amplifiers simplified

Save/Load Inconsistency Still Frustrating

Reply
Copied to clipboard!
7 years ago
Feb 22, 2018, 6:42:48 AM

I know I've complained about this in Amplitude's previous games and been ignored, but I am still very frustrated that saving and then loading a game can cause things to change, which means you can't ever get back to the game as it was when you originally saved.


That is not what "save" means!


The most common (but not only) cause of this inconsistency seems to be that the AI will suddenly decide to take a new action after you load (that it had plenty of time you take before you saved).  I am guessing that the AI somehow gets "stuck" in normal play, in some sort of state where it can't respond to new information it has learned since the start of the turn, and then save/load gets it unstuck.  But the fact that the AI might get stuck actually bothers me far less than the fact that save/load changes its behavior for a given position.  I would be happy if the AI never got stuck OR if it stayed stuck until the next turn regardless of save/load!  I just want to be able to save a game and know that I can get back to the exact position I saved from.





Reproducible example:


1.  Load this save:


AutoSave 80.sav


2.  In the "southern" part of the galaxy, there is an explorer heading "south" from Trapist-1.  Order them to continue moving along the current route.

3.  They stop in a Sophon (green) system

4.  The Sophons do not react.

5.  Save the game to a new file.

6.  Load the game you just saved.

7.  The Sophons complain about you trespassing.


Similar AI behavioral changes on save/load definitely happened in Endless Legend; I don't remember anymore whether I noticed this specific thing in Endless Space 1 (in ES1, I was more concerned about how my systems would randomly gain/lose several population when I saved and loaded).


Obviously, I can't credibly claim that this is stopping me from buying your games.  But if I ever do stop, this will likely be a significant contributing factor.

0Send private message
7 years ago
Mar 14, 2018, 11:26:52 AM

Afaik, not all decisions made by the AIs are stored in savegames. And yes, this can lead to different outcomes. 


Now, my take on things is that AI decisions shouldn't be carved in stone. The AI has to be flexible to react to all kinds of different factors in an everchanging environment. And this game has tons of factors to be taken into consideration. 


This means that the AI has to re-evaluate a lot when loading a savegame. We notice that when actually loading a savegame and the large amount of time it takes until the game is ready to be played.


Now, I think it would lead to problems when all of the decisions of every AI needed to be constantly saved. It would take time in-between turns and make the game unplayable at some point. We'd probably have more corrupted savegames as well next to a tremendously bad performance.


As it now is, it takes up some RAM in which it is executed and calculated and then important keypoints are saved in files on storage. A savegame in the biggest galaxy with each race present in late game can be around 2-3MB. Imagine the amount of “junk-information” when pretty much any kind of information would’ve to be constantly saved. And then the time it would take the time to load and for the AIs to evaluate this. 


I usually play the most epic scenarios, in the biggest galaxies with every race present to have a great experience and let me tell you that the late game performance of this game is nothing short than amazing. The sad thing here is, that it doesn’t get nearly enough credit for what it does so well already.


The only downside here is, yes: the AI can and will make different decisions when a game is re-loaded.


Is it a bad thing? 


It sure can be. However, I’d like to compare it to my own experiences. Sometimes, when I face a problem I only can see it from one point of view. But then I sleep over it. I wake up and often I can see new and different ways to tackle it.


Perhaps the ES2 AI could be a bit more restrictive to prevent the AI from "acting schizophrenic" at times. But I take that every day over an inflexible AI which can't estimate it's own situation pared with bad performance and error vulnerabilty.

0Send private message
7 years ago
Mar 14, 2018, 5:04:09 PM

You seem to be assuming that the AI is accumulating vast amounts of contextual information as you play the game, and using that information indefinitely to make future decisions, BUT NOT already saving and loading that information.


That strikes me as implausible...mostly because it would be incredibly stupid.


You're basically saying that Amplitude did a bunch of work creating a complex learning AI that can adapt to your play and use its experience against you, and then decided to wipe its memory and turn it back into a newborn infant every time you save and load.  That's just...not reasonable.  On top of the obvious problems, it implies the AI would become significantly slower the longer that you play without loading (because any data structure that's too big to save has to be using up loads of RAM to hold onto, and loads of processing power to constantly utilize in decision-making).


Also, as to your metaphor, it's less like allowing your opponent to change their mind after they sleep on it, and more like forcing your opponent to drink an amnesia potion so that they forget all their carefully-laid plans and have to start over from scratch.


But I really don't think that's what's happening.  To whatever extent the AI accumulates contextual information as the game goes on, that information is not going to consist of a log of everything that's ever happened, it's going to be condensed into a reasonably-sized data structure and will already be saved in your save file.  The amount of contextual information might be small, or large, or zero, but however much there is, that is assuredly how it'll be handled.  There's just no other halfway-reasonable way it would work.



Now, hypothetically the AI could make different decisions on a load because of non-deterministic parameters in its decision-making; maybe in a given situation it has a 70% chance to do X and a 30% chance to do Y, so it's intentionally different on different times.


But that's pretty obviously not the cause of the save/load issue, because when I reload a save file, the AI does the same thing every time.  It's not random, it's just different from the original.


(And if it WAS random, but you wanted it to be the same on a reload anyway, all you'd need to save is the random seed.  Absolutely no risk of performance issues in that change.)



The only plausible explanation is that the AI simply follows a different code path on load than it does in normal play, and the alternate path leads to an alternate outcome.  Probably that is just a straight-up bug!  But even if it's not, I see no reason to suspect there are huge technical or performance barriers to making them work the same.


If you really have concete, technical reasons for believing those obstacles exist, please describe those reasons in technical terms.  Otherwise, it sounds like you are simply imagining hypotheticals that could justify the status quo without considering their plausibility.

0Send private message
7 years ago
Mar 14, 2018, 7:45:41 PM

Man, that's some stored anger you got there. I just opened Pandoras box as it seems.


I’m not sure how I feel about this. After your crying that you always get ignored (probably for reasons), some poor soul finally takes the time to answer you and gets such a reply.

Oh man. But hey, what did I expect? It's the internet. No repercussions. Leave your good manners at the doorstep.


I’m well aware that some points of my answer to you are vulnerable and man you surely took the time. If you’d just taken this time to take a look at the AI via E.N.F.E.R. yourself, this conversation between us could’ve really been something. But yeah, why take the time? I mean, why learn something new? Why having actual discussions which could broaden the knowledge of the participants? My bad from expecting anything here.




Antistone wrote:

You seem to be assuming that the AI is accumulating vast amounts of contextual information as you play the game, and using that information indefinitely to make future decisions, BUT NOT already saving and loading that information.

Executing in RAM is fast. You want a complete dump file of a game with all the AI decisions, so when you re-load a game it stays exactly the same. At least that is what I got from you. And I told you that it's not the way this is working as AI decisions aren't stored in savegames. And this has reasons. Probably mainly performance ones. Albeit I'm pretty sure that people wouldn't like to have 50+MB memory dump files as savegames, too. 


I mean, you could suggest this as an idea to the devs. See if it takes off. *manical laughter*


Anyway, I’m not the one contemplating about buying future Amplitude games because of how savegames are handled. 


have a nice day

0Send private message
7 years ago
Mar 14, 2018, 9:51:29 PM

I didn't think I was particularly ill-mannered, but I suppose I can't always tell.  Maybe I'm just an awkward nerd who gets wrapped up in the issue and doesn't realize all the social rules I'm violating.  That probably justifies writing a sarcastic reply that's all about my tone while ignoring the substance of my post.


You suggest there's some great source of information on the AI that I'm not using, but you don't supply enough detail for me to actually follow up and investigate it if I wanted to.  You certainly don't attempt to summarize what you've learned from it yourself, or how it informs your conclusions.  And you didn't even bring it up until you could use it in a belittling fashion.  After all, "Why having actual discussions which could broaden the knowledge of the participants?"


We'll glide quickly past your contradictory rhetoric where you first say I could have gotten a better result by investing the same amount of time more wisely, and then suggest the problem is that I'm not willing to invest enough time.


Then you go back to restating your original point that your imagined solution to my problem would be unwieldy...because after I wrote a post arguing at length that such a solution was neither necessary nor helpful, that's obviously the most relevant drum to beat.


Thanks for demonstrating how to write a constructive post.  How am I doing at copying your example?

0Send private message
7 years ago
Mar 14, 2018, 10:19:25 PM
Antistone wrote:

I didn't think I was particularly ill-mannered, but I suppose I can't always tell.  Maybe I'm just an awkward nerd who gets wrapped up in the issue and doesn't realize all the social rules I'm violating.  That probably justifies writing a sarcastic reply that's all about my tone while ignoring the substance of my post.

Yea, I think it's absolutely justified to remind people this way when they're acting toxic. Do I want a discussion with someone who creates a toxic environment? That's a rhetoric question, and I rather choose to leave than to waste my time with people like this.





You suggest there's some great source of information on the AI that I'm not using, but you don't supply enough detail for me to actually follow up and investigate it if I wanted to. 

It's actually quite easy to find information on this forum regarding AI. As someone who persists on technical terms, I'd suggest you use the 'search function', reduce the search results to Endless Space 2 and look for the main keyword here: "AI". This should easily lead you to a thread called "ENFER debug tools".


Why am I even doing this?


 You certainly don't attempt to summarize what you've learned from it yourself, or how it informs your conclusions.  And you didn't even bring it up until you could use it in a belittling fashion.  After all, "Why having actual discussions which could broaden the knowledge of the participants?"

Well, you give an answer which could make a topspot on /r/threadkillers and are surprised about my reaction or lack thereof? Not sure if that's real.




We'll glide quickly past your contradictory rhetoric where you first say I could have gotten a better result by investing the same amount of time more wisely, and then suggest the problem is that I'm not willing to invest enough time.

well, it was obviously too much to use the search function so my assumption still feels pretty much justified.




Then you go back to restating your original point that your imagined solution to my problem would be unwieldy...because after I wrote a post arguing at length that such a solution was neither necessary nor helpful, that's obviously the most relevant drum to beat.

Restating my original point was necessary because you obviously missed it. I could restate it again if you like. Nah, actually I won't.




Thanks for demonstrating how to write a constructive post.  How am I doing at copying your example?

Again, there are probably reasons no one answered you before, even when it comes to other games. I value my time and I would've liked to discuss this further. It just seems not worth it with someone who twists things around and acts in a toxic way. I've seen enough of this in my 20+ years on the internet. 


Goodbye.

Updated 7 years ago.
0Send private message
7 years ago
Mar 15, 2018, 1:07:01 AM

I would recommend to take a break of one or two days to calm down here. I try to do so from time to time, too.


For the topic, I remember same issue back in Endless Legend days. Past loading a save game, AI had additional actions (for like a whole additional turn while human player won't have). I guess this is what Antistone wanted to point out. No reason to start trouble about. I have to admit I didn't read the whole thread.


From what I read in other threads, you both are nice members of ES 2 community, so again: please calm down. It fits better to both of you in my opinion.


See you in space.

Updated 7 years ago.
0Send private message
7 years ago
Mar 15, 2018, 9:23:25 AM

Hello, I'm one of the AI dev from the team.


The AI is not fully determinist, but most of the reasoning is.

When you reload a save, the AI can do a full reasoning pass, and not just a partial one.


Antistone, in your case, the sophon will complain in the begining of the last turn if you didnt reload, it just more reactive than the base situation.


Take care

zBobiwan !

0Send private message
7 years ago
Mar 15, 2018, 5:52:08 PM
Kray wrote:

Man, that's some stored anger you got there. I just opened Pandoras box as it seems.


I’m not sure how I feel about this. After your crying that you always get ignored (probably for reasons), some poor soul finally takes the time to answer you and gets such a reply.

Oh man. But hey, what did I expect? It's the internet. No repercussions. Leave your good manners at the doorstep.


I’m well aware that some points of my answer to you are vulnerable and man you surely took the time. If you’d just taken this time to take a look at the AI via E.N.F.E.R. yourself, this conversation between us could’ve really been something. But yeah, why take the time? I mean, why learn something new? Why having actual discussions which could broaden the knowledge of the participants? My bad from expecting anything here.




Antistone wrote:

You seem to be assuming that the AI is accumulating vast amounts of contextual information as you play the game, and using that information indefinitely to make future decisions, BUT NOT already saving and loading that information.

Executing in RAM is fast. You want a complete dump file of a game with all the AI decisions, so when you re-load a game it stays exactly the same. At least that is what I got from you. And I told you that it's not the way this is working as AI decisions aren't stored in savegames. And this has reasons. Probably mainly performance ones. Albeit I'm pretty sure that people wouldn't like to have 50+MB memory dump files as savegames, too. 


I mean, you could suggest this as an idea to the devs. See if it takes off. *manical laughter*


Anyway, I’m not the one contemplating about buying future Amplitude games because of how savegames are handled. 


have a nice day


As a completely uninterested party. I didn't find anything wrong with Antistone's reply. I did, however, find yours to be completely out of left field, and doing all the things you accuse him of doing in the prior post. I don't think any of that was called for.


0Send private message
7 years ago
Mar 16, 2018, 7:29:57 AM

I would like to apologize for losing my temper.  I'm sure I could have made equally cogent points with less aggression.  I'd like to thank Groo and legalizefreedom for providing outside perspective, which I find to be helpful during a dispute.


And of course I'd like to thank zBobiwan for bringing his valuable knowledge and attention to this issue.


Now, back on topic...


zBobiwan wrote:

Hello, I'm one of the AI dev from the team.


The AI is not fully determinist, but most of the reasoning is.

When you reload a save, the AI can do a full reasoning pass, and not just a partial one.


Antistone, in your case, the sophon will complain in the begining of the last turn if you didnt reload, it just more reactive than the base situation.

I imagined it would be something like that.


I'd just like to emphasize that even a delay of one turn is often consequential.  Over and over, I found my scouts in positions where if the AI complained the next turn, I would have enough movement points to fly out of their influence zone and invalidate their complaint before I would be forced to respond, but if they complain immediately I have to either teleport my scout back halfway across the galaxy or piss off a powerful neighbor--not a trivial difference, I should think.


That's a mild case.  In another instance, I saw a pirate fleet fly past my first outpost in the early game.  When I later loaded a save from that turn to check on something, the pirate decided to blockade my outpost instead!


In Endless Legend, I had many instances where an enemy army would walk up to my city, but would NOT start a siege until next turn or save/load.  In other cases, it would siege me, but it wouldn't actually attack (against a very weak garrison) until next turn or save/load.  Attacking a city 1-2 turns earlier or later is pretty significant (especially when the delay gives time to buyout or move in more defenders).


I may be attaching extra importance to this issue because I associate it with other save/load bugs (with no apparent relation to the AI), but honestly this is pretty important to me.  I don't want to have to worry about things changing out from under me when I save and load.


I would also have thought it would be pretty important to the developers to have rock-solid save & load, if for no other reason than it seems like it would help in reproducing a lot of other bugs.  These issues have certainly caused headaches for me when reporting bugs...

0Send private message
7 years ago
Mar 16, 2018, 12:02:02 PM

Well, actually it’s my turn to apologize. After reading my emotional responses, I just can shake my head. I should’ve waited a bit and cool down before I ever answered; trying to see things from a different perspective than from an emotional state. 

Again, I’m really sorry for what happened here. It’s a huge step backwards for me personally. And for me, it’s better to refrain from partizipation in forums for the time being.


kind regards

0Send private message
0Send private message
?

Click here to login

Reply
Comment