Speed of development is one of the main advantages of using Unity. One of the most important contributors to that is the extensive list of plugins available on its Asset Store. Stunt Star makes use of quite a few, and most will be used again on our next project, Spaceship Destruction Kit.
iOS first, Android later
One of my old bosses used to say that a new project should be either a new type of game for the team, or on a new platform. Not both. We broke that rule with Stunt Star, so it was a steep learning curve. We always wanted to ship it on many platforms, but focused on releasing it first on iOS. This plan had the advantage that we weren't trying to learn about too many new platforms at the same time as trying to make an awesome physics puzzler. One disadvantage was the heavy focus on iOS meant that when it came time to make the Android version, lots of work was needed. Sometimes it just meant getting the Android version of a plugin, but sometimes we had to find a completely different solution.
2D Toolkit and Multiplatform Toolkit
We use 2D Toolkit's sprite system and Multiplatform Toolkit's platform specific positioning and scaling for our UI, as well as its build process. Both of these plugins aren't platform specific, so there isn’t really any work needed there.
We use JCloud's iCloud plugin, as it supports both iOS and Mac. On Android we were thinking about using Google Drive, but ended up not implementing a cloud savegame solution. Not one of the more than the 750k people that have played the Android version have requested it, so I guess it was the right decision to spend our time elsewhere!
We made use of Prime31's Etcetera, Social Networking, Flurry and IAP plugins, so we grabbed the Android version of those, but some still required a fair bit of work. On the surface, getting the Android version of Prime31's Etcetera plugin to work was quite easy, but its dialog boxes didn’t respond to the back button. This is a big no-no for Google, so we ended up replacing them with our own UI.
Facebook development is not fun
Facebook integration is particularly painful, mainly because their documentation isn’t great and they seem to change (ie break) things pretty often. Facebook’s Hacker Way – “Move fast and break things” and release process slogan "Ship early and ship often" makes me nervous. The regular "what's changed" development email from them is particularly scary as it is always a massive list. Stunt Star Android players don't see many crashes, but most of them occur when the game and Facebook are interacting. And of course they never happen in our testing. We're going to have to think long and hard about relying on 3rd party systems that change so often for our next game.
Twitter integration consisted of a couple of hours reading, a few minutes setting up the app on their website and then simple app integration. A definite win.
Flurry integration was fairly painless, but I find the free version of Flurry to be pretty ordinary in terms of how the custom events are set up and how queries are made (5 mins setting them up and then about a day before they can be used). We'll be definitely investigating other options for the next project, but the stats you get out of Flurry by simply initializing it in your app are pretty cool.
Apple's App Store and Google Play's in-app purchase API's are fairly similar, so that didn't cause any problems. Not sure if server side authentication is worth implementing, as you can't measure the financial gain by doing so. It doesn't help when your ISP changes PHP settings without notice so nobody can make IAPs for a day or two...
Next time, I'll talk about some of the other game related tools we use.
- Paul (@pbaker05)