Hacker News new | past | comments | ask | show | jobs | submit login
Android is a desolate wasteland when it comes to games (wired.co.uk)
35 points by shawndumas on Nov 2, 2012 | hide | past | favorite | 49 comments



Some counter points: $9M in pledges towards the Ouya console. 3 different humble bundles for Android, each pulling in around $1M. A 4th bundle is going to start in a few days. Over 100,000 different games are available from the Android Market. The current top paid game on the Android Market is a $5 game.

I game on my Android phone and haven't noticed a lack of quality games. I certainly haven't spent much on games, though. I've got several dozen games that I've paid for, all of which I've purchased through Google's 10 cent and 25 cent sales. I've spent more to get games through the Android Humble Bundles.


Playing devil's advocate for a moment, but pledging for a better gaming experience is almost an indication that it's not currently a good gaming platform. Would people have pledged that much if their phone had all the gaming support and streaming to televisions that people wanted? I don't think so.


I don't think the fact that the majority of your Android purchases were through 10-25 cent sales acts as a counterpoint. Purchases at a price point that low are basically a rounding error because processing fees will devour anything resembling profit. (Maybe for those sales Google still pays the app vendor its normal list price as a promotional thing?)

You can't use current top paid games as an example either; it's possible to get to the top of any of the mobile markets if you're willing to invest tons of money into advertising and paid installs. You need to look at overall trends to get an accurate picture of what the market is like.


I'd like to propose another reason: sales tax.

Simply put, the Android Market (Google Play Store, whatever) is unusable for small independent developers. With iOS, Apple acts as the merchant for all transactions and just sends you royalties. But Google foists all the responsibility for collecting tax from each individual customer directly onto the developer.

For a real business with an accountant, that's fine, but if you're one or two people in a basement who just want to develop and market a game, that's a nightmare. For that reason alone, developing for iOS is so much more attractive.


The whole Android environment isn't very friendly to games, requiring a lot of work to bring a game to it from iOS:

- tons of resolutions to support

- Tegra, no tegra, OpenGL ES 1.1, OpenGL ES 2 ..

- Google banned any form of paid apps in their first year, with the reason that their payment processing wasn't ready yet. I had two apps removed from the Android Market in 2008 because they were using a form of in-app purchase (powered by PayPal), thus making people get used to free games, powered by google's advertising

- there are TONS of indie developers making good games, who can't sell apps on Google Play because google doesn't allow them to. They keep saying that's because of legal issues, but somehow Apple, Samsung, WebOS had that problem solved... Things got better with the last inclusion of some countries on the allowed list(Poland, India..), but it's still not there

These being said, a lot of money can still be made on Android with games. It just requires an amount of work that most companies aren't comfortable with.


It goes well beyond just OpenGL 1.2 vs. 2.0. There is a large disparity in how OpenGL is supported. For example, some texture formats will be supported by one device but not another, etc.


Not to mention crippling driver bugs. For example, many Adreno 200s try to read invalid memory and segfault if you call glTexSubImage2D.


I've been thinking about it, and I'd like to use a metaphor. It's imperfect, but it's basically true.

IOS = Console Game Android = Desktop

IOS, you basically know your system, but your system limits you. You have to get permission to sell from the maker of your system. You get exclusives, because it's fairly easy to build to your system.

Android You can have a wide variety of systems which can mean a lot of potential issues, but can have a minimum and suggested specs, and can even add features if the computer supports them. You don't have to sell your application through the official store, or any store, since people can (usually) load what they want on their device.

Thoughts?


Not a bad example, considering many android users fiddle with CPU scheduling/overclocking, performance tweaks, controller input and mappings, etc.

I'm not much of a gamer, but it would be interesting to see this analogy taken further, to see where Android can build on these strengths to be the preferred gaming platform.

Maybe OUYA will improve things as well.


There's a simple explanation for it: a lot of kids who don't have smartphones own iPods, and kids love playing games. According to Horace Didieu, around half of all iOS devices sold to date are iPods.[1]

--

[1] http://www.asymco.com/2012/06/18/a-more-precise-measure-of-i...


This article wildly overstates the case. Sure, iOS is a better game platform right now but there are plenty of commercial studios putting out quality games for Android too.

Unless games are your primary use case for your device I don't think it's a decisive difference the way it is for music production apps, for example.


