Hey,Making a turn-based game using Game Center. It has three ways to play:1. Pass and Play.2. Play online with a random opponent.3. Play online with an invted friend.Ideally I would have these options all showing in the menu. Which means I need to be able to show the "New Message" controller when the player picks option 3. Currently, option 2 and 3 are collapsed into one, as I present the GKMatchmakerViewController.I have not yet been able to find out how to directly present the "New Message" controller (the one presented when the player taps "Invite Friends" in the match maker). Can anyone help me out here?
Post
Replies
Boosts
Views
Activity
Hey,
I have an ongoing Apple Support ticket, but WWDC is in the way: when the exchange is completed the requester gets the replies notification, but the turn holder gets no notification.
I’m testing using two and three devices.
The project is available on GitHub (which is currently offline!): Gatada/TurnBasedGameFlow
To recreate the issue, create a game for tree players, then start an exchange between the two players that are not the turn holder. As you can see, no notification is received by the turn holder.
Can someone that has gotten exchanges to work, tell me how? Right now, the turn holder will resolve the completed exchanges only when the game is loaded. So if the exchange is completed after the turn holder has loaded the game, she will need to reload the game to end the turn. Which is obviously not a good game experience.
A cheap workaround would be to only allow turn holder to initiate an exchange, but this is according to Apple not a required limitation.
So I am trying to create a great UX. To do that I need to communicate to the user what exactly went wrong. The only way I believe this can be done, is by creating specific error messages with actionable steps to remedy the situation.
This is not provided by the localises messages delivered by an NSError. I find the error messages to be too generic. This is especially true when the error comes with a nested "NSUnderlyingError". Furthermore, in my experience they never suggest how to fix the error.
So, how to best handle that?
Right now, I have chosen to return my own errors - which are determined as follows: Cast the error to NSError.
Check the error domain and code.
For certain domains (and codes) I check for an underlaying errors and codes, and if one is found I return an error with a precise error message.
If no underlaying error is found, I return the more generic error found in step 2.
This approach obviously relies on the error codes of the received NSError. The result is an improved UX.
So, my questions are: should I rely on the error codes in this way?
is this a good approach?
what would be a better approach?