Improvements to timeout logic


#1

In current setup, the game times you out if you don’t do any action in 90 seconds. This has a couple of disadvantages:

  • Player could be a learner and he/she might be reading a card or planning next move.
  • A turn can last up to 5 minutes by tournament ruling, but this inactivity timeout is not allowing.
  • Disconnects can happen with unpredictable internet connections and this usually cost players the game.

Target behavior:

  • Disconnects or closing the browser tab should not immediately cost the game, but rather allow a grace period (to be defined) to allow reconnects even from another browser/session.
  • Players should be allowed to look at/read cards without fearing for the inactivity timeout.
  • On the other side, players should not wait more than necessary for AFK’ers or RageQuitters.
  • Games should be allowed (via send challenge) with less strict timeouts for learning the game/tutorial purposes.

Proposed changes:

  • Increase request timeout (the time that you need to respond to card selection, choose an option, etc) to 90 seconds.
  • If the player disconnects (closing the tab, logging out, session lost), broadcast this information to game log so the other player understands what’s going on, then after 90 seconds, if the player did not reconnect, kill the game. This would work regardless of the current turn player.
  • Either (1) or (2):
  • (1)
    • Change the inactivity timeout so that it ends the turn rather than disconnect you.
    • Make sure inactivity timeout does not run when you’re reading cards or trying to make an action.
  • (2)
    • Remove the inactivity timeout completely.
    • If the player hits the max turn timer (5 minutes) AND the user was inactive for the last 90 seconds, then it probably means the person is AFK. In this case the turn will simply end and game will continue, except that the next turn the player will only have 30 second turn timer unless he responds.

Questions

  • Which one of (1) or (2) sounds better?
  • What should be this grace period?
  • Is turn extend logic ever useful? (ask opponent to extend the turn by 1 minute if you already used more than 5 minutes) Or should we just remove this function and end the turn right away?
  • How should a ‘less strict timeout’ game act for timeouts?

#2

I always get a timeout issue when i’m playing a card where the opponent must select OK (or make a choice).
For example. using the “Challenge!” card in Team Rocket. the opponent could be unresponsive for 30 seconds or more. they are probably reading what the card does. all the while, my inactivity timer is ticking. Then when I finally get to choose my basic pokemon from the deck, i often notice in the games log that i have been inactive for over 60 seconds. This often results in me rushing to play a card down at the last minute or end the turn/ attack to prevent myself from being timed out.

another example of a time out has been when using the Promo Tapu lele’s Magical Swap attack. i had a game a month ago where i was moving damage counters around my opponents field after using the magical swap attack. i had enough damage to take 6 prizes in one turn. i moved the damage counters to knock out 2 GX pokemon, and was moving counters to ko the last one, when the game had decided that i had been inactive for too long and had automatically declared my opponent the winner. i was very upset about this.


#3

This will now be addressed in the next patch:

  • Increased inactivity timeouts to 120 seconds.
  • Inactivity timeout won’t trigger anymore during an ongoing action (card play, attack, effect, etc).

This is still not a permanent fix (disconnect still costs the game) but an improvement for less frustration at least.


#4

oh this is good news. and the removal of timeouts during card effects is a huge bonus.