Lets face it… a LOT of people are currently really annoyed because pretty often you get disconnected due to lag/routing problems/whatever and upon re-entering the game you end up on a different (much worse) instance of the map than the one you played before. For example:
- you get disconnected from a “good” TEQ-map and upon rejoining you are on a “failing” map
- you get disconnected from a EotM-map with a good commander and upon rejoining you are on an “outnumbered” map
- you get disconnected from a map where a champ you need for unlocking traits is killable and upon rejoining you are on a map where the champ is nowhere to be seen
- SPECIAL CASE: you get disconnected from a regular WvW-map after spending hours waiting in the queue
All those things are very annoying… and could easily be made more “bearable”…
If I’m not mistaken, the server already keeps track of certain user-data… most importantly:
- what map is a player currently on (like “Sparkfly Fen”, “Edge of the Mist”, …)
- what instance of the map is he using (i guess every instance/copy of a map has a unique id like “1284”, “13”, whatever)
- where on the map is he (X/Y/Z)
- what character is he using
So… whenever a player logs out “on purpose” (like pressing “Alt+F4”, using the “X”-button on the window, Idle-Kick, using the ESC-menu to logout/go back to char-selection), the client should send a message to the server telling it “Hey Server, I’m leaving on purpose!!!”.
Every time the player enters the character-selection, the server should check if the player exited the game on purpose… if NOT, the client should display a dialog like
It seems like you got disconnected from the game. Do you want to continue playing as <character name> on the map <map name>?
YES —- NO
If the player clicks “YES”, the server uses the stored data to allow the player to rejoin the exact same map he got disconnected from!
(( If he clicks “NO”, the game would pretty much behave the same way as it does now ))
So if the player was online on instance #13 of “Edge of the Mist”, he rejoins instance #13 of “Edge of the Mist” (using the same character he used before) after clicking “YES”.
This should work for.. IDK.. 3 minutes (or 5?). If the user takes longer to relogin, the “Rejoin”-dialog would not be displayed and everything would work the same way it currently does.
Of course, “regular” WvW-maps should treat the disconnected player the same way as any logged in player -> for example: if there is 1 player in the queue and 1 player gets disconnected, the waiting player cannot join unless the disconnected player doesn’t rejoin within 3 minutes. After 3 minutes the disconnected player is treated as if he left on purpose and a new player can take his place.
(( And of course, when rejoining WvW-maps the player will always start at the spawn! ))
This might not fix all problems (like getting disconnected 10s before TEQ dies and rejoing 10s later without getting any rewards) but at least some.
And the next (more awesome) step would be to record rewards and giving players boss-chests and stuff like this upon relogin even when they get DCed right before the boss died.
The server could just treat every player that got disconnected during the last 90s before a boss dies as if the player just didn’t do any damage during that time. So if I get disconnected 1 minute before Tequatl dies, I would still get my rewards upon rejoining the map even if he is already dead (and the “big” boss chests should despawn after 5-10 minutes so players have enough time to get to the chest upon rejoining the map even if they died and have to run a bit to get back to the chest).
Yeah – i know! Some of these problems can be “fixed” by joining a group -> but this doesn’t always work and IMHO the problem should be fixed by fixing it and not by finding some workarounds that sometimes work.
Edit: Added a simple mock-up of the relogin-dialog.
(edited by Tiscan.8345)