

"Battleheart" developer quits Android - jemeshsu
http://mikamobile.blogspot.com/2012/03/our-future-with-android.html?m=1

======
Irfaan
Not my insight, but one of the more informative comments I saw in the article
Slashdot linked to on this topic
([http://www.electronista.com/articles/12/03/10/mika.mobile.sa...](http://www.electronista.com/articles/12/03/10/mika.mobile.says.android.money.losing.platform/)):

 _I completely support your decision to drop Android like a hot potato.

In the two weeks since starting as a senior graphics engineer at a middleware
company who shall remain nameless, I have learned from coworkers about, or
personally experienced:

\- Drivers that crash if you try to actually use all of the texture formats
they claim to support \- Drivers that crash if you try to actually use certain
ARBs that they report as supported \- Drivers that report supporting 128
shader uniforms but crash if you try to access anything past the first 64 \-
Drivers that report supporting various OpenGL ARBs but actually have a
software path

in fact, I don't believe there has been a single Android device that has come
out so far that is _actually _point-for-point compliant with the requirements
for OpenGL ES 2.0, yet they have no problems claiming to support it nowadays.

GPU support on Android is utterly atrocious, and I've managed to learn this in
all of two weeks at my new job._

As someone that's on the verge of porting some 3D code to OpenGL ES 2.0, this
is awfully depressing. :(

~~~
huggyface
With all respects, why is that comment either a) at all credible, or b)
informative? It is by an anonymous person at some nebulous "middleware"
company (not a description I would ascribe to someone concerned with Android
GPUs...).

The problem with this discussion -- it is ostensibly an iOS versus Android
discussion, as if developers have the luxury of just developing for iOS and
the market will follow (hint: ha! Android made most of its gains when there
little to no apps for it. Apps like Netflix and others followed but didn't
lead. Now you could fill your day trying out new games and apps) -- is that
there are a lot of very, very strongly biased individuals and parties, and the
discussion gets completely crowded out by what often ends up being bullshit
(though it takes a lot of legwork and endless excluding to actually discern
that). What I like to see are _specifics_ , but they are shockingly hard to
come by. Lots of vagaries and second-hand accounts of profound all-
encompassing difficulties, but never specifics that could be vetted, if only
to offer a fix or different approach.

In this case of the linked story the vendors used Unity 3D -- why they were
even writing specific shaders (double shocking given that their top-down
sprite graphics, if I am understanding their apps right, are the most bog
standard shaders going) is a mystery.

~~~
Irfaan
This reply hit so very many of my buttons - it's either a brilliant trolling,
or incredibly unfortunate. But either way, my (entirely too detailed)
response:

 _> why is that comment either a) at all credible_

First off - rather than address the content of the original commenter I
quoted, the first thing you do is go after his credibility. An ad hominem
attack, right off the bat?

I don't know the poster. I don't know you either - initially, you're both
equally credible to him. But he at least talked the talk - _all_ the things he
said made complete sense in the context of someone working cross-device with
GL. They dove-tail _in a technical manner_ with the more abstract high-level
picture being painted.

Could he be bullshitting? Of course. But the only folks who benefit from
pseudo-anonymously posting bullshit are griefers and fanboys. And since the
level of technical discussion exceeds what most griefers and fanboys are
capable of, I'm giving him the benefit of the doubt.

Do I want to believe him? Hell no. But do I believe him? Yes.

 _> or b) informative_

What? He EXPLICITLY STATES some of the very specific technical problems he's
encountered. Problems that a 3rd party can verify for themselves to trivially
determine the veracity of his statements. The issues he mentions, assuming
they're real, are major technical hurdles for multi-device development. And
now I know to look for them if-and-when I start hitting issues. Drivers and
APIs lying are a huge deal. And, unfortunately, entirely too common when doing
graphics work.

So I have to ask - what, exactly, is the criteria you're using to judge
"informative"?

 _> The problem with this discussion -- it is ostensibly an iOS versus Android
discussion_

Like fuck it is. I generally try to keep a civil tongue, but that sort of
platform apologism is an insult to every Android developer. Framing it as iOS
vs Android debate? iOS is a red-herring. IF iOS DIDN'T EXIST, THIS PROBLEM
DOESN'T GO AWAY - developers would still be hitting these pain points.

It looks like Android has a problem, and acknowledging it is the first step in
correcting it. Pissy GL drivers exist - as anyone who touched a linux box in
the Bad Old Days is probably entirely too aware.

 _> as if developers have the luxury of just developing for iOS and the market
