http://us.battle.net/d3/en/forum/topic/8088199483#8
Following was my response to options for a potential solution to hardcore disconnects…
Solution #1 would actually be the “easiest” for the D3 dev team to implement because they would not have to reinvent the wheel. I put easiest in quotes because it would still represent new code/logic which would need to be written into the client and then tested. Again, the in-game indicator in D3 is an actual client/server system which does more than a simple ping (per Bashiok in the below post):
The latency indicator in-game is not a simple ping like most games, and is actually a full process of the game sending an action to the service, the service processing it, and returning it to the client.
I actually believe that the server part of the component is built natively into Battle.net 2.0; it is up to each franchise’ dev team to implement the actual code to hook into that particular API to auto pause the client.
One possible reason I can think of as to why they didn’t implement this was because they didn’t like how it interrupted the flow of the game. I myself don’t necessarily subscribe to this as a good enough reason though because from an SC2 perspective, whether or not you are still in the base building/scouting stage, or heading into a macro/micro combat situation, I still find the pop up a jarring interruption in SC2. Sometimes, you get into a rhythm when creating units to collect resources, building structures, researching upgrades, building out your army, etc., and that zone you are in gets completely disrupted when the pause dialog pops up. However, I believe it is better than nothing because when I look at how some of the skilled experts play, lag can make a difference in terms of their ability to control/micro certain units at key times, so pausing does not put them/their team into a strategic disadvantage in such cases.
Thus in D3, I’d much rather have the game auto pause when a latency spike occurs as opposed to my character standing there doing the casting animation, but not really knowing what is actually happening. This same system can also be utilized to make a determination if that increased latency is because the client is no longer in actual communication with the server. I would say if no communication after 1 minute (maybe user definable up to 30 minutes just like how the game will auto disconnect you if you pause it/remain AFK in game), to presume a disconnect has taken place. At which point, it would automatically unpause the character on the server and begin the actual 10 second count down timer to remove the player from the game.
And what if you were indeed disconnected from Battle.net (say your computer had crashed), but are able to re-connect back (after rebooting) before the above disconnect timer expires? Currently, when you log in to the same account from another client, your character is disconnected. The way this currently is supposed to work is unclear as my testing (single player) shows it still works like before; you get immediately disconnected (I thought they fixed this where it is supposed to present a 10 second countdown timer on the already logged in character):
I would suggest this be changed to when you login again, you would be notified the character is currently in-game and that you can connect to it in the state that is in. If it was indeed paused, you’ll reconnect to it in that state. This does not come without hazards though since game assets would again have to be loaded by the client (asset load lag from hard disk unless game is installed on SSD/Flash). If it’s like the above though, I believe it should throw up the 10 second countdown timer (active player can cancel it) which will prevent the above (immediate disconnect in single player).
In a multiplayer game, I don’t think that pausing the game for everyone would be acceptable (like in SC2). Pausing just the affected player (i.e. making them immune to damage at that point) would also be a no go since that would be too abusable. Instead, some sort of indicator (above the affected player) as well as a short message in the chat window (like Player X is lagging) could be used to convey that this player is experiencing latency/possibly disconnected. Maybe at minimum, it could automatically activate certain survival skills the player has on their skill bar. Obviously, that isn’t a perfect solution due to resource generation issues. I just do not see them implementing any sort of automated A.I. when it comes to targeted attacks or movement (additional code/logic + QA validation).
For auto pause, I really don’t know if they currently see any merit in terms of devoting the dev/QA resources to appease what represents a small minority of the D3 player base. From a priority perspective, they have other bigger non-trivial fish to fry with the game, thus I can see why the mostly continued silence when it comes to the issues related to hardcore.