...it seems Steve™ was right...
Angry Birds developer Rovio is mulling creating multiple versions for different Android handsets, as fragmentation of the platform causes headaches for anyone not using Adobe's Flash. Angry Birds is hugely popular on iOS, and was eagerly anticipated for Android, but the fragmentation of the Android platform has prompted Rovio …
One size does not fit all. If you want to buy a smart phone capable of playing games then buy a high end one. If your budget doesn't stretch that far or you're after something with a small form factor or some other esoteric feature then buy one of those instead.
The beauty of Android is precisely because it doesn't dictate one phone / price plan / provider / manufacturer as being suitable for everyone regardless of their needs. So if you want to buy a £100 PAYG android phone you can. Just don't expect (and I doubt many people do) that it's going to give you the same performance as a Dell Streak, HTC Desire or whatever.
That said Android / Google really should be defining some gaming profiles for handsets, . Phones should be able to say they're "gaming level 1" compliant or whatever so users can assured that they'll be able to purchase and play level 1 titles without issue.
I'm not a fan of locked in markets per say (they do have product quality, security, and other advantages though) but what I am a fan of is a rigidly structured hardware model.
By not having a unified processor and GPU architecture model and ensure that the code of the OS runs smooth on all devices with the same feature sets enabled, Google has done itself and the devs a disservice. There's simply too much variance on the hardware front.
Optional parts, like keyboards, cameras, etc, are easy to deal with, but when the core of the device does or does not support functions, or supports some poorly, because of design choices made by 3rd parties, that's an issue. At the very least Google should have released a 2-3 class system putting low end, mid range, and high end minimum specs on the devices, making it easy for devs to support or not particular devices. As for the optional components, the store should maintain a database of what options each and every model has, and what devices each app would and would not work with based on those variables.
When we have an app that runs smooth on a 600MHz iOS device, but that can't reliably run on 1GHz modern phones, we have a major issue... Worse when it runs fine on some and not on others, which is the case here.
Sure, Flash is an option for some, but Angry Birds is a java app, not flash, and the physics modeling and other aspects of the game simply do not apply. Try taking that to Epic Citadel? hahahaha...
Code should simply have minimum requirements, as it does on PCs. Either you have the CPU/GPU muscle to run it, or you don;t, but there should not be code level changes required to support some devices and not others. That is a major flaw. If you have to recompile to support someone's device that has the minimum specs to overcome something they changed in the OS or supporting APIs to make something of their own work? Their device is not "Android" it's a spin-off. Google needs to get control of this mess ASAP, set hard standards, and have a "certification" program for devices.
my htc hero has a 528Mhz cpu with about 288MB of internal memory, although I dont know how much of that is available for apps to run in, since I can't seem to find what RAM they have for applications to run in, separate from the storage of the device itself, apart from thinking they are the same. It also runs the screen at: 320 x 480 pixels.
So basically, it's like the same power level as a PC back in 2000, more or lesss, now I know this isn't 100% accurate, but I'm trying to get my point across, not dick about with numbers.
running angry birds on this device, the home screen runs at about 2-3 frames per second (fps).
THAT IS ABSYMAL!
under any circumstances, that game should be running at 30fps, or at least 15 under load, but it can't manage to render more than 2-3 frames in a second? it can't possibly be the device, cause other games seem to be running far faster.
So basically again this comes down to programming techniques. They basically flunked the android port and it's completely unoptimised and not fit for purpose.
thank god they dont sell it.
the real interesting part comes from this info is that it's not actually angry birds who are affected, lots of apps on my hero do crazy stuff, sometimes I try to open it, it takes 15 seconds, other times I'm on the metro and it uses 1% battery life per approximately 1 minute until the battery is empty because it can't get a signal, so it up's the power trying harder and harder until the battery runs out.
then, some apps are just slow, other apps bring the device to a crawl.....
I dunno, in this case I'm willing to bet their game engine isn't up to scratch, but at the same time, lots of android have problems, perhaps it's time for google to start putting cookie cutter api's which solve problems people often have, but in optimial and efficient code paths, but I think the problem comes from people writing their own routines which are just simply not up to the job.
anyone else agree?
@Chris Thomas Alpha
Are you sure you've thought about what you're actually saying? First you say it must be Rovio's fault then you go on to say "the real interesting part comes from this info is that it's not actually angry birds who are affected, lots of apps on my hero do crazy stuff"
Please think about what you've just said... if it's "lots of apps" doing "crazy stuff" then maybe, just maybe, it isn't down to any one of them but rather the platform?
what I said was, with the power available, there is no reason why rovio can't make angry birds run, I mean, the home page is basically a parallax scroller with typical three/four layers, but runs at about 2-3 frames per second.
in this case, it's pretty obvious that it's rovio's fault, you can't make a 3 layer parallax scroller that runs at 30fps on a 500+Mhz cpu with more than 256MB of ram, you're not worth the money the company is paying you to program, go work in mcdonalds.
but additionally, I was willing to say that there ARE strange things with android sometimes, BUT IN THIS CASE, I'm sorry, I believe that this particular case, is rovio's, I was just mentioning both to make sure people didnt think I was siding one way or the other without a valid reason.
my thinking is that they just did a straight port of the iphone version and their game engine does things which is incompatible with android, so whilst android has problems, I believe in this case, they just didnt write a different codepath which is optimal.
(for reference, I used to write graphics code back in the day, so I know a bit about what I'm talking about when it comes to how much performance I should be expecting here)
is another's "diverse".
I know apps can specift the API level needed to see them in the market, but can they specify other filters?
Sounds like Android need some kind of device scoring system to cover things like screen size, CPU, etc., in order to classify compatible apps in the market.
Just because Android works on small cheap phones doesn't mean that the small cheap phones have all the features required for everything. If you buy a lite-weight phone dont expect it to do everything...
(Angry birds still works on more versions on Android phones than all the ios devices!)
Are you claiming all ios apps work on all apple phones? or just angry birds?
I seem to recall that there are many apps that do not work on different versions of the iphone. off the top of my head, any barcode scanning app...
From a consumer point of view if the app says it works on apple then it should work on any apple.. blah blah..
Oh you were only talking current devices? perhaps that list of 14 should be updated to current androids too!
The issue is that the people who buy the cheap phones have been told that these phones are as good as the iphone/best android phones. They see it runs a Smartphone OS and expect to be able to play Angry Birds or whatever is the latest game. The guys in the shop, and I have heard them do it, are making all sorts of claims.
Now you could argue that these people deserve what they get, however the issue is that it destroys peoples perception of the Android platform. If I have been sold a cheapo Android device, and I then find out it wont support iplayer or Angry Birds, your average user is going to blame the platform.
Google need to get this back in line, which there have been suggestions of, or they could end up killing a great platform.
I have a 3GS due for renewal, and have considered a new Android for my next device, but I am still concerned about support from manufacturers, and would probably only consider something like an official Google phone where I know I can expect up to date releases and updates. I don't want to download ROMs from some backdoor site, compiled by who knows, I expect Google or mfrs to supply me a phone that lasts.
Flame away Droidbois
..Angry Birds works on this cheap little ZTE Racer. It gets laggy when the advertising mechanism tries to do something, and it's smoother if you turn the sound off but it's playable.
And yes, it's funny watching people compare a GPUriffic handheld games & playthings platform costing either hundreds of pounds or an 18 month ball and chain, versus a budget pocketable device of anything down to 10% of the iWotsit's price on a 3 network PAYG SIM. Apples and, err, oranges?
"(Angry birds still works on more versions on Android phones than all the ios devices!)"
how are you backing up that claim or is it just a christmas wish in your head?
and i think developers should think twice about giving in to Google on this.. they should vote with their money & apps and this might make google/handset makers get their act together and put a proper infrastructure around Android so that the whole fragmentation issue is sorted.
No point in making loads more sales if your administration and manufacture time goes way up too.
Remember turnover is not profit. No point in making 200,000 in sales if your costs become 199,999
its a bit obvious aint it? 100+ android devices verse 10 apple devices? does it need backing up? OK - Go to http://phandroid.com/phones/ and count the versions of android phones (100+). Then subtract 14 (the number Rovio Claim do not work - sourced from the article) and compare that number to the number of devices Apple Produce that support AB. http://www.apple.com (currently iPad, iPhone4 & iPodTouch = 3 but historically 4 iPhones 1iPad a few Touches.. erm = 10?)
I think you'll find that claim is legit.
As an aside I think you'll find that AB on android is free, so it isn't really a sale anyway!
There must be apps around that won't run on the original iphone, or even on the 3G? Just as there must be ipad apps that won't run on iphones (seeing as the tablet issue was also mentioned as leading to further fragmentation). How is this any different to older and/or cheaper android phones not being able to run some apps?
Runs fine on mine. Low FPS, but still very playable.
The diversity of Android is a double edged sword, it allows the platform to spread far and wide but rules out faster low level code.
I'm currently having perfomance issues in my project. Not due to lack of CPU grunt, but because of the way the app has to bounce in and out of JNI for GL state changes.
if you have missing images, your running the old version of the app, check the market for an update.
although be warned...
what ever they did to correct the graphics problem has caused the app to lag...
still playable tho on my hero.
I think over clocking has helped it. FroydVillain win :)
Have you updated it recently?
I did, just before reading this article (didn't read the update notes *sigh*) and all BBC streams/content had been removed. Had to uninstall and sideload an old version to get the streams back (there's an 11 day old upload on 4shared - use at your own risk.)
On PC, the fact that display,... is different is no problem at all, yet when developing for a mobile platform they seem to be unable to write flexible code?
It's all pretty standard with an ARM chip and a graphics system. Don't use compiler options to specify a specific ARM architecture (ARMv7/...) and you should be fine.
If the platform is below the required spec for a cpu/gpu hungry app, that is one thing, but to blame fragmentation? Sponsored by Apple to spray such crap?
Anyway, having seen Angry Birds on my n900 (and totally missing the hype), I wonder where the problem could be, it is not the most complex app I've seen.
And if you app can't handle different screen dimensions, please don't call yourself a developer. Script kiddie is closer...
Unless Google are going to pretty much ape Apple and bring out only on specific phone that can run android you are bound to get this. In fact, I would be very pissed off if I spent £600 on a spankingly good Android phone only to discover that a phone for £200 would run all the same apps.
To my mind this is good -- though perhaps some kind of "grading" may be in order so htat people can compare the devices when they buy them.
The problem is people are buying an android phone and expect it to behave "as seen on TV", your average phone sales person probably isn't going to make much effort to dispel that view.
The question is, as with the pc market, people will go and upgrade to the better handset when there £100 phone doesn't do everything, or will they blame Android OS?
Well i have a rooted Hero running Froyo2.2 villian rom and it works, ok its a little laggy and the cpu has been put up to the max, but it works, and i don't get any fragmentation.
if you are having problems with memory try something like i don't know killing all the apps you arn't using, like tweet, stock market, facebook and all the other crap that sense has running in the back ground on the phone.
Some comment imply that on a cheap low-end android, you should not expect high performance. But the article seems to imply that if it was just programmed in Flash, everything would work everywhere.
So which is it? If Android has low-end models that cannot run computation-intensive programs, that is understandable. If all models are powerful enough, but so different that is is a pain to code something that will work everywhere, that is a point against Android. On the other hand, if Flash really makes it simple to code for all models, then that is a point FOR android: "Just code it in Flash. Not that big of a deal."
we had devices which ran at about 500Mhz with 200MB of system ram and I'm sure they ran a 2d game with some physics just fine, I mean, the worms games for example.
so why can't my hero which has those performance characteristics run it more than 2-3fps?
the reason I believe is the game engine is just sub-optimal and built only for high end devices, but there is absolutely no reason why that game can't run at 30fps on my hero, anyone who says it's not possible, is a liar, it's that simple.
People have already said it works on Hero, even if it doesn't show in the Market on the official rom.
Having a 500mhz processor and 200mb of ram in your phone isn't really comparable to your 00's Win 98/XP machine... your phone also does alot more besides just load the game... it's got the OS loaded which is going to have a different footprint to win 98, a butchered java runtime (ok, JIT these days so slender for a jvm, but still) that most app's will use to run, countless devices to manage such as wifi, 3g, usb, touchscreen, cameras, memory cards etc.... services and other apps that run along side these things such as message apps, custom UI's, widgets, multiple email apps, social networking integration, calendars, etc etc... depending on android version and manufacturer implementation the OS does a good job of being resource light by making apps mainly unload themselves when not needed, but alot of services still exist.
The quality of any optimisations/add-ons for the device by the manufacturer is a big factor too... the original Hero rom was a nightmare... sooooo much lag.... but now it's running a stripped down froyo (if you use official) with no wallpapers, and no access to angry birds... but it's a faster phone than when it was released.
My concern is developers doing lazy ports to android, then blaming the platform for the crappy performance... having said that, AB works fine on my Desire. :)
but win98 didnt just run the game either, it ran all the services, etc in the background of your game even though your game was the foreground process, so I see this as more similar than dissimilar.
although I didnt wanna try and play the numbers game, of course they are not the same, but they are "more or less" the same.
fact is, it's a lazy port, they blame the hardware and it's utter rubbish, if they were doing something like a full 3d shooter etc you could blame the hardware because that sort of thing is very intensive, but this is just a parallax scroller / sprite engine / basic physics engine. It's the sort of thing a 500Mhz/256MB mobile phone running at VGA resolution should be able to eat up.
so yeah, I'm with you, lazy port.
you're right about the hero rom too, the original one was awful, now I'm running froyo 2.2 from villainrom, it's great, but still lots of lag and sometimes for inexplicable reasons...
then the solution about game profiles is the answer then isn't it
level 1: magic
level 2: hero
level 3: desire
level 4: moto DROID? (maybe?)
level 5: desire hd
then on your phone, it could tell you what the maximum profile is and people can program games against those profiles, then when it's in the market, your phone can transmit what profile level you are capable of and the market can list the games which are up to your level, but no higher.
if you want a quick and simple solution, it sounds realistic, you round down any phone which falls between two levels.
level 1 -> cpu: 128Mhz, ram: 64MB
level 2 -> cpu: 256Mhz, ram: 128MB
level 3 -> cpu: 500Mhz, ram: 128MB
level 4 -> cpu: 500Mhz, ram 256MB
level 5 -> cpu: 700Mhz, ram: 256MB
level 6 -> cpu: 700Mhz, ram: 512MB
etc, etc, etc
then at least you can be sure than things will work like you expect and now install something that is a hunk of junk.
Android fragmentation - meh. I don't think Rovio are that concerned, sounds like when Apple tried to claim Angry Birds was an example of Android being a nightmare to program and they replied saying "er, no". I do like DrXym's suggestion of gaming profiles though - that would certainly help.
No I'm a bit more annoyed at the BBC. What kind of statement is that? So they're too lazy to make an Android app - fine, their choice, but why deny 3rd parties the ability to do their work for them? Are they stupid? And as for Flash and their awful mobile website being a valid replacement for a well-written app - as if. Even if all Android phones supported it, which of course they don't, on the Wii they eventualy made an app after claiming people should just use the inbuilt Opera browser for ages. Hopefully they'll capitualte the same way here but I doubt it - their media luvvies are probably all kitted up with iDevices so don't understand nor care about Android.
"and developers are going to have to spend more time understanding the limitations of the hardware if we're not going to return to the arcane technical requirements that used to adorn the sides of software boxes. "
What on earth are you talking about? I can only assume you're referring to software for desktop machines - you do realise that we still have system requirements for that, right?
I think its the hardware specificaiton that is the issue here, Android is just an OS that, unlike iOS, runs on multiple hardware platforms.
Rather like Windows for exmaple... only for some reason people dont complain that, for example, F1 2010 wont run on the cheap £500 Windows 7 laptop but will run brilliantly on a £1000 Windows 7 gaming PC - thats just the way it is, and has always been.
An iPhone is more akin to a games console, in that it uses fixed and controlled specification to ensure uniform performance across applicatons.
To see all the Andrones coming out of the woods (perhaps someone could explain that you can't reach all places with a VW Polo that you can reach with a VW Touareg, because I really start to miss the automotive analogy that made the Apple fans so infamous).
Fast forward 20 years and the geeks in their proverbial pub will be talking about this once very promising Android system that became a badly fractured nightmare.
Angry Birds plays very well on my S^3 system. Nice game, I must say!
I really do fail to see this massive storm fragmentation has caused recently.
Windows is essentially a massively fragmented platform. It might not be so fragmented on a OS level as Android, but on a hardware level it's even more fragmented.
What are you saying, Photoshop won't run on an Atom very well? What a surprise. I can't run Crysis on a RivaTNT either. It's like software has requirements or something.
It's a bit of a shame Angry Birds is so unoptimised. The ad program has caused a few problems even on my Desire, dropping the frame rate a bit.
I'll take the fragmented, non restrictive platform, innovating platform over the fisher price approach to computing, treat everyone like idiots, devs and users, and stifle innovation you don't like.
All a developer has to do is to set x-code to build for 3.1.3 and test on a 1st generation iPod Touch and his application will run well on every iOS device.
Android may/may not be a better option for consumers, but its a royal pain for developers, so much so that they are willing to continue putting up with all the App Store approval BS.
That your average consumer can understand that an iPhone 4 is faster than a 3s and that's faster than a 3 etc.
When they go to a store they see a dozen droid phones and having them try to understand the differences in hardware specs and in turn apps they can run is virtually impossible. In fact I'd be amazed if most of the mobile phone sales drones know the difference. Go to phone store and ask them what the specs are and ill bet you'll get "err.. It's got a camera, and plays games"
Apples products are simpler for non geeks to understand, it's that simple.
No problem with Angry Birds, runs on my £99 phone, a bit laggy on some levels, much better with Adfree running and blocking the ads.
My problem is with the BBC pulling the feed for MyPlayer. So, we have to tun Flash to watch iPlayer content? Cheers, have the BBC mandarins who came up with this little piece of wisdom been to the Adobe site and seen what phones can run Flash? An application so bad Apple banned it, whose big brother causes processors to run like crazy? (I can tell when the wife goes on Cafeworld just by the sudden sounds increase as the cooling fans kick in).
MyPlayer ran fine, OK the picture wasn't brilliant, but, for a few minutes light relief watching a bit of Mock The Week at lunch time, it was fine. Now, I'm stuck with no feed at all.
Either give us an official Android app or stop taking your bat and ball home and let MyPlayer do its job.
I don't want flash on my phone... smartphone batteries drain quick enough without Adobe getting their hands on it... now... where was I on Angry Birds?
They threw a "Cease and Desist" order at Skynet (the myPlayer developer) forcing them to remove their iPlayer client. They did the same thing to BeebPlayer earlier in the year.
The "feeds" are still there, and all Android phones (from 1.6) are capable of playing them, but the BBC has killed both applications capable of accessing them.
You have to ask why the BBC feel it is necessary to spend licence money on lawyers to kill two applications that were doing them no harm and, indeed, were actually giving them some positive exposure. I'd love to know the thought processes involved as the decision seems rather bizarre.
The BBC are sticking to the "iPlayer *is* available on Android" line, irrespective of how many people try to explain that its only available on Flash 10 enabled devices, and that only devices with Android 2.2 AND Arm v7 processors (i.e only top end phones) can run Flash 10.
You just get the impression of iPlayer execs with their fingers in their ears going "la-la-la-la, I'm not listening"
I remember when Angry Birds was first out Rovio stated that it wouldn't be available for the HTC Hero because the framerate was terrible, and not they have released it yep it's true, frame rate sucks.
Would it kill them to include in game graphics options, like not show the background, use lower res graphics etc.‽
iPod touch 1st Gen has no mic. (and no facility to use the capsule one in an Apple headset), hence it can't run Voice Memos, Shazam, Guitar Tuner apps etc. So far, so reasonable.
What about a nice simple recipe app like "River Cottage Every Day", then? No particular hardware requirements there, yet it won't run on iPod touch 2nd Gen running iOS 4.2 - a pop-up window states that: "This App is Incompatible With This iPod touch. P2.requiredCapabilities.thisAppRequires"
What's that all about then, fanbois?
Oh, and my iPod touch 2nd Gen couldn't keep time for s*** up to OS 4.1 - constantly 10 minutes fast. Let's hope that is fixed in 4.2.
Off to watch to some embedded Flash video on my HTC Desire...