Who cares? Maybe we have better things to do than play games on phones.

I'm onto my second high-end Android phone and I've bought lots of apps and games. At the end of the day I couldn't give a fuck about playing games on my phone. I use the phone and the apps all the time though.


>Who cares?

People who like games, and developers who make them.

>Maybe we have better things to do than play games on phones.

Is that a statement regarding all Android users, or your clique, or...? Because many of the most popular apps on all platforms are games. People like games.

>I couldn't give a fuck about playing games on my phone.

This doesn't necessarily hold true for everyone, which is the point being made.

>I use the phone and the apps all the time though.

So do I. But I also use the games all the time, too. If this doesn't affect you, then good. I'm glad you're enjoying your phone. But you seem dismissive of an entire market just because it doesn't suit you. That's not a good mentality to have.


What's holding me back from gaming is battery life. I struggle to get through the day as-is on my Galaxy S, with low screen brightness and underclocked processor.

I don't know if this applies to a lot of other people, but I personally think that once phone batteries are increased, we'll see more people gaming on their phones.


Maybe the solution is making native (non-java) development on Android a first-class citizen.


Can you elaborate on why you think it's currently a second-class citizen?


Native Android devlopment (i.e. C/C++) is a major PITA. Biggest reason: there still is no debugger for C/C++ code; you have to do all debugging with printf. In 2012. I'm not kidding. Android NDK didn't even support the C++ Standard Library until recently.

Another reason why Android is losing on the developer front is that development environment setup and usage, even for Java, is worse than Apple's. It's usage of Eclipse is like duct tape and glue.


There is support for debugging native code with gdb, and in the latest Android tools releases this is integrated into Eclipse via the CDT. However, it can still be difficult to set up - if it doesn't work the easy way it's very difficult to figure out how to fix it.

And although there are quirks (mainly performance related) in the ADT/Eclipse combo your description is far from my experience. The overall experience is better, IMO, than Xcode. The latter is the buggiest IDE I've ever used.

Frankly AppCode/IntelliJ beat both in many respects, but frustratingly don't quite cover the full range of functionality. It's difficult to make the leap when you need to go back to Xcode/Eclipse to accomplish some of your work each day.


You really need a lot of nerve to talk about how ADT is better than xcode.

I used xcode for more than three years now, wrote a lot of object c/c/c++ and even assembler, and yet to find any major bug. This year I tried to port one of my app to Android, and the biggest challenge happens to be debugging native code. Basically you can't, there are some tutorials to set up gdb, but it shouldn't be that hard, and I don't bother. I ended up with printf, of course it is a nightmare.

If Google can deliver a xcode quality IDE, it'd already ruled the world.


You're being unnecessarily hostile. Obviously our experiences have been different having used the same tools on different projects. I find plenty of problems with both IDEs, but for me Xcode has been the more painful because of bugs.


That must be a bad day with Eclipse. Different projects, maybe.


Really? There is support for native code debugging if and only if you go through a boatload of non-obvious, unofficially documented steps. On Xcode I can fire it up and instantly set breakpoints - without settings tons of non-default settings, recompiling magic gdb.setup files, and hacking the built-in build scripts.

Then when you get to single stepping its ridiculously slow. Anyone that has used or attempted to use the NDK debugger cannot say with a straight face that it is up to par with modern tools.

Oh...then there is the issue of ridiculously uninformative stack traces.

Its generally easier to build your code in an x-plat fashion in C++ and then work out as many bugs on iOS as you can and then - as the parent said - leave printf turds everywhere.

Stone knives and bear skins...


I recently ported a PC game written in C++ to Android. I basically used the command-line gdb to debug the program when I needed to. It was a PITA at times, especially when it would sometimes lose track of the program when stepping through. It definitely felt a bit half-baked. I definitely can't say the experience was easier than using Xcode.


Show me a link that actually describes how to make it work. I have yet to see one.


tools.android.com/recent/usingthendkplugin

It's a relatively new addition, and as warned above it still might not work in all setups in my experience. But it's worth a go.


IntelliJ is a much better Android IDE than eclipse and far superior to Xcode.


I agree ... still I have the problem that the Android development chain on my Mac breaks from time to time. Disclaimer: I'm developing for iOS and I'm quite new to Android (playing with some code from time to time).