will follow (hint: ha! Android made most of its gains when there little to no
apps for it. Apps like Netflix and others followed but didn't lead. Now you
could fill your day trying out new games and apps) _

WTH? How is this even related to the comment I quoted? But I'll bite -
Battleheart's developer confirms that they has the luxury of just developing
for iOS. And by making this cut, they're signalling they no longer care if the
Android market follows him. Just like anyone can author a game in DirectX that
just targets Windows can comfortably ignore OS X and still be profitable. It's
sad, but a developer has to be pragmatic if they want the to survive long
enough to release the next product.

And if you really want to be pedantic - the iPhone made all it's initial gain
when there were _no_ apps for it. Remember, on release the iPhone did _not_
have a native market. Developers and users had to cajole Apple into it. But
hey, now iPhone users can "fill [their] day trying out new games and apps".
I'm not sure what the hell this has to do with _anything_ , though.

 _> there are a lot of very, very strongly biased individuals and parties, and
the discussion gets completely crowded out by what often ends up being
bullshit (though it takes a lot of legwork and endless excluding to actually
discern that). What I like to see are specifics, but they are shockingly hard
to come by. _

HOLY FUCK. This quote calls out BROKEN APIS YOU CAN EXPERIMENT WITH RIGHT NOW.
The base discussion itself flows out of a developer expressing _why_ he's
leaving the platform, with specific reasons stated. There is _NOTHING_ here
that can't be verified. And I don't know where the fuck you get off
characterizing a studio that's spending time and money desperately trying to
support a platform to share their work with as many people as they can (which
is why most indie game devs I know do this) as "strongly biased individuals
and parties" against Android.

 _> In this case of the linked story the vendors used Unity 3D -- why they
were even writing specific shaders (double shocking given that their top-down
sprite graphics, if I am understanding their apps right, are the most bog
standard shaders going) is a mystery._

And now you're attacking the developer's competence. :/ Let me twist your
statement around - only an incompetent developer _wouldn't_ use fragment
shaders. They're a great way of providing compelling visual effects without
incurring a substantial performance hit. By using more than just "bog standard
shaders", the creators of Battleheart are demonstrating they're trying
incredibly hard to create a satisfying experience for their end user - a step
up from your cookie-cutter game developers.

Now, getting back to the _actual_ topic - what are some short-term solutions
to this problem? The only thing I can think of is a bunch of developers
banding together and creating a "reference application" that thoroughly
exercises the API on a device (sort of an android-esque Futuremark). And if a
device fails to pass "certification", developers right-off supporting that
hardware. It'd be great if a company with clout like Rovio pushed this, for
example.

A longer term fix would be if Android started incorporating something akin to
the Windows Experience Index. As the platform grows, I fully suspect Android
will have to include something like this to help developers sanely handle the
growing performance gap between devices.

Does anyone know if Google does any driver certification?

And a completely unrelated question - huggyface, may I ask who you are? You've
got a karma that doesn't match your listed contributions (A 60-day-old account
with 12 comments, no submissions, and over 420 karma), which has me terribly
curious.

~~~
huggyface
_This reply hit so very many of my buttons - it's either a brilliant trolling,
or incredibly unfortunate_

What a glorious way to lead into an equally valuable comment.

 _First off - rather than address the content of the original commenter I
quoted, the first thing you do is go after his credibility._

Unsupported, undetailed, unsubstantiated claims by an unknown person working
doing who knows what at an unknown company. HEY EVERYBODY WE'VE GOT AN EXPERT
HERE! See if someone says "a product claims that it has 128 shader uniforms
but it really only supports 64", name and shame it! Why are these details
always so astonishingly vague?

 _Battleheart's developer confirms that they has the luxury of just developing
for iOS. And by making this cut, they're signalling they no longer care if the
Android market follows him._

They strangely have yet to either withdraw their products from the Android
market (which ultimately they should be forced to), or even make a comment to
prospective buyers. But they have very loudly pandered to the Apple audience
(this story has appeared on every single Apple blog and news site), eliciting
sales in the Apple sphere by essentially going after the illusory foe.

 _This quote calls out BROKEN APIS YOU CAN EXPERIMENT WITH RIGHT NOW._

Where? What?

~~~
pivot4304
<i>Where? What?</i>

Come on. Now you're just pretending to be willfully ignorant.

------
AnthonBerg
There seems to be a market for some kind of game framework for Android. Game
developers shouldn't have to spend effort on specializing in Android hardware
support.

 _"We spent about 20% of our total man-hours last year dealing with Android in
one way or another - porting, platform specific bug fixes, customer service,
etc. I would have preferred spending that time on more content for you, but
instead I was thanklessly modifying shaders and texture formats to work on
different GPUs, or pushing out patches to support new devices without
crashing, or walking someone through how to fix an installation that wouldn't
go through. We spent thousands on various test hardware."_

I think we could get an economy of scale if someone who enjoyed this kind of
work would supply a useful platform for game devs.

~~~
illumin8
The thing is, Mika Mobile already uses Unity, arguably one of the better cross
platform development tools. If they are having this problem, imagine what a
dev using his own libraries and porting tools is dealing with.

~~~
AnthonBerg
Yikes!

Yeah, in my opinion this is where Google would want to step in and provide a
little grease to get things moving. In the form of some kind of library I
think. It was Google's choice to allow diversity, and I can see how it would
require some gardening and / or curation on their part.

Still, Unity is cross-platform and maybe don't yet see themselves going this
deep in one platform - so it's an indication that a middleware layer could be
successful on Android.

------
DanBC
I'm always surprised when blog authors are talking about a product and they
don't include any links at all to that product.

I'm not asking for huge banners or marquee scrolling, just a plain simple text
link on first mention.

~~~
jemeshsu
I get it from blog mikamobile.blogspot.com to reach mikamobile.com.
Zombieville by them is also popular in iOS. They use a 3D Unity engine to
built their 2D games.

------
davidwparker
Previously discussed here: <http://news.ycombinator.com/item?id=3685542>

------
jamesu
One of the main reasons i haven't really gotten into Android development is i
really don't know what i am targeting.

I think if there was some sort of standardised tier system for categorizing
hardware capabilities (e.g. tier 1 = basic, tier 2 = supports 3d, tier 3 =
quad core powerhouse), it would help immensely.

------
nubela
To be fair, for every reason a dev wants to quit on Android, there is another
dev that wants to quit on iOS dev.

~~~
barredo
The dev didn't even mention apple, ios, iphone or anything related. Please,
don't make this another iOS vs Android thing.

~~~
tomjen3
Why? As the only alternative IOS is relevant on each discussion of Android and
vice versa.

------
huggyface
I think the most notable part of this story is the...notability....of it.
There are literally tens of thousands of developers on the Android market --
including many long time denizens -- but one (purportedly) quits and it gets
spread far and wide: I've now seen this linked on a number of blogs, news
sites, and social news lists.

Why? I would argue that it speaks to an audience's bias.

I think the most interesting thing about this company is that their games are,
by most respects, quite successful on the Android market. A $3.00 game selling
more than 50,000 copies. Another selling 100,000+. Another selling 100,000+.
Perhaps they got all of their sales during a sale, but their base metrics seem
quite good.

I can't speak to their situation or frustration, but will make a couple of
remarks for prospective Android devs-

a) Cut out the crap: Don't desperately try to reach 100% of the Android base
because that just sets you up for a world of pain, which I suspect is their
core issue. Cut out low-end handsets, with the basest filter being
Gingerbread+ at this point.

b) There are actually only a handful of GPUs in use across all of the
different devices (Adreno, PowerVR, Tegra2/3, Mali). Understand the GPUs, not
the handsets.

c) If you can't handle the work, which apparently this company couldn't,
_subcontract_. They apparently had a successful product but they couldn't
tolerate the work involved. I guarantee that if they offered it out for profit
sharing to a contractor they would have many well-rated prospects.

~~~
madrox
You make interesting points here. What are we supposed to generalize from this
dev's experience? That Android is doomed?

It does say something about what some mobile devs have come to expect from a
development experience. While IOS is never mentioned once in the post, the
comparison is implied in every paragraph. While this is far from damning for
Android, it's worth keeping in mind as competition for developer mindshare
escalates.

~~~
dspillett
> _You make interesting points here. What are we supposed to generalize from
> this dev's experience? That Android is doomed?_

I think the general case has already been made: there have been various
complaints about supporting Android (varied hardware platform making
testing/support more cumbersome, unreliable hardware/firmware causing problems
the developer has to work around (and worse gets blamed for), the number of
low quality devices available (which feeds into that previous point), and that
is before considering problems some devs have had with the marketplace away
from hardware/firmware concerns).

A lot of people have written this off as just grumbling and suggesting the
people either cope with it or move on. While this story can't be taken as a
general case, it is an indication that the problems might be as bad as some
say: i.e. bad enough to make the platform not commercially viable to support
for some. If this is not a one-off, and the issue can not be addressed
quickly, it could mean significant trouble for Android long-term as after-
market apps is a significant driver for sales.

