Rejoin Games in Progress

So, I was just playing a fantastic 3v3 with some dudes, and both sides were playing really well and were evenly matched. I was having a lot of fun, getting into the game, when guess what happened? Demigod crashed to desktop. No BSOD, no error message, just a straight dump faster than you can say %*^ #&$^ (@*&$#%*&$^)!!!

Terrible game-ruining crashes like this could largely be mitigated by the simple ability to rejoin a game that you've been disconnected from. The thought has occurred to me in the past, and has probably been posted before in this forum. It seems like it should be pretty feasible, right? If the AI can dynamically take control of a DG mid-battle, then there is no reason that the human player can't reassume control later. I'm no computer programmer, but I see no reason why this shouldn't be an easy addition to the game.

Comments?

1,365 views 5 replies
Reply #1 Top

Its impossible. The game exists an a peer 2 peer environment. The game is not hosted anywhere.

Reply #3 Top

Quoting Polynomial, reply 1
Its impossible. The game exists an a peer 2 peer environment. The game is not hosted anywhere.
End of Polynomial's quote

That is wrong Polynomial. There is a quote from GPG/Stardock somewhere, and it was basically it'd take quite a bit of downloading and time to get it back going if it does work. Basically that game would still be connected to their network if only to track the game for stats etc. Basically you'd have to be able to find the game, rejoin it, the game would then stop for everyone, you'd then have to download everything that has changed since the start, resync to everyone then get going, this was said to take 2-5 minutes, which was thought of taking too long.

I myself have never crashed in a game only in the lobby when people leave or get kicked, seems to timeout sometimes for some odd reason. Hopefully the next patch fixes many of the crash causes.

Reply #4 Top

Well, can't they just cut out the part where you download the information of everything that changed since you dropped? That part isn't really important anyway right? All you need is the current state of the game.

Reply #5 Top

This has been covered numerous times already here, one of which was less than a week ago.

Short answer: Possible to do, however too painful for the players.

Long answer:
The problem with P2P games is that they're synched - everyone is transfering data to everyone else. This removes the need for a host server and prevents hacking, however also increases the upload requirements.
To be able to join a game in progress, or re-join a game that you were in, the game would first have to pause for everyone the moment someone left - regardless of whether someone was actually going to rejoin. Even sending chat messages would increase the data and that would need to be sent, so you'd literally have a non-moving screen to stare at until someone attempted to join.
Once the person attempting to join has connected to everyone, they'd need to download the game history from each person, one at a time, to ensure that every thing is synched. A single piece of information not matching would cause the entire game to be listed as desynced and everyone's time would be wasted.
Assuming optimal conditions in a perfect situation, you're look at around 5 minutes. Being as, in my experience, optimal games occur one in ten games you're actually looking at - realistically - 5-20 minutes depending on game length and connection speeds.