Gamieon is a one-developer part-time studio focused on creating video games for the desktop and mobile platforms. Since 2010 Gamieon has developed and released six games as well as six more prototypes. Including beta distributions, Gamieon's products have netted a combined 300,000 downloads! Below this bio are images from all my games and prototypes. Check them out and don't forget to follow me on Twitter @[Gamieon](members:gamieon:321769)

Report RSS Unity and Apple Game Center development

Posted by on

I like Apple's Game Center leaderboard and achievement tracking in that it's very easy to implement (even if you don't have plug-in support but are willing to learn some Objective-C), For one thing, the critical GameKit function calls are non-blocking. Scores are uploaded and displayed in metrics that the developer can define, and achievements have a percent completion. Furthermore, my experience has been that the Game Center will not lose data (suppose a bug reset your game score from 10,000 to 0...the Game Center will still keep you at 10,000). They do, of course, provide a reset function you can explicitly invoke.

One thing to keep in mind is to be careful when designing your achievement icons. I had to change most of the ones in Tiltz because they looked terrible in front of Apple's achievement board "Paper plate" backdrops. Make sure your icons look good with a white background behind them.

You can also display Apple's leaderboard within your Unity app using GKLeaderboardViewController. I discovered after a few hours that you can do it if you make sure you present the controller with the animated parameter set to NO. However, I ended up just getting and displaying the numbers myself because bringing up the leaderboard view is extremely slow. (It's bad enough that loading a scene on the iPhone can take a whole second...what's going on during that time anyway and how can I speed it up?).

How to do it all without plug-ins? The same way I implemented in-app purchases: Using PlayerPrefs (default user setting properties) as a "communication bridge" between the Unity scripting layer and the Objective-C layer. I learned this at Tinytimgames.com

Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: