Hemisphere Games Banner

Our Apportable Android Experience

It’s been three equinoxes since Osmos launched on Android. In that time, quite a few developers have asked us about our porting experience, probably due to the quality of the port as well as the game’s success on the platform. Our answer: we worked with Apportable. “How was that?” people ask. Our answer is, in a word, “Great!”

The tl;dr version of this post is:

  • Apportable’s platform allows you to “cross compile” your iOS project into a native Android app. (A .apk which you can publish to Google Play, etc.)
  • Yes, it works. It’s kind of crazy.
  • The folks at Apportable are brilliant, professional, and downright decent.
  • You can now try their service for free, and depending on your app’s features, you may never need to pay them a penny.

[Side note: Before I go on, I’d like to answer a question you may be asking yourself: “Why am I only writing this now, 1.5 years later?” Well, I actually wrote a glowing piece about Apportable back when Osmos first launched on Android, and they asked me not to publish it; they didn’t feel ready for an onslaught of developers wanting to use their platform. Fair enough, I thought.]

A lot has happened at Apportable in 1.5 years. When we first began working with them, their platform was far from mature. (Osmos was actually Apportable’s first release!) Their system worked, but it required Apportable engineers to be significantly involved in the porting process, along with shared code repositories and build servers. There were also many details that needed to be ironed out along the way, from language features that needed to be added, to niggly, device-specific issues that had to be resolved. Over time, however, their process has become smoother and smoother. And at this point they even have a “self-serve” option, allowing developers to download an SDK to try for themselves. In full disclosure I should say that we’ve had a unique and somewhat privileged relationship with Apportable, and I’ve only had an early taste of that SDK, so it’s hard for me to comment on the pure, self-serve experience. In any case, it looks like they’re finally ready for “the onslaught.”

So, given our experience, what can I comment on? Well, here are a few items:

Code reuse
A big, obvious benefit is code reuse. With a few #ifdef statements here and there you can have a single codebase across iOS and Android. Apportable’s platform extracts settings from your Xcode project and cross-compiles all your Objective-C, C++, native API calls, etc. automagically. I never had to learn a thing about the Android NDK nor write a line of Java. I’m sure I don’t have to sing the praises of code reuse to developers, but here’s an example: When initially porting to Android, I did a chunk of work to make the game adapt to any screen resolution. (Things were originally hard-coded for iPads and iPhones. Not ideal, but that’s how it goes sometimes.) Later, when Apple increased the size of the iPhone screen from 3.5 to 4 inches, we had very little new work to do. If our Android work had been in Java, there would have been a lot of grunt work involved in bringing these changes back to iOS.

Fragmentation ignorance is bliss
It’s well known: there are a ton of different Android devices and OS versions out there with varying capabilities and idiosyncrasies. As Apportable early adopters we felt some of this pain, one example being how some devices support certain pixel formats better than others (eg. RGB565 vs RGBA8888), but once the Apportable engineers had worked out these details we never had to worry about them again. Personally I’m quite happy to be ignorant on this front, leaving all the countless, ever-changing details of the Android ecosystem to Apportable’s engineers.

Quality
I regularly see happy comments from players on the store about how well Osmos runs on their device in terms of stability, feature support, framerate, etc. as compared to other games. This is a testament to the technical strength of Apportable’s platform. Yes, people (thankfully!) like the game, but I believe our success on Android is also significantly due to how solidly it runs across so many devices.

Magic
I’ll explain this one via example. Osmos is a procedural game; all levels are generated randomly based on patterns and statistical parameters describing the difficulty of a level. In Odyssey mode, however, each level is always the same, by virtue of the fact that we always choose the same initial (hand-curated) random seed. Unfortunately, the random number generators on iOS and Android are different, and so – at first – all our Odyssey levels looked different from their iOS counterparts. We thought: Oh well, it looks like we’ll have to pick new seeds for each level (27 of them) on Android so that the difficulty curve is more-or-less preserved. When we mentioned this to Apportable they returned with: Well, we can simply emulate the iOS random number generator for you so everything is transparently identical on Android. We smiled and said: Yes, please. Nice to work with people who really know what they’re doing.

Support!
Before taking the plunge in 2011 we had significant concerns about porting to Android, fueled by articles like this one about the potentially large support burden it would entail. When Apportable offered to take on front-line support for the Android port, we jumped on it. This has worked out amazingly well. The volume of support email on Android is indeed way higher than on iOS (I’d say roughly 50x), and the fine folks who have handled support for us at Apportable have been nothing short of incredible: professional, friendly, prompt… their responses were often better than anything I could have mustered to be honest. So after an initial “monitoring” period – with a sweet sigh of relief – I stopped looking at them altogether, knowing that if anything required our attention they’d escalate it. Personally I find support email to be very distracting, “costing” much more than the typical minute or three it takes to reply, and so I don’t think I can quite express how wonderful I have found this. (In fact I wasn’t sure I should even mention this point about support, but I looked at Apportable’s pricing sheet, and indeed they still offer this to developers. It isn’t cheap, but I believe it to be worth every penny.)



