informa
/
Programming
Features

Revisiting Android

Android's reputation lags behind iOS, but its install base certainly does not. Game Developer magazine speaks to developers from across the mobile spectrum to get a bead on the challenges and opportunities the platform offers.

A reprint from the May 2013 issue of Gamasutra's sister publication Game Developer magazine, this article polls developers to find out about the challenges and opportunities around developing for Android in 2013. Purchase the May 2013 issue here.

How's Android doing these days?

From the consumer standpoint, Android tablets and smartphones appear to be gaining a little more ground on iOS every year. From the developer perspective, however, early reports of widespread piracy, painful device fragmentation issues, and the perception of a rather tightfisted audience scared many devs away.

Game Developer caught up with devs from industry giants (GREE) and indie powerhouses (Spry Fox) to small studios and individual developers to see how the Android platform is treating them in 2013.

GREE

Ken Chiu (SVP of social games), Anil Dharni (SVP of studio operations), Andy Keidel (VP of engineering)

Prior dev background (platforms): iOS, Android, Facebook
Shipped Android titles:
Crime City, Modern War, Jackpot Slots
Preferred toolset:
Open to all tools depending on the needs of the game. Important to have a strong awareness of all technologies.

Is fragmentation still a major issue for you? Which devices do you target?

KC: It definitely is not a worry but is absolutely a consideration. Android is a huge mobile platform and it is important for us to make sure we have a big presence there and ensure we are always supporting the users and their needs.

AD: Our goal is to ensure compatibility and high performance of our titles with all Android devices, which means we are constantly having to think about different specs and make sure that our game features and mechanics aren't limited by anything around the Android hardware. Our biggest consideration is really making sure that we have the right specs to best take advantage of smartphone hardware and separately the tablet hardware.

Do you have any tips for optimizing the Android dev process?

AK: We've come up with several best practices to improve our Android development workflow. To handle the many variations in screen sizes, we specify UI dimensions for the most common screen specs, and then match and scale the UI dynamically for all other screens. Another key to efficient development workflow is a solid understanding of the lifecycles of the Android application, activities, services, etc. While we have found most Android-specific features to be helpful in structuring our application codebase, we developed a custom approach to our in-memory game database to provide easier support for live content updates, which we perform several times per week.


Modern War.

How have your games sold on Android?

KC: Our games have done really well on Android platforms. All of the titles we have released on Google Play -- Modern War, Crime City, Jackpot Slots -- have been pretty consistently in the top-30 grossing since their launch (which for something like Modern War, means it's been almost a year). So we are seeing tremendous success on Android devices.

Which app stores do you support? How do your Android sales compare to your sales on other platforms?

KC: We support iTunes, Google Play, and Amazon. We have seen tremendous success on all of the stores.

AD: We have always worked exceptionally hard to create game experiences that are exciting for gamers, and as such have always seen strong retention rates, strong support of the titles, and great IAP revenues. Our users have been proven to be extremely engaged on both iOS and Android, showing us that there is a very even divide, and we don't see one OS showing higher success than the others. We plan on continuing to support them both and make sure our games have long lifetimes.

Overall, have you found Android dev to be worth the extra work? Are you looking into other mobile platforms?

KC: Absolutely. Android is one of the biggest and fastest-growing markets right now. Android phones and tablets are breaking out all over the world and are most definitely a power to keep an eye on. That being said, I think the key for us has been balance and making sure we always support both iOS and Android. As for other platforms, right now we really look to only those two (Android and iOS), but we are always keeping our eye on other technologies and platforms and their markets.


Spry Fox

David Edery (CEO), Ryan Williams (director of danger)

Prior dev background (platforms): Web, Steam, Android, iOS
Shipped Android titles:
Steambirds, Triple Town
Preferred toolset:
Unity

Is fragmentation still a major issue for you? Which devices do you target?

DE: It is not a major worry for us. Fragmentation is a fact of life. We deal with it, and we're a very small company with an extremely small customer-support team. Triple Town was developed by a single engineer for both iOS and Android. If we can handle it, anyone can. Our QA library is mainly comprised of Nexus devices, the more popular Samsung devices, and a couple of Kindle Fires.

Do you have any tips for optimizing the Android dev process?

RW: I've found the biggest boost in development productivity comes from reducing the time between writing code and experiencing the results of the code in-game.

For Unity, which is the engine we've used for mobile development, this means taking advantage of the hot code reloading functionality. It's not well-documented or supported, but if you are playing your game in the Unity Editor and you save a change to the code, Unity will compile the new code and start using it within a few seconds.

It's awesome to use this to work on procedural generation, because you can simply set your generation to repeatedly loop in one screen, and edit your code in the other, and see the changes in action right away. Bugs that take a while to reproduce become much faster to solve: Play the game until you get to the point that the bug appears, and then start hacking on the code.

This doesn't come for free, though; the process by which the editor does the reloading involves a custom serialization of every game object, and not every data type is supported by this serialization. Specifically, dictionaries and generic user-defined classes do not work with hot reloading, and once you go through a hot reload cycle, they become null.

The hot reloading takes place entirely outside of your code and control, and the only way your code can detect that a hot reload has happened is that all the unserializable member variables are suddenly null. If you want to use hot reloading as part of your development process, you have to either refrain from using unserializable types entirely, or find some workaround.

I really wanted to use dictionaries, so I wrote a small class that copies the contents of the dictionary to a pair of lists (which are serializable), and restores the dictionary from the lists when it's found to be null. This adds a fair bit of boilerplate to each dictionary's declaration, so I feel that it could be improved further, but it definitely works. I could share the code for this; it's relatively short.


Steambirds
.

How have your games sold on Android?

DE: We've done very well on Android. Triple Town has been downloaded over four million times, and Google Play is the top-selling platform for Triple Town. I'm not sure off the top of my head what exactly our conversion rate is there relative to iTunes and Amazon's Appstore, but it is relatively healthy. Amazon has been a bust for us, unfortunately.

Overall, have you found Android dev to be worth the extra work? Are you looking into other mobile platforms?

DE: Yes, it's worth it. We're always considering other platforms, but at present we are not developing for other mobile platforms, no.


Animoca

David Kim (CEO)

Prior dev background (platforms): iOS, Web, PC, consoles
Shipped Android titles:
Star Girl, Pretty Pet Salon, My Car Salon, Robo5, Pretty Pet Salon Seasons, Lord of Magic, Pretty Pet Toy Store, Pig Rush, My Car Salon 2, Pet Café, Pretty Pet Tycoon, Top Models: Sports Edition, and dozens of others
Preferred toolset:
Depends on the app in question, but all the way from Unity to Cocos2d-x, plus our own proprietary tools

Is fragmentation still a major issue for you?

Android fragmentation is an exaggerated issue. It has never been a worry for us, and we tend to test for greater compatibility than most developers. Different screen sizes are a manageable issue as long as you support the basic Android form factors and let the OS handle scaling.

Processor and graphics power do limit which games can be played on a device, but people who buy ultra-cheap low-end phones are probably not expecting to play too many games on them. That said, Pretty Pet Salon will run on most hardware, and it achieved substantial success, so it is possible to work around the limitations.

In terms of software fragmentation, this varies hugely country by country. We publish our findings on our blog, and you can see the radical differences between high-end and low-end markets there.

We look at it as an opportunity -- managing compatibility became a competitive differentiator for us. Really, the fact that the market is fragmented into various hardware and software just means that consumers have choice, which is a good thing. Anyone struggling with these fragmentation issues simply needs to figure out which devices and OS versions are most popular among the consumers/regions they want to target, and then tailor their apps to those devices and Android versions, if necessary. It can sometimes require slightly more development time and Q&A resources to address the Android market, but not as much as you'd think if you look at some of the alarmist reports on the issue.

Do you target and test for specific devices?

Yes. Although our general principle is to target and test for a multitude of devices in order to offer everyone an experience that is as good as possible, we still have to prioritize the devices most used by players of Animoca games. The top devices vary by region and by country. In India, for example, where most users are on lower-end, more affordable phones, the top 10 phones for Animoca users tend to be relatively inexpensive Samsung devices, such as the Galaxy Y, Galaxy Fit, and Galaxy Ace, while the most common device in the higher-end market of Hong Kong is the much pricier Galaxy Note 2, other high-end Galaxy products, and a couple of high-end Sony devices.

Do you have any tips for optimizing the Android dev process?

  • Build a testing framework in your games where the game plays itself. This is a great aid for the QA team as it adjusts the speed and moves through the levels faster.
  • Minimize external calls to external servers via effective use of caching as well as batching multiple calls together.
  • Test against high-latency networks. Animoca has an internal tool that can traffic shape various network conditions.
  • Catch your exceptions, including run-time exceptions.
  • Use a crash-reporting tool within your codebase and your development workflow. Examples include Bugsense and Crittercism.
  • When you have to do concurrent programming, don't roll your own from lower-level constructs. Try to use high-level facilities such as AsyncTask, ThreadPoolExecutor, etc.

How have your games sold on Android?

Our games have performed well on Android, and many of them have appeared in the Top 100 or even the Top 10 charts. Some of our apps, like Pretty Pet Salon and Star Girl, have reached the Top 10 of the Top-Grossing Apps list, so we are pleased. In total, our apps have been downloaded more than 120 million times. We had high expectations for what Android could deliver because we are big believers in open systems, but when we entered the market Android was definitely playing second fiddle to Apple's iOS. I'd have to say that changed dramatically in 2012: Last year Android really came into its own.

Which app stores do you support? How do your Android sales compare to your sales on other platforms?

Our Android games can be found on Google Play, Amazon's Appstore, the NOOK Store, Samsung Apps, and across many alternatives including carrier-specific app stores. Some stores do drive more installs than others, but in general we've found it beneficial to be in as many as possible.

Typically we have found that Android apps monetize slightly lower on a per-user basis than iOS, but this is a very complex matter. The Apple product spectrum is more expensive than Android, and most studies have shown that Apple users tend to be financially better off than Android users. That means that iOS users are more likely to have greater disposable income and as a result are more likely to spend more on their devices, compared with Android users.

This is not surprising, because Android offers a remarkable number of "budget" hardware options catering to the less wealthy, and the platform is (after all) a few years behind iOS in terms of in-app purchasing and the associated culture. Android also tends to be much more popular in poorer emerging markets like India or China, where several barriers to payment exist (culture, comparatively lower purchasing power, lack of easy payment options, etc.)


Pretty Pet Salon HD

But all that is changing very fast: The Android high end is becoming slicker and flashier with every new phone released, which drives up device cost and grants Android developers access to a wealthier user base. And the sheer number of Android users today and projected over the next couple of years will lead to correspondingly huge opportunities. The popular view that Android monetization is automatically inferior to iOS is rather myopic, especially in the medium- to long-term when you factor in the scale of the Android audience.

Overall, have you found Android dev to be worth the extra work? Are you looking into other mobile platforms?

Yes, Android development is absolutely worth the slight amount of extra work it requires to manage fragmentation, and we do recommend it to other developers because right now this is definitely a forward-looking platform. Android is our primary focus right now, but our DNA is very much cross-platform and we wouldn't want to tie ourselves exclusively to one platform. Windows 8 is a beautiful system that already has some great hardware, and Blackberry is making an interesting case for the BlackBerry 10.


Vector Unit

Ralf Knoesel (CTO), Matt Small (CEO)

Prior dev background (platforms): PC, N64, PS1, PS2, Xbox, Xbox360, PS3, Wii
Shipped Android titles: Riptide GP, Shine Runner, Beach Buggy Blitz
Preferred toolset: Our own game engine/tools, plus Bullet Physics and FMOD

Is fragmentation still a major issue for you?

RK: Fragmentation is a worry, yes, but not a major worry anymore. We design our games to support any aspect ratio from 4:3 to 16:9 and beyond; lack of Neon floating-point math is not a big deal anymore with today's clock speeds and CPU performance; OS version support is not such a big deal for us since we're now able to require 2.3 (Gingerbread) so that we can use NativeActivity.

The biggest issue for us is the tendency for the manufacturers to ship with subtle shader compiler bugs in their OS flavors. This can be a bit of a nightmare because the same device can have different bugs based on which OS version the consumer is running.

Do you have any tips for optimizing the Android dev process?

RK: For dealing with texture compression, we use ETC1 for non-alpha textures, and DXT5 for textures containing alpha. For devices that don't support S3TC, we decompress at load time (starting with lower-level mips on RAM-limited devices). This significantly simplifies asset packaging.

MS: On the content side, the biggest gotcha is UI. But designing the UI for multiple resolutions and aspect ratios does not have to be a huge headache. The key thing is to make it flexible, with elements that float, stretch, or are locked to different edges of the screen. Also don't integrate the front-facing UI elements (like buttons) too tightly with the background, or make your backgrounds aspect-ratio-dependent.

We design for a 3:2 default aspect ratio, and make everything slide up/down or left/right from there. The backgrounds are made up of tiling/stretching graphic elements or 3D scenes. That way you can basically throw your UI against any aspect ratio and you're good to go.


Shine Runner.
 

Do you target and test for specific devices?

RK: At this point we have a decent selection of popular devices representing the various GPU manufacturers, plus a few quirky troublesome devices that are popular enough to warrant support. Generally, we have coverage for the top five to 10 devices according to the developer console statistics. When a hot new device comes out that we know is going to be huge, we pick one up and add it to our roster.

MS: If we get a lot of support emails on a device we don't have, we have to balance the popularity of the device with the severity of the problem and the time we think it'll take to fix it. If it's a serious problem on a popular device, we'll buy one and fix it. If the problem is showing up on an obscure or very old device, we may choose instead to filter that device in Google Play.


How have your games sold on Android?

RK: Our games have been doing well on Android, better than expected. Our most recent free-to-play game Beach Buggy Blitz is about to hit 10 million downloads on Google Play.

MS: All of our games have been profitable. Our first game, Riptide GP, has over 250K installs, at an average MSRP of $1.99, and we made it for about $100K, so that's pretty good. It's not Angry Birds money, but it's more than enough to keep a small company going if you keep your costs down.

How do your sales compare to your experience with other platforms?

RK: The main advantage of the Android platform for a small developer is the fact that the Google Play store ranking system is more difficult to manipulate by the big publishers with their user-acquisition spends. Rankings are based on more than simply number of installs in a period of time.

This means that quality apps tend to creep to the top and have some decent inertia once they get there. Regarding the consumer, we find that Android consumers are less willing to pay for apps/in-app purchases and piracy is much more rampant. However, in our case we're able to overcome this with volume.

MS: Our experience has been the opposite of what you generally hear: We have done significantly better on Android than on iOS. We have noticed that in our free-to-play game-conversion rates are much better (about two to three times better) on iOS, but the volume on Android more than makes up for it.

That said, oddly enough Android players seem less concerned about price on pay-to-play games. From time to time we'll put Riptide GP on sale from $1.99 to $0.99 -- on iOS we see a big (temporary) jump in sales that more than makes up for the 50% discount. But on Android we do it less often because it barely moves the needle.

Which app stores do you support?

RK: On Android, we have used Google Play, Amazon, and B&N NOOK. Google Play has by far been the most successful. We have tried some other app stores in the past (carrier-specific, prepaid cards, etc.), but sales on those have been insignificant. We are also partnering with Incross to sell in Korea (SKT T-Store, etc.).

MS: Our experience with carrier- and hardware-specific app stores has been pretty abysmal. We get royalty payments of like $2.50 for a month's worth of sales. Amazon and NOOK have been pretty good for us, but my feeling is that their audiences lean more toward casual and puzzle-type games, and the discovery mechanisms in those stores are not as well developed. Like Ralf said, the vast majority of our revenue comes from the Play Store.

Overall, have you found Android dev to be worth the extra work?

MS: Android development is absolutely worth the work, but you have to plan to be cross-platform from the very start of development. It's a lot harder to take a game that was specifically made for iOS and then belatedly port the thing over.

RK: Also, we are currently making our games available on BB10 where we are seeing moderate success (more than expected) due to the "early to market" effect.


Hidden Variable Studios

Charley Price (CCO)

Prior dev background (platforms): GBA, PC, Xbox 360, PS3, Flash, iOS, Android
Shipped Android titles:
Bag It!
Preferred toolset:
Unity

Is fragmentation still a major issue for you? Which devices do you target?

It's always a worry, but in some ways the variety of devices is so broad, it pretty much demands that you define your min spec criteria early in the development process so you can make sense of it all. Given that we simultaneously develop for iOS as well, our min spec decision hardware-wise on that platform helped to implicitly inform the min spec choices we made for Android.

Knowing the risks of different screen sizes/aspect ratios, we've developed our titles with floating UI elements that anchor (or are positioned relative to) the edges of the play space, and made sure that slight variations in viewable space don't impact gameplay dramatically. As such, when new devices and aspect ratios were released, we've generally been able to support them right out of the gate.

As for devices, a combination of App Store data and Flurry analytics gives us a pretty good sense of what types of devices are being used to play our game. As such, we tend to focus much of our attention on our first-gen NOOK Color and Kindle Fire (among our most popular devices with narrow aspect ratios) and our Nexus One (as a min spec).

Do you have any tips for optimizing the Android dev process?

Most of our Android-specific notes end up being directly related to our experiences developing in Unity. For example, many of the risks of creating Android-specific plug-ins can be mitigated using inexpensive, off-the-shelf solutions from sites like Prime31.com.

Going into more detail, one of our engineers, Clark Kromenaker, wrote up some thoughts on his blog about some of the pitfalls inherent in storing data on Android devices (for example, local memory vs. SD card memory), which would likely be a good read for new Android devs.

How have your games sold on Android?

We first released Bag It! back in late 2011 on both iOS and Android simultaneously. Since then, we have released it on almost a dozen different Android app stores, both worldwide and foreign territory-specific (including Samsung, Mobiroo, and Fuhu to name a few less-common examples), but the only ones that have really generated a meaningful financial return for us thus far have been Google, Amazon, and B&N NOOK.

Overall, our iOS versions of Bag It! have outperformed our Android SKUs in terms of total downloads 7:1 (although if you remove one big iOS promo event it's closer to 3:1). However, if you just count paid downloads, iOS and Android as a whole are neck and neck (with iOS slightly ahead). That said, IAPs still favor iOS, with almost a 3:1 advantage over Android.

These numbers are generally pretty surprising to fellow mobile devs, many of whom have opted to eschew Android as a platform for fear of lack of sales. In particular, both Google Play and B&N NOOK have been pretty equal in terms of sales, both outperforming Amazon by a reasonable margin. One of the reasons we suspect we've been so successful on the B&N NOOK store is the fact that it currently only supports premium games (with free "trial" versions available for full titles). As such, as a premium title, you're able to avoid the glut of freemium games on other platforms, which allows you to stand out a bit more.


Funny thing is, we originally didn't have any intention of launching the game on the B&N NOOK. As it happens, we were showing the game to some folks at an Android Developer's Conference, and one of the B&N NOOK reps suggested we check out their device. We loaded up the APK then and there, and it worked like a charm. A few hours of setup later and we were pretty much ready to roll on their store -- which ended up being one of our most consistent revenue streams. Supporting Android uniquely enabled us to be able to take advantage of these types of opportunities, with relatively low overhead and potentially significant upside.

As another example, we were approached about releasing Bag It! on the Nabi Fuhu (a kid-centric Android tablet), which required some custom content (no external links, etc.) and support for the hardware. Given the uncertain return on investment, we were skeptical of investing the time and energy required. After discussing with them, we were able to arrange a device preload deal with our Lite SKU. If nothing else, this helped to build awareness of our game on the platform, and gave us some experience with preloads that we hope to leverage moving forward.

Overall, have you found Android dev to be worth the extra work?

Absolutely. For us, releasing on Android has been a critical aspect of our success. After some mild success on iOS at launch, we (like many others) soon experienced a pretty precipitous decline (with oscillations thereafter).

Meanwhile, our sales on Google Play exploded out of the gate (courtesy of a timely feature), and -- even after the feature ended -- each of our Android SKUs remained strong, consistent performers.

Beyond the revenue, we also continued to accumulate heaps of great customer reviews. This gave us confidence that the issues we were experiencing on iOS were primarily discoverability issues, as opposed to concerns about the overall quality of the product.

As such, we stuck with it, continued to actively support the game, and pursued other promotional opportunities -- eventually leading to a temporary free promotion (supported by Appoday) that netted us over three million new downloads. Were it not for our performance on Android, we may have shifted our focus to other projects earlier and missed out on our iOS opportunity.

It goes without saying, but discoverability is one of, if not the biggest risk for any mobile title. As such, the more effectively you can convert any press or word of mouth into an immediate, impulse download, the better chance you have for overall success.

Naturally, Unity certainly helped to make this easier for us than it would have been had we used a different engine. That said, once you figure out exactly what your min specs are, and get some experience with the idiosyncrasies of the OS, it's not that scary.

Are you looking into other mobile platforms?

We've explored options for both, but currently the time required to get the game ported over relative to the known ROI makes it a risky proposition. Instead, we have spent those resources focusing on our second and third projects. However, alternative platforms are definitely still on our radar! We are constantly looking at trends to see when we may justify a move to a new platform. Case in point, we're eager to see how the OUYA performs, and already have tentative plans to bring Bag It! (and future titles) to that platform as well.


Shiny Shoe

Mark Cooke (cofounder)

Prior dev background (platforms): Xbox, Xbox 360, PS2, PS3, GameCube, iOS, Android, Sifteo Cubes
Shipped Android titles:
Offworld
Preferred toolset:
Unity

Is fragmentation still a major issue for you?

Thanks to the great work done by the engineers at Unity, it has been easy for us to get our games running on a wide variety of Android hardware. As a tiny studio, Shiny Shoe has access to a limited number of devices to test on, but every device we've been able to get our hands on runs our games.

What is frustrating and creates a concrete support problem is that there are so many devices out there that there is literally no way we can support them all. We receive a few support requests a week where a particular part of the game is nonfunctional on a specific device/OS combination. I want to help these customers, but we literally can't; we don't have the time or money to be able to get test hardware in the correct state to find and fix the bugs that are being reported.

When we shipped Offworld we decided to launch on both Google Play and the Amazon App Store, another form of dealing with Android fragmentation. This necessitated additional work in terms of IAP processing and other store-specific changes. This work wasn't particularly challenging, but also wasn't free in terms of engineering and QA time. In our case it wasn't worth it; we have somewhere on the order of 100 times the number of downloads on Google in comparison to Amazon.

Although we have run into some issues, overall fragmentation hasn't been a huge issue for us and we are happy to be working on the Android platform.


Offworld.
 

Do you have any tips for optimizing the Andr

Latest Jobs

Sucker Punch Productions

Bellevue, Washington
08.27.21
Combat Designer

Xbox Graphics

Redmond, Washington
08.27.21
Senior Software Engineer: GPU Compilers

Insomniac Games

Burbank, California
08.27.21
Systems Designer

Deep Silver Volition

Champaign, Illinois
08.27.21
Senior Environment Artist
More Jobs   

CONNECT WITH US

Register for a
Subscribe to
Follow us

Game Developer Account

Game Developer Newsletter

@gamedevdotcom

Register for a

Game Developer Account

Gain full access to resources (events, white paper, webinars, reports, etc)
Single sign-on to all Informa products

Register
Subscribe to

Game Developer Newsletter

Get daily Game Developer top stories every morning straight into your inbox

Subscribe
Follow us

@gamedevdotcom

Follow us @gamedevdotcom to stay up-to-date with the latest news & insider information about events & more