Tag: Apple

The State of Game Center

My happy blog post on SmartOthello for Mac conveniently skipped my journey through Game Center purgatory. While profile pictures are back, Apple is still not giving Game Center proper attention. I’ve been busy submitting bugs to Feedback Assistant – here’s a sampling:

  • There is still no way to get notified of invitations without polling (FB5990491).
  • On the Mac, turn notifications are not received (FB7659591).
  • On the Mac, there’s no way to edit your Game Center profile picture (FB7667313).

When you try to start a Game Center game on the Mac, you get the following cut off dialog (FB7668604):

mac-game-center-cut-off

(Yes, that’s the actual amount of white space.) Luckily, you can resize it to reveal some more buttons:

mac-game-center-revealed

The worst issue right now is that Apple has deprecated GKPlayer.playerID, and tells developers to use teamPlayerID or gamePlayerID instead. However, those simply don’t work (FB7662712), as the IDs keep changing even within a single game, making it impossible to e.g. cache profile images, never mind reconcile locally stored games with Game Center data. If GKPlayer.playerID gets removed in iOS 14 without fixing teamPlayerID, I will have to pull SmartOthello from the App Store.

How to Play With Friends

The whole process of finding friends to play with is way too convoluted. I’ve improved the UI in SmartOthello 3.0 to make it easy to start a game with somebody you recently played with. However, the process to first find somebody to play with is kafkaesque:

1. Tap on New Game and choose Game Center at the top.

start-game-center-game

2. SmartOthello lists recent opponents, and you can easily start a game with them. To play with anybody else, tap on Invite Friends.

after-invite-friends-long

3. This leads to a screen that has two buttons: Invite Friends and Play Now. While Invite Friends is just lightly outlined and you’re tempted to tap the boldly emphasized Play Now, that would just try to match you with somebody else who’s looking for a random opponent right then, which only really works if the app is much more popular than SmartOthello. So don’t get stuck in limbo; tap Invite Friends.

after-second-invite-friends

4. This brings you to an iMessage screen where you can send an invitation to a contact. However, the instruction “Tap + for Friends and more” is trying to give you a clue that you should tap on the ⊕ button, and then you’re finally presented with the right choices: play with contacts, friends, nearby players, or players you recently played with.

final-game-center-screen

This last screen makes sense – Apple needs to give developers a way to take users directly to that screen (FB7672633). Game Center matching was much easier when there was a Game Center app; Apple really went off-track when they decided that matching should go through iMessage.

I hope this helps others navigate through Game Center issues with turn-based games. If I’m wrong about any of these, I’d love to know! Hopefully, Apple can address these issues in iOS 14 and give both players and developers a better experience with Game Center.

App Store Confidential

Tom Sadowski was responsible for the App Store in Germany, Austria, and Switzerland from 2014 to 2019, and in his book “App Store Confidential” he provides a look behind the scenes. According to this Verge article, he’s had a falling-out with Apple, and Apple is trying to block publication of the book. The book is still available on Amazon, but only in German.

As the workings of the App Store are of crucial interest to developers, I read through it from a developer’s perspective and noted what I learned – interesting, but nothing that I think Apple should be blocking the book for. I grew up in the German-speaking part of Switzerland; for those who don’t know German, I’ve provided approximate Kindle locations below, so you can use e.g. Google Translate for more detail.

App Store Teams

For each country there are business managers and editors who are dealing with the customers as well as the developers in their region [loc 596]. The editors curate the App Store, and don’t just suggest apps, but also intend to shape the app culture.

The Discovery tab is refreshed at least twice weekly, presenting users with the most relevant, popular, and best monetizing apps [loc 609].

While the editors are working more in the background, the business managers talk with and advise developers in key accounts [loc 623]. The key accounts are based on top grossing (if you’re in the top 20, you can be sure you’re on Apple’s radar), strategic (accounts that have regional significance) [loc 638], and startups (where they’re looking at long-term monetizing potential) [loc 658].

Project Berghain