Well, I hope this is useful to developers who are considering giving Apportable’s platform a try. Feel free to poke us with questions or comments below. It’d also be great to hear about other people’s experiences, especially if you’ve tried their new self-serve option, as we can’t offer much insight on that front.

ᐊᑕᓇᕐᔪᐊᑦ (ᐅᖃᐅᓯᖅ ᐊᑕᐅᓯᖅ ᓈᒻᒪᔪᐃᑦᑐᖅ)

Last year, Ryan Oliver – a developer from Nunavut – reached out to us.

While playing Osmos he had noticed an achievement we named “Atanarjuat”, earned for completing the game’s “Chase” stage. This was a nod and a reference to a wonderful Canadian film Atanarjuat: The Fast Runner, based on an ancient Inuit legend. (yup, we’re Canadian.) This one word sparked a vision in Ryan’s mind. From his first email to us…

… I started thinking how amazing it would be to have a handful of quality games translated into Inuktitut for kids in Nunavut to play in their own language. It can be difficult to feel like you have a role, or a potential future in the gaming industry when no one is speaking your language. I wanted to offer my services and get involved in helping to put together an Inuktitut language version of the game.

Ryan started a not-for-profit company called Pinnguaq (which means “Play” in Inuktitut), and has been developing an app that will teach people the basics of Inuktitut through song. He’s very passionate about these projects:

When you put something in people’s native language, you give them a more personal experience. It kind of makes the world seem a little bit smaller.

While we had previously translated the PC versions of Osmos into German, French, Spanish and Italian, at that point the iOS version was only available in English. We were looking into localizing it, but this was the “kick in the pants” we needed to make it happen. How could we say no?

So we started the technical work, and Ryan organized a crowd-sourced translation project. He put together a “quiz”, inviting Inuktitut speakers to submit suggestions online on how to adapt phrases used in the game. Apparently it was a challenge to translate many of the words in Osmos to Inuktitut (“Antimatter” for instance!), especially in such a way that they’d make sense across the territory. Ryan worked with Tommy Akulukjuk, who provided a full “baseline” translation; but they hoped to receive many different suggestions for proper terminology in order to understand how each dialect may translate a specific term or word, and how it would be pronounced and used universally. They even consulted with elders in the community to verify that the words and phrases chosen would indeed work well in all dialects.

Elders…

I must admit that as I sit in my less-than-exotic home office writing this, I wish I could have been a fly on the wall in that scene, watching these Nunavut elders gathered around Osmos, weighing the words and phrases chosen to represent their language and culture in the Osmos blobiverse.

Well — that spark in Ryan’s eye is now a reality. We just released Osmos 2.3 for iOS (more details here) with multi-language support, including… Inuktitut! :)

Enjoy and ᐃᓅᓯᖃᑦᓯᐊᖅ!

Osmos in Inuktitut

Osmos 2.3 for iOS

Hey everyone, just a quick post about our latest iOS Osmos update. The main additions are:

Multi-language support
You can now play Osmos in German, French, Spanish, Italian, Simplified Chinese, Japanese, Russian, and… Inuktitut! The story behind the Inuktitut translation is an interesting one actually. Big thanks to Nicolas Simon (a Master’s student in translation studies at the University of Brest, France) for the French translation, and the folks at U-TRAX for the other 6 languages.
Note: Osmos will “auto-detect” your device’s language, though you can manually select language via Osmos’s settings menu.

4 New Achievements
One in single-player (“There can be only one!”), and 3 in multiplayer (2 new ranks, and one for participating in a tie game).

Plus misc tweaks ‘n’ fixes.

Thanks and happy Osmoting! Oh, and don’t forget to “refresh” your reviews. :)

Multiplayer Comes to Android!

As promised, multiplayer Osmos has come to Android!

This is a free update, and includes 6 distinct arenas in which players can play against each other — both locally and online — in a mote-eat-mote absorption-fest of skill and strategy. This update also includes many audio/visual improvements.

Multiplayer Osmos

Local play is supported over Wi-fi, and online multiplayer is supported via Google Play’s new Game Services! (Osmos launched simultaneously with Google’s announcement a couple days ago, so no one can accuse us of twiddling our thumbs! ;-) ) Players can share their achievements with their Google+ circles via this service as well.

Multiplayer details:

  • Play against your friends and enemies, locally or over the Internet.
  • 6 distinct Arenas: Ambient, Impasse, Solar, Warped Chaos, Epicycles, and introducing… Antimatter Impasse.
  • 18 new multiplayer achievements. (Along with a new single-player achievement.)
  • Optional handicap system to keep competition friendly. Be kind to young motes. :)

So what are you waiting for? Go show your friends who’s boss of the Blobiverse! We sincerely hope you enjoy it!

Many thanks to the fine folks at Apportable who did most of the “heavy lifting” in bringing multiplayer to Android. We couldn’t have done it without you! <3