

Android is a desolate wasteland when it comes to games - shawndumas
http://www.wired.co.uk/news/archive/2012-10/31/android-games

======
hesdeadjim
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.

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

------
bryanlarsen
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.

~~~
fudged71
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.

------
TillE
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.

------
zrgiu_
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.

~~~
TwoBit
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.

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

------
lsiebert
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?

~~~
fudged71
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.

------
cs702
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...](http://www.asymco.com/2012/06/18/a-more-precise-measure-of-ios-
installed-base/)

------
cageface
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.

------
julianz
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.

~~~
freehunter
>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.

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

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

~~~
TwoBit
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.

~~~
jsankey
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.

~~~
chj
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.

~~~
jsankey
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.

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

------
barbs
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).

------
alamgir_mand
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.

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

~~~
kgarten
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.

~~~
dmix
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.

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

------
lnanek2
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...

------
capo
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!

~~~
Steko
"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.

~~~
capo
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".

------
camus
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.

