Asynchronous Turn Notification Thoughts
I was recently asked by a friend my opinion about how often is too often to notify the player that it is their turn to play. I personally feel a player should not get more than two or three reminders total. I also feel like email notifications should be opt-in. (Push notifications are already, at least on iOS, but collecting an email at registration should not be license to send email turn notifications, IMO.)
I’m not sure if there are other options other than email and Push. It might be interesting to try an experiment where you make turn notifications tweets. I wonder if there are already any asynchronous games playable entirely on twitter.
So, sending a notification immediately when it becomes the player’s turn is a must. I also believe it’s a “best practice” to time out your games, and send a notification before that happens. I know I’ve seen other devs (who host their own games) post about how not having async games time-out also means there are thousands of abandoned games on their server that will essentially never go away. So when this notice is sent could be based on the time-out period, maybe when the game would auto-boot them in another 24 hours.
What Playdek has done is to allow the user who creates the game to specify a length of time for the game. This works like a chess clock, and the timer starts when you get the notification that your opponent has played their turn. (The options are 10 min, 30 min, 1 hr, 2 hrs, 1 day, 3 days, 7 days, 14 days, and 28 days.) They only send one push notification when it becomes your turn. If the game times-out, you only find out after you log in again.
That solution actually feels a bit overly complicated to me, and I’ve recently started playing Star Realms, which has a similar but slightly simplified scheme where you choose a “time per turn” limit when starting a game. (The options are 3 minutes, or 48 hours.) With the 48 hour turn limit, you get a notification twice, once when it’s your turn, and another when you have 24 hours left to play. (They don’t badge the app when you’ve got pending turns though, which is just PAINFUL.)
For Catchup, I’m using the simplest possible implementation of GameCenter, which is not to have timers at all. (Timers were only introduced in a later version of the API anyway, and I wanted to support versions of iOS farther back than that.) The way their push notifications for async games work is super opaque, (and they come from the GameCenter app, not your app, which is also annoying), and one of the biggest limitations of using GameCenter, in my opinion.
One other thing I have seen, (but don’t necessarily endorse), is the ability for the user to nag the player whose turn it is. I can’t remember what app it was that did this, (maybe Trivia Crack?), but there was essentially a button that you could press in the app to send a notification to the other player.
I certainly don’t know what the best choices are, but I do know that there are different categories of asynchronous player with very strong opinions about how to play. For instance, vocal proponents of short timers who only want to play games that last less than an hour or so. Whereas I personally prefer to play games with the maximum timer limit, because, for me at least, I tend to batch all my asynchronous game play in one or two sessions a day. (And some days I skip entirely!) So player choice seems important.
Yesterday I had the opportunity to play with Parse for the first time. (Essentially migrated a project from using Google Analytics to Parse objects in a day.) I never knew it was so easy, and I have to admit that now I sort of want to use it for an asynchronous game. We’ll see.