In 2016 he set up a program to help startups in Germany; in 2018 they launched Project Berghain [loc 941], where they evaluated over 300 apps, asked more questions of 20 apps, invited 10 apps to pitch-meetings in Berlin, and then decided on 5 apps that they were going to support [loc 954]. The apps were all based on subscriptions, had an innovative product, and a strong team.

Success Factors

Products, people, and passion: The **product** needs to be so good that it enriches the user’s life, and the user is willing to pay for it [loc 1034]. The **people** need to include a UI expert, a programmer, and a sales person [loc 1045], and need to have **passion** for their product.

Advertising comes last: the product needs to be convincing, otherwise marketing is not going to help [loc 1072].

For subscriptions to be successful, they need to enrich people’s lives, and convert users into paying customers [loc 1133].

How to Get Featured

Different factors help an app get featured [loc 1184]: quality, UI design, user experience, innovation, localization (the more languages, the better, as editors can then suggest the app worldwide), video and cool artwork.

To get in touch with App Store team, he suggests having somebody who is already in touch with the App Store team recommend you [loc 1240]. Keep emails short, add a short video that introduces the app, don’t mention money or other apps [loc 1256]. Possibly ask for a personal meeting. And if Apple contacts you, provide the asked for material quickly and without questions [loc 1261].

More

The book also includes anecdotes about Tim Cook visits, personal and app stories, and more on where he thinks the App Store is going. If you’re dealing with the App Store, you should find a way to read it, as you’ll come at it from a different perspective and notice details that were not important to me.

Game Center

SmartOthello as released mid-August:

Blog othello avatar

And here’s SmartOthello mid-October:

Blog othello no avatar

The layout of the app was designed with profile pictures in mind. These player avatars disappeared when iOS 10 was released: Game Center leaderboards show boring gray circles, GKPlayer.loadPhoto returns nil.

Some bug reports and a Technical Support Incident later, this appears to be Apple’s intended behavior, not just a glitch. This behavior is so wrong and unlike Game Center that I think Apple will eventually backtrack, but waiting and hoping is not an option: I could not leave SmartOthello in that broken state. The newest version adds the ability to set your own profile picture and uses CloudKit to share these between players.

Matchmaking with iMessage

At WWDC in June, Apple announced that the Game Center app was going away, but not to worry, the Game Center functions were all still going to be there. Player invites would be using the newly improved iMessage; no code change needed. (Sure.)

That may have been true for the simplest matchmaking scenarios, but not for SmartOthello. I’m allowing players to set their color preference to black, white, or neutral, and their opening preference to regular or random. To start a game, I thus need that information from both players. (If they both prefer the same color, color choice will be random; random opening will only be applied if both players agree.) This added negotiation step needed extra work in iOS 10.

Blog invitation accepted

Starting a game over iMessage is cumbersome, adding several extra taps to specify opponent and start the game, as well as context switches. Apple has work left to do there. In particular, there needs to be a way to bypass the confusing auto-match screen.

Why no profile pictures?

My guess is that the missing profile pictures are related to using iMessage for matchmaking. Many iMessage users have images associated with them, but those are through the user’s contacts. There’s no way to map Game Center players to contacts, and for privacy reasons, it’s obvious that Apple won’t make those images available through Game Center.

It would be easy for Apple to add back a profile picture in Settings > Game Center. However, when starting a match through iMessage, that opponent would then have two images: one from Game Center and one from iMessage. It’s a mess, and that may be why the Game Center images were removed. Apple dug this hole for themselves; I hope they can dig their way back out.

Game Center in SmartGo

One of my goals with SmartOthello was to learn Swift (which worked out perfectly) as well as gain experience with technologies like Game Center and iCloud before including them in SmartGo. My experience with Game Center has not been good (poor and outdated documentation, APIs not working as advertised, no way to avoid polling for invites), and Apple doesn’t seem to be paying a lot of attention to the future of Game Center. Removing the avatars was a poor decision, and matchmaking using iMessage needs a lot of work.

At least I know to steer clear of Game Center for SmartGo.