Showing posts with label iOS. Show all posts
Showing posts with label iOS. Show all posts

Thursday, February 20, 2014

Releasing games for multiple platforms

Today is a big day, I finally released my company's 3D puzzle game, Shatter Crash, for Android on the Google Play Store.  I'm pretty happy about this release, it's something I've wanted to do awhile now, especially considering Shatter Crash originally came out for iPad in July of 2012.

Took long enough....

Actually there is a story as to why it took so long for the Shatter Crash Android version to come out, but that's something for another blog post.  It wasn't a technical reason though.

Since this is all fresh in my mind, I wanted to share a couple tips on stuff to think about when you do a multi-platform game.  This is more oriented for iOS and Android stuff, but will work for any other platforms as well

  1. Port your game to the new platform.  This is pretty obvious. I use Unity3D which handles 99% of the stuff for all the different platforms.
  2. You should look at the new platform and learn if there are a particular nuances of the platform you should try to handle.  One example, on Android hitting the back button on the main menu generally pops up a quit dialogue giving the user an ability to cleaning quit the app, not just put it into the background
  3. Handling product/app store links for the new platform.  For Shatter Crash I added a 'Rate' button so users can rate the app.  On iOS this takes the user to the iOS ttore list, for Android it takes the user to the Google Play listing.  Ideally you can take advantage of a mechanism so the app uses the proper links automatically depending on the platform.
  4. Handling UI layouts for different platforms. The iOS devices are pretty nice because you only have a handful of UI resolutions and aspect ratios.  All iPads are 4:3 aspect ratio, and iPhones/iPods are either 3:2 or 16:9.  Android obviously has a lot of different aspect ratios.  Ideally your UI can automatically handle scaling and moving widgets to take advantage of the screen for particular device it's running on, rather then you manually placing the widgets for every possible screen size
  5. Way to direct users to the different store pages - When you go from 1 platform to many, you need to make it as easy as possible for people to find the version of the game relevant to them.  One idea here is make a page on you website with links to the different stores you game is on; then make sure to SEO the hell out of said page so it's highly placed on search engines.  
  6. Achievement/Leaderboard/etc. - Competitive features like leaderboards and challenges, plus achievements for the collector-mentality players, are definitely nice to have in your game.  Different platforms generally have different implementations of these, which can be annoying to manage.  I created an internal API which my games use for handling leaderboards/achievements/challenges updates and unlocks.  That API in turn works with a binding layer responsible for interacting with the platform-specific system.  In this way I can build in support for all those features, then the platform binding layer handles how the nuances of converting that to the platform game system format 
Those are the ones off the top of my head, would love to hear more on this anyone had more suggestions.

And if you're looking for a fun 3D puzzle game, please do check out Shatter Crash on Google Play or iOS App Store!


Thursday, December 13, 2012

Removing OpenFeint from Ninja Hamster Rescue

* This is a follow up to a post I previously made here about GREE shutting down the OpenFeint servers with about 1 month of lead time for developers to remove it from their games.

The last month has been incredibly hectic for me.  I've spent the large majority of my time working on a contract job, and the rest of my time spent getting Match and Flip ready for release on iOS before Christmas.  Luckily both of those jobs are winding down a bit, so I was finally able to turn my attention to Ninja Hamster Rescue and purging OpenFeint functionality from the Android and iPad version.  As a quick recap, OpenFeint is social system that provided some nice services like leaderboards and achievements, and was very easy to add to your game.

I'm a little upset about having to remove OpenFeint from NHR, one of the biggest reasons being I don't know of any alternative services offering achievement and leaderboard tracking for Android.  Unfortunately I don't have a choice though, especially since their servers are suppose to stop responding to requests sometime tomorrow (Dec 14, 2012), and I don't want the user experience to suffer from timed out web queries or what have you.  So what does that mean for people who played NHR?  For players using the iPad HD version not much will change, except OpenFeint will disappear and your achievements and leaderboards *should* continue to exist in GameCenter.  For Android players, the game itself will still perform exactly as it did before, the biggest changes being achievements won't unlock and you won't be able to compare your scores to other's on leaderboards.

Ninja Hamster Rescue on Google Play will be updated shortly, and even is getting a Holiday update to add a new level.

Ninja Hamster Rescue HD for iPad will probably take longer to update, as it will need to go through the App Store review process first.

Friday, November 16, 2012

OpenFeint servers shutting down Dec. 14, 2012

Today GREE announced OpenFeint servers will be shutting down on December 14, 2012.  This very truncated transition period gives developers less than 1 month to replace or remove OpenFeint functionality to their existing games.  While this would be short notice in the best of times, giving 1 months notice during the December time period is, the hands down, worst possible time they could make this move.  Right now most mobile developers are hurriedly working to get new games and updates finished and submitted in time for the big holiday rush and before the App Store locks down for the winter holidays.

If you're wondering what OpenFeint is, in short it's a predecessor to Game Center.  Most notably developers used it for leaderboards, achievements and adding other social aspects to their games before Game Center came along.  While OpenFeint adoption has dropped since Game Center was introduced, many older (but potentially popular) apps still use OpenFeint because their developers haven't felt the need to switch it over to Game Center.  Developers must now make the choice to drop their new projects to update their older games, or face the specter of allowing their older games to use a service that no longer exists.  To really twist the knife in the whole experience, GREE informed developers that failure to remove the OpenFeint SDK from your games by December 14, 2012, "violates the terms of the OpenFeint Developer Agreement".  GREE is pushing developers to migrate to their OpenFeint games to the GREE Platform however I'm very suspect on how many developers will choose to migrate to that service given this experience.

While I removed OpenFeint from my iOS games awhile ago, I'm still using it for the current version of Ninja Hamster Rescue on Android.  This raises a new question, are they any other services out there that provide leaderboard/achievement type functionality for Android, or was OpenFeint the only one?