{"id":3054,"date":"2010-12-16T20:25:15","date_gmt":"2010-12-17T01:25:15","guid":{"rendered":"http:\/\/www.hemispheregames.com\/?p=3054"},"modified":"2015-01-19T20:31:28","modified_gmt":"2015-01-19T20:31:28","slug":"why-we-havent-ported-osmos-to-android","status":"publish","type":"post","link":"https:\/\/www.hemispheregames.com\/new_blog\/2010\/12\/16\/why-we-havent-ported-osmos-to-android\/","title":{"rendered":"Why we haven\u2019t ported Osmos to Android"},"content":{"rendered":"<p>[edit: Osmos has finally been ported to Android! You can get it <a href=\"https:\/\/market.android.com\/details?id=com.hemispheregames.osmos\">here<\/a>.]<\/p>\n<p>A lot of people have been asking us if and when we&#8217;ll bring Osmos to Android. After all, we\u2019ve already ported it to iOS and Linux, so it should be a no-brainer, right? Well\u2026 unfortunately not. We\u2019d like to, but after having spent some time and effort looking into it, we aren\u2019t going to just yet.<\/p>\n<p><img decoding=\"async\" width=\"150\" style=\"display: inline; float: left;\" src=\"\/images\/android4.jpg\">There are a number of reasons, but there\u2019s only one that\u2019s truly blocking us: <a href=\"http:\/\/connect.creativelabs.com\/openal\/default.aspx\">OpenAL<\/a> support. Surprisingly &#8211; especially for an OS based on Linux &#8211; Android does not yet support the OpenAL sound library! Osmos is strongly tied to OpenAL and makes extensive use of its pitch-shifting functionality, which most sound libraries (such as SDL) do not support. And since we are not willing to sacrifice the quality and richness of sound in Osmos &#8211; not to mention the extra work involved in migrating to a different library \u2013 we\u2019re blocked. There is a light at the end of the tunnel however: we\u2019ve heard rumours that OpenAL support is on Google\u2019s roadmap. We\u2019re not sure when, but when it arrives, we\u2019ll get started on the port.<\/p>\n<p>While that could be the end of the story, I think it&#8217;s worth pointing out some of our other considerations. None of these are actually <em>blocking<\/em>, but they do reduce the appeal of porting to Android, and will also limit the audience we\u2019ll be able to reach.<\/p>\n<p>Multitouch: This may be a good time to point out that Android is an OS which extends beyond smart phones and tablets, and device standardization is a bit of a nightmare. Sure, Android may run on your toaster someday, and that\u2019s great \u2013 but will your toaster sport a multitouch screen? Regardless, there are already a ton of Android phones on the market that do not support multitouch, and even the OS has been <a href=\"http:\/\/www.badlogicgames.com\/wordpress\/?p=1007\">rather half-baked<\/a> with respect to its multitouch support. It seems that only recently &#8211; with OS 2.1 and the latest wave of devices \u2013 has multitouch become a proper standard on Android phones. As such, when we do port Osmos, it will only be supported on recent phones and OS versions.<\/p>\n<p><center><img decoding=\"async\" src=\"\/images\/android_phones.jpg\"\/><\/center><\/p>\n<p>On the subject of devices, I\u2019d like to add that the huge variety of Android phones on the market is a daunting QA and support task. And while it\u2019s easy to say we\u2019ll \u201cjust support a few, modern phones\u201d (like the Samsung Galaxy, the HTC Evo 4G, etc.), the Android Marketplace has little infrastructure to support this. Listing all supported devices in the application\u2019s description in not a great nor a foolproof solution; most users do or will not understand the lack of support for their device, leading to a lot of upset customers and reviews. Even the ever-popular Angry Birds &#8211; a game with simpler input and resource requirements \u2013 has had <a href=\"http:\/\/www.rovio.com\/index.php?mact=Blogs,cntnt01,showentry,0&#038;cntnt01entryid=47&#038;cntnt01returnid=58\">trouble in this area<\/a>. Osmos will suffer even more from these issues. I must admit it feels somewhat like opening Pandora\u2019s Box.<\/p>\n<p>Finally, as indie developers who depend on games for their living, we have to ask if it&#8217;s worth it financially. Porting to any new platform is a significant amount of work simply from a support, maintenance and PR standpoint; and in Android\u2019s case the actual development effort <a href=\"http:\/\/www.philhassey.com\/blog\/2010\/08\/03\/porting-galcon-using-the-android-ndk\/\">looks<\/a> to be <a href=\"http:\/\/www.philhassey.com\/blog\/2010\/08\/27\/android-day-11-troubleshooting\/\">significant<\/a>. And while many point to the growing device numbers and market share of Android phones, we&#8217;ve heard that application sales are lagging far behind. Apparently Android phone owners purchase way less software than their iPhone counterparts. Perhaps it\u2019s due to piracy, but I suspect it\u2019s mostly due to the difference in online <a href=\"http:\/\/www.philhassey.com\/blog\/2010\/11\/01\/galcon-looking-for-an-android-publisher\/\">store<\/a> <a href=\"http:\/\/techcrunch.com\/2010\/10\/27\/paypal-android-market\/\">integration<\/a>, and even \u201cculture.\u201d As for numbers, we\u2019ve heard anecdotal evidence that Android app sales are anywhere from 2% to 33% of what they are on iOS. Now, if Osmos were to sell 33% on Android what it does on iOS, we\u2019d be very satisfied. On the other hand, if it only sells 2%\u2026 ugh. In the end, if we could reasonably expect 10%, we\u2019d consider that worth our while. The problem is, it may not even hit that modest amount. If any developers out there are willing to share their numbers \u2013 in absolute terms or in relative percentages \u2013 needless to say we\u2019d love to hear them!! :)<\/p>\n<p>All that said, we do plan to port Osmos to Android &#8212; someday. We have lots of love for open standards and communities, both as users (eg. all our libraries and tools!) and developers (eg. the Linux port of Osmos). So let\u2019s go, Google &#8212; bring on the OpenAL support and we\u2019ll be right behind you.<\/p>\n<p>Hello&#8230;?<\/p>\n<p>Google&#8230;&#8230;?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[edit: Osmos has finally been ported to Android! You can get it here.] A lot of people have been asking us if and when we&#8217;ll bring Osmos to Android. After all, we\u2019ve already ported it to iOS and Linux, so it should be a no-brainer, right? Well\u2026 unfortunately not. We\u2019d like to, but after having [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[2,11],"tags":[],"class_list":["post-3054","post","type-post","status-publish","format-standard","hentry","category-android","category-osmos"],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p5C9wi-Ng","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.hemispheregames.com\/new_blog\/wp-json\/wp\/v2\/posts\/3054","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hemispheregames.com\/new_blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hemispheregames.com\/new_blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hemispheregames.com\/new_blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hemispheregames.com\/new_blog\/wp-json\/wp\/v2\/comments?post=3054"}],"version-history":[{"count":9,"href":"https:\/\/www.hemispheregames.com\/new_blog\/wp-json\/wp\/v2\/posts\/3054\/revisions"}],"predecessor-version":[{"id":4304,"href":"https:\/\/www.hemispheregames.com\/new_blog\/wp-json\/wp\/v2\/posts\/3054\/revisions\/4304"}],"wp:attachment":[{"href":"https:\/\/www.hemispheregames.com\/new_blog\/wp-json\/wp\/v2\/media?parent=3054"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hemispheregames.com\/new_blog\/wp-json\/wp\/v2\/categories?post=3054"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hemispheregames.com\/new_blog\/wp-json\/wp\/v2\/tags?post=3054"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}