Apple's no internal client syndrome
There exists a common problem for Apple frameworks, technologies and services.
Once upon a time Apple proceeded this way: They worked on frameworks and services internally, made them private, gave them a little time to mature (about one or two releases) and only then made them public. This way they had knowledge how the usage pattern was, what part of the API is good, what is bad, maybe adjust some of the issues even before they made them public. Sounds like a good strategy.
The problem is: that isn't the case anymore. Release cycles spun up from 2-3 Years in prehistoric Mac OS X times to every year, so this kind of quality control basically went out of the window. I'm sure as a concept it is still there in many heads at Apple, but the times where this was common policy are - simply put - gone.
The other issue that this kind of quality control can't cover, is services and frameworks where Apple itself has no internal clients. The biggest example being Game Center.
Game Center is supposed to be this fun and engaging infrastructure to enrich games and provide services like online matchmaking and connectivity. The idea is great, the infrastructure is really necessary, but the actual implementation is so bad almost all developers I know and talked about it dread using it. This has many reasons, some of them will be topic on this blog. But for now I just want to put attention to the one structural reason:
There is no internal client for Game Kit and Game Center at Apple
Apple doesn't make games, and doesn't use Game Center anywhere outside its own Game Center app. Once upon a time they had a poker game in the App Store, which would have been the perfect internal client for it, but they chose to discontinue it and never integrated Game Center or even added Retina graphics before they pulled it.
So the only clients of Game Center are us developers. That means a lot of things:
- Roundtrip time: We can only give good feedback once we jumped on the bandwagon. Let's say we are frickin' quick and release shortly after an iOS release, using a new API feature. Even then we need to analyze the problems and take the time to write our bug reports. If you want to do it right and not just blow off steam, that takes a lot of time, and doesn't help us for this iteration of our app anyways because the fixes will come in a later OS version. So many of us don't even bother, but the ones that do might not even submit bug reports in time to hit the next iOS version.
- Game Devs are rarely invested deeply in the Platform. The bulk of Game Dev's aren't interested so much in perfect platform integration, more in perfecting their game. And on second thought probably how to make the game as platform independent as possible, to bring it to as many people as possible. So critiquing and wanting to improve the Game Center experience isn't high on the list. They use it, or not.
- Apple has no testbed for new technologies in that area whatsoever. For example last year they added Turn Based Gaming. You might now think this is a boon for us, as we did our own implementation for this in Carcassonne and initially I was very excited. However, it quickly turned out that this technology is ambitious, and many ideas are interesting, but it is no way finished or working the way it needs to if you want to give a great user experience. They simply had no internal client to point out all these issues beforehand, and now we are stuck with a technology with so severe issues, that even in the next iteration of iOS not all of the major ones are addressed. And they do have clients that jump on the new technology for demos at the WWDC. But the way Apple works this is done about 1-2 weeks before the session. The game dev posing as a client is eager to make things work to be mentioned in a demo, no matter what the problems are. They will give feedback on the problems, but at this time it is too late to change anything meaningful. Also they will be quiet about it, as they want to be part of the keynote, and praise the product there. Even at this point I am afraid to write about this so bluntly, because I'm afraid they might feature us less. With Lost Cities we used Game Center Turn Based, and put a lot of effort to eliviate all the existing quirks the best we could.
So unless Apple is changing this in a major way and starts to include third parties during the creation of new technology they don't use themselves, I think this is what we are stuck with. I dread using Apple technology that isn't up to the standards of the framework or the platform. The bright side: Us working around all the issues and improving the experience gives us a great unique selling point. However, personally I would much rather work on improving our games than to work around system issues.