Yet, debugging with a galaxy nexus on usb is buggy for me (sometimes it works sometimes it won't). reboot might help ... I just love instruments in xcode.

As code editor I use MacVim (faster and a much cleaner look for me compared to IntelliJ as it's a coca citizen and not a Java GUI app ... ).


I agree iOS tool chain is more mature overall.

I can't imagine giving up all the code editing features of IntelliJ for any generic text editor though. All that java and XML without code completion and refactoring is just too horrible to contemplate. If you're determined to go that route then why not just ditch the IDE entirely and do everything from the command line?


MacVim has good code-completing and most of the advanced features out of the box, if you use YADR or similar ( https://github.com/skwp/dotfiles ). I like to have the same environment regardless which language I'm using ( objective-c, python, java ... latex, html).

I usually use Xcode/IntelliJ for refactoring and some more advanced functionality.


I think this is one of the reasons I always shied away from Vim. I can use my basic Emacs muscle memory in almost any text editing environment. But I'm sure you can brew up a pretty powerful Vim environment too with a little legwork.


"Another reason why Android is losing on the developer front is that development environment setup and usage, even for Java, is worse than Apple's. It's usage of Eclipse is like duct tape and glue."

I think this is mere perception vs reality. Android development environment is far superior to XCode. Using IntelliJ for Android Development is a true pleasure working with Android. I have no problems debugging over USB on my Mac ever.

The game industry is incredibly rigid to any change. Once they've found their horse they will not walk away from it, and show little interest in changing how they approach development ever. This isn't the first time we've seen some long article with game studios wringing their hands over any change.


All apps on Android require Java to run currently in some way or another unless you want to have a purely browser based game. At the same time, Google sits on the fastest javascript interpreter out there. It would be great if Android could expose native permissions to Javascript and have web apps like Mozilla's Firefox OS. I know they've made a push for holo themes and I would be willing to write in a different markup language to avoid writing in Java


I don't think JavaScript is what activepeanut had in mind when he(?) was talking about "native" development. HTML5 is a wasteland for most types of games as well.

Allow Android games to be fully written in C/C++/Go with a fat binary format to support ARM/x86 and now we're talking. You can kind-of-sort-of do native development in Android using the NDK but it is much more of a pain in the ass than it should be because Android's userland was designed so tightly around Dalvik and Google has always treated the NDK as a bit of a red-headed stepchild (eg. it was never officially supported on the x86 Google TV boxes).


i dont understand why having C/C++ would stop the "wasteland" - i don't believe java to be an inferior language, and as you have claimed, the debugging/IDE support for java is much better than NDK.

The only possible reason having better support for C/C++ development is so that ports are easier (assuming the original is written in C++).


> the debugging/IDE support for java is much better than NDK.

That's kind of the point; the tooling for native development is crap compared to working in Java, which, while a fine language for lots of purposes, brings a few performance penalties that can inhibit game development. Apart from the overhead of a VM, games often require precise timings that are difficult to achieve when a garbage collector can be running at unpredictable times. And I think you're dismissing the porting angle a bit quickly. When faced with the choice between converting your entire codebase to a different language, using difficult tools with poor debugging support, or starting a new project on a platform you're already successful on, which would you choose?


The reason for having better support for C/C++ is that you shouldn't force developers to use tools that they would rather not.

If you want more people to develop for your platform let them develop for your platform the way they are comfortable. Support C, Ruby, Pascal, Lua, Lisp, BASIC and even Logo.

Not perl though, That'd just be sadistic.


Perhaps the use of common native frameworks could reduce the pain of porting from one platform to the other. I'm currently working on a side-project in Cocos2d-x, which is a re-implementation in C++ of the popular iOS framework Cocos2d. This allows projects to compile natively for Android as well. It's a relatively new framework, but it seems to be quite stable, and I believe it has financial backing (can't remember by who).


Although I see how piracy may be a huge hindrance to Android apps not "selling" well, it can be battled through a smarter backend. Most devs have yet to place the game behind a paywall to protect it despite APKs being passed around. That's just one primitive way to help with piracy.


I don't mind, SNES emulation works brilliantly. I can download new ROMs directly from the browser.


did you read the article ...? Andorid developers are complaining about piracy and don't see that any effort to port their games will pay off. Your solution to the problem: let me just play games not developed for the platform distributed in a legal grey area.


Offering my opinion on the situation as a consumer != proposing a solution.

Gaming on Android doesn't "stink" for me as I've found a way to play vintage games using emulators. Which I would certainly pay for if the Nintendo/copyright owners offered it as an option on Android.


ah ... sorry I misread. That's valid.


It's much simpler than this. The native development environment, compared to iOS, is just trash. As a developer, I cringe every time I have to build and test my code on an Android device.

On iOS, I can have a build running and drop into a debugger directly on device in a single button click. On Android? Ha. First I have to boot up Eclipse, set a breakpoint in our Java bridge code, start debugging on a device (assuming it connects when I plug it in), manually attach GDB, now set my native code breakpoints, then resume in Eclipse. If I'm lucky and the stars have aligned, GDB will break where I want it to and maybe give me a stack trace that is accurate.

Here's another example. On iOS there is a wonderful OpenGL debugger. At any point in my game, I can hit the snapshot button and I am presented with a state-change-by-state-change list of every single command I have sent OpenGL. I can step through each of these and see my framebuffer get built one draw call at a time. Totally invaluable for finding errors and inefficiencies. I can even have a code breakpoint trigger this debugger.

On Android? Well this is much, much tougher. I first have to find out which GPU series the device is running (PowerVR, Tegra, Adreno, ARM), then I have to search the vendor's website for their native debugger. When I find it, it is of course, Windows only. So I have to now boot up my VM. To connect my Android device to the Windows VM, I have to first disconnect it from my host OS (meaning I can no longer debug), then re-connect it. Then, I have to locate special Windows drivers for the specific device (most don't work out of the box on Windows).

At this point the steps vary. For a PowerVR powered Android device, for the native debugger to work, I have to jailbreak the phone and manually copy special debugging .so's (that will brick the device if it reboots with them enabled). Then once this is done, I can attach the OpenGL debugger in my VM and try to capture a frame. I say try because these tools are usually so poor that they crash outright when you try to use them. For the PowerVR debugger, it will only capture ES 1.1 frames -- the ES 2.0 will cause an instant hard crash.

What further complicates this is that the wide variety of GPUs that power Android devices vary greatly in their performance, capabilities, and their interpretation of the ES spec. The Adreno 20x series of GPUs, for instance, have a terrible shader compiler that refuses to treat compile time constants as valid indices for vertex varyings. This works flawlessly on every other mobile GPU, but on an Adreno you'll be faced with a black screen until you figure out why your shader was refused.

/end rant.

I will throw Android a bone here however. It is vastly, vastly, (did I mention vastly?) better than the develop environment that you had to use for Symbian devices. That was a special circle of hell that I hope I am never forced to experience again.


Totally agree. We should standardize on just one kind of cpu, gpu. That way we don't have to deal with any compat issues.


Hmm, I'm really enjoying Sonic from Tegra Zone. If anyone can line up awesome games it's NVIDIA. Also Osmos is awesome. Their numbers about there being less paid apps seems kind of bizarre to me. A good game dev uses in-app purchase instead of paid apps since it monetizes so much better...


So beneath the baiting title the author's points boil down to "there are more exclusive games on iOS", and "Android owners are cheap pirates", there is no mention of paid app encryption nor the increasing payment options (carrier billing, gift cards).

It's a ranting stereotype-enforcing blather piece by some attention seeker picked up as a guest blog on Wired UK. I hate this!


"there is no mention of paid app encryption nor the increasing payment options (carrier billing, gift cards)."

Probably because neither of those things really have to do with the selection of games available.

"the author's points boil down to "there are more exclusive games on iOS","

Or rather, 'many of the best mobile titles are exclusive to iOS or first on iOS'. Which was exactly what his title indicated.

"ranting stereotype-enforcing blather piece"

Irony crits you for 700,000.


They have everything to do with the piracy and payment points raised, and I'd argue that a direct link can be charted between securing developer compensation and the availability of games. As for the title: being 2nd place is hardly a "desolate wasteland".


The truth is you can find superior games on iOs no question about it. And from a developper perspective , the ROI on Apple plateform is usually better if you make paid app. It is hard to sell anything on Android, and in-app purchase doesnt always make sense with all kind of apps. because if beating the game only means purchasing somme goods, the game lose a lot of interest.




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: