Battleheart Developer Drops Android As 'Unsustainable'
mr100percent writes with this excerpt from Electronista: "Battleheart's creator Mika Mobile in an update explained that it was dropping Android support. Google's platform was losing money for the company, since it spent about 20 percent of its time supporting the platform but only ever made five percent or less of the company's revenue. Much of the effort was spent on issues specific to Android, where the diversity was only creating problems rather than helping.
'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,' one half of the husband and wife duo said. 'We spent thousands on various test hardware. These are the unsung necessities of offering our apps on Android.'"
But I can't help wondering if there is something wrong with the code that it struggled with different GPUs or crashes on new devices without special patches. Most code seems pretty robust to such things.
Just spent the week at the Game Developers Conference in SF and this seemed to be a bit of a recurring theme from having conversations with a couple mobile developers. The cost of supporting Android is too high in many cases and not worth the effort.
Once of the sessions I sat in on (can't remember who it was now, embarrassingly - I think it was PopCap talking about Bejeweled - not a bit player) pointed out that Android has many many variants on many different handsets. Even though the market size is roughly the same as iOS (his numbers were around ~250m each), iOS has way fewer variants to deal with, whereas Android had many. So you get to spend a lot of time messing around trying to make sure it's working on all platforms.
I've noticed from flicking through app reviews in the Market, it's not uncommon to see people with complaints about it not working on their particular handset. I haven't had this problem with anything I've tried so it's hard to tell how big a deal it is, but I don't use many apps.
The general feeling I got from speaking to a few indie developers was that they wouldn't bother doing an Android version unless their title turned out to be a big hit on iPhone.
And I thought Apple fanboys were bad. Android seems to be garnering its own set of rabid followers who disregard reality in favor of their favorite.
I think you will find his complaint was that he was spending all his time making up for androids fragmentation and thus not producing content.
He uses Unity which is a great tool for doing much of the underlying work so the developer can focus more on the game. But if android is dragging him back to messing around with boring details (platform specific and multiple variation for that platform) then the cost/fun/productivity balance gets all wonky.
it's Google Play now. Get with it.
OpenGL has become a joke under Khronos. More and more of the work needed to render scenes is pushed back onto the application developer. Once upon a time you could specify the material, texture, and light parameters and IT WOULD JUST FIGURE IT OUT! The responsibility for making it run fast was up to the OpenGL implementer, not the application writer. Now you cannot draw a single triangle without a month's worth of effort to implement matrix math, texture uploading, and material lighting from first principles. And then do it all over again on the next device because the stupid chipset vendor decided that they couldn't be bothered making simple color interpolation work fast (I'm looking at you ImgTech).
The problem is not handset fragmentation. The problem is that the OpenGL API provides no guarantees about what will actually work and work well. It's all thrown back onto the application and the chipset vendors can then brush off bugs in their design with "our examples work great - obviously you don't know how to write shaders".
It's time the application (not chipset) developer community smacked Khronos upside the head and made them specify a USEFUL rendering API that guarantees good performance for application-level tasks, and decertify chipset vendors who are too lazy to do their damn jobs.
But the proliferation of so many different devices is not only causing problems for this particular software developer. The so called cross platform web-application is getting harder to test as well.
Windows (Various versions), Linux (Various versions), OSX (Various versions), Android (Various versions)
each running
MSIE (Various versions), Firefox (Various versions), Chrome (Various versions), Opera, Safari and many other browsers
And somehow developers are to write an application that runs on all these combinations. It is a bloody nightmare. I long to the days there was only windows with the Win32 API to write for. Good debuggers, great IDE's and mature software dev tools. At the moment it is one steaming pile of disjointed crap.
Which is why they're making good money on the Apple market, right?
They don't come right out and say that, in fact it seems unlikely given their great concern over investing "a few thousand" in test hardware. Which seems like a dubious claim anyway, because it probably costs them little more than an email to get sample equipment from any given manufacturer. In fact, the whole story smacks of spintroll to me. After all, who except Apple cares about what a boutique game shop does not attempt?
Have you got your LWN subscription yet?
Which is why they're making good money on the Apple market, right?
Of course, other developers have had the opposite experience. For example, Angry Birds makes more money from Android than iOS:
http://news.softpedia.com/news/Angry-Birds-Makes-More-Money-from-the-Free-Android-Version-than-from-Paid-Ones-170596.shtml
While their business model may work fine on Apple market, sometimes it takes changes to make money in a different environment.
It's not Android that's unsustainable, it's their business model on Android that appears to be unsustainable.
I was about to ask if you were thinking of the TabHost bug where clearAllTabs() will randomly provoke a crash. But a quick DuckDuckGo search turned up a bunch of other mysterious bugs with the Android tab bits. My favorite was issue #12359 where the fix is a couple of lines, and it would be an easy fix were Google to not mark their classes as final (thus preventing you from subclassing them). Unfortunately the proper fix is to roll your own copies. The official Google response was to ignore the problem and tell everyone to stop using ActivityGroups (which are useful in tabs) and start using Fragments (introduced in Android 3.0).
Google applies their hands off approach to updates and support to both hardware (as evidenced by all the fairly new phones that don't ever get updates) and software. I'm pretty sure Google never fixed the broken widgets in Android 2.3, leaving developers to completely reinvent even rudimentary pieces of the Android framework.
QA in Android is a freaking mess, I'm not surprised that the Battleheart team gave up on it.
The revolution will be mocked
Yes IOS can be a nightmare. When an IOS update came out all of a sudden my code stopped working. I had checked the changes to IOS and nothing should have caused a problem. I was doing everything the "safe" documented apple way and it still blew up. I got a fix uploaded and then Apple had the app store shutdown for the holidays!!!! My update was uploaded to the store days before the shutdown but did they clear the backlog? Not a freaking chance they shut it down and we had to wait for weeks with upset customers.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
Battleheart's Google Play page indicates that it's been downloaded 50,000 - 100,000 times. It has an average rating of 4.7/5 stars, based on 5,374 user ratings, and the overwhelming majority of those reviews are 5-star reviews.
And if you sort reviews by latest, you can see that at least a couple dozen of those 1-star ratings were given today, in an apparent fit of "sour grapes" where users are giving the app a 1-star review with comments like, "The developer will no longer update this app. They stated that Android development is too hard for them and will no longer update their apps. Since when is objective C easier to write than java? Disgusting and Lazy!"
Yep, sounds like a poorly written, buggy piece of shit to me. I'm sure the developer is just lazy, incompetent, and shilling for Apple. It couldn't be that Android has legitimate shortcomings that Android device manufacturers could learn from to improve their platform.
The exact same argument is often made for "real" programs being windows-only.
If that's the kind of world you support, then of course you're right.
You can also see that Google is doing what it can to fix this, and so there's a good chance this will get fixed, even if maybe not tomorrow. You want perfect google support, it's clear which devices to buy. This year's model is the galaxy nexus. It's a great phone.
So life is hard for developers, but in exchange the world gets a diversity of platforms and competition.
I don't. Nothing worse than a monopoly dictating the course of technology and allowing innovation to proceed only when they see fit.
Chew on this, I have android versions of my apps, the market is so poor I will not even bother taking the time to hit compile. The app store monetization is at least 30 to one ore more.
I am glad you love android, have fun with it.
Got Code?
That said, supporting only 3 -4 types of hardware, instead of thousands, is considerably more predictable.
Sorry, unless you are doing something really hardware specific, like certain OpenGL ext, you don't care about hardware. I can state out of 2 years of experience in android development. And if you're a game dev, then it's the usual "make your OpenGL code run better on a particular GPU" carried over from the desktop.
Android isn't the easiest, not is it bug free. Otherwise, I find your comment out of sync with what me and 3 Android developer communities I participate in have encountered.
The really disappointing thing is that it sold GREAT when the app was new, but while the dev continued updating the iOS app with all kinds of new levels and features, he chose to abandon the Android app and bitch and moan about the ecosystem rather than keeping the Android version on par with its iOS cousin.
Then he has the balls to wonder aloud why sales have dropped after that initial burst? Maybe if he'd updated the goddamn app anytime in the past eight months, it would have done a little better.