Description of New Feature
A game should have a File > Save State option which would generate a file which represents the exact current game state.
It would then, of course, also have a File > Load State option which would load that saved state. In a multiplayer game this could first trigger a popup for every player such as:
Player X wants to load game state from file
FooGameState.txt, do you agree?
And then the load would happen only with unanimity.
Additional Context
Due to connectivity issues, I often end up getting disconnected from online multiplayer games. If at least I could save the game state regularly (say every 5 minutes), I could continue the game after my connection was restablished. But currently, without this feature, whenever this happens the game is just lost.
This feature could also be very useful for strategy testing, since a game could be re-played after an specific point, where players could experiment different strategies.
If the game state is saved in plain text, this could be even better because players would be able to manually setup a game state directly from the file, in order to test a specific situation or even create challenges such as 'challenge: you must win in this turn'.
+1
This is a no-fix because it enables access to private information during a match. I also don't see a possible implementation path on this as it would require a major overhaul of what the server is capable of, which I'm not comfortable with at this time.
This is a no-fix because it enables access to private information during a match.
@ZeldaZach This is a good point. I can see this being done under a checkbox option upon creating the match such as:
[ ] Allow saving the game state (warning: this allows cheating)
So that only people willing to trust each other would use it; I am sure I am not the only one to experience the frustrating event of losing connection while playing with friends.
I also don't see a possible implementation path on this as it would require a major overhaul of what the server is capable of, which I'm not comfortable with at this time.
Hmm, that's unfortunate. Thanks for the reply.
May I ask why (roughly) it would need an overhaul to be implementable? Doesn't the software already know the game state anyway, since it is displaying it?
there is currently no way for the server to transmit this game state in a reliable manner, it's have to replay every action taken in the game in order to have users catch up
@ebbit1q Hmm I see, thank you :)
you mentioned you wanted this feature in a way to avoid losing game information if all users were to disconnect from a game, would you be able to say how often this happens?
@ebbit1q Not all users, just one user is already disastrous (in the sense that the game is lost and we have to start over). For example, I am playing with 3 other friends, and one of us disconnects, due to any random connectivity issue or any other reason, the game is wasted. Unless there is a way to rejoin a game after being dropped due to connectivity issues that I don't know of? :thinking:
you should always immediately rejoin all open games after you reconnect as long as your coplayers didn't close the game
@ebbit1q Automatically? If so I guess I've been experiencing a bug for several years now :sweat_smile:
would you be able to try and replicate the issue then open a new bug report with your log information and stuff?
Yes! I will try it within the next few days and let you know.
replicating a disconnect is as simple as turning off your internet during a game
@ebbit1q Here's what I just did:

Reconnected, verified my internet is fine, and then clicked OK on the error dialog above.
The following dialog appeared immediately:

I chose Chickatrice again, added the same username and password that I used in the first time, and then the following error message appeared:

Also, at this moment the game room that was open (paused in the last state before I lost connection) closed itself automatically.
thanks for the extra information, I created a new ticket with it as I previously mentioned. I'd still be appreciated if you could give us your system information and add it to ticket #4171 (can be taken from the top of the log at help->Debug Log).