Nov 06 AT 12:22 PM Robert Green 29 Comments

Complications looming for Android developers

It wasn’t long ago when using an Android phone really just meant using a G1 phone.  In one short year, we’ve seen different models of phones pop up from different carriers all over the world.  This is a great thing for Android as a platform because more users means more apps and hardware choices.  Unfortunately, there are many complications coming.

The G1, MyTouch and Hero phones all use a screen size called HVGA, or Half VGA.  It is 320 pixels wide and 480 pixels tall.  That’s exactly the same number of pixels as the iPhone’s screen.  Up until about 2 months ago, every app developed for Android was developed specifically for that screen size.  That was easy and it worked well.  With the introduction of Android version 1.6, support was added different screen sizes.  The platform does a nice job of letting developers tell the market what size screens their app supports, but that’s only half the story.

Many 2D games are developed for a fixed size screen.  Games that scroll up or sideways don’t really have too much of a problem adapting to new screen sizes but games that use an “arena” have to figure out what to do.  The new screen sizes aren’t just bigger or smaller – if they were, we could simple scale up or down for them.  They are actually wider and narrower as well which is especially difficult to cope with.

Devices using the small-screen format are like your old boxy television.  They have the exact same aspect ratio.  An aspect ratio is simply a fancy way of saying, “how wide is it.”  New HDTVs have a wider aspect ratio, that is, compared to the same height old TV, they are wider.

Small-screened devices are called QVGA or Quarter VGA.  They have half as many pixels as the standard HVGA.  Another new standard is WVGA which is what the new Droid has.  It’s the same aspect ratio as an HDTV.  QVGA is 1.3 (like your old TV), HVGA is 1.5 (somewhere in the middle) and WVGA is about 1.77 (just like HDTV).  Each one of those aspect ratios can come in regular and high resolution.  This means that every game will have to support 6 unique screen configurations in order to look its best on every phone!

Multiple screen sizes means more work.

Multiple screen sizes means more work.

Regular applications won’t have quite as much of an issue with these different ratios.  While there are always exceptions, for the most part they can usually just list less or more stuff depending on how much space is available.  The QVGA screen tends to always be difficult because of the low resolution but through use of clever component layout, they should all be able to cope and even take advantage of the space that’s given to them.

3D games generally have an easy time stretching to fit the screen.  For many of them, supporting a new screen size is trivial or just a matter of tweaking a few graphics.

2D games, like I said before, are really where the problem is – and there are around 1000 of them on the market right now.  It will be interesting to see what kind of solutions they use to work with the different screens, if the developers do anything at all.  It’s possible that many games simply won’t be updated due to poor sales or lack of time commitment from the developers.  Those games will likely suffer bad ratings from new phone owners.

There is another issue besides screens size.  Several new phones are shipping without a graphics processor.  This means that many games, including ones that don’t even look 3D (many 2D games use the 3D processor to draw), won’t run well on them at all.  That shouldn’t be such a problem but there is no way for the developers to tell the market that their game requires a certain level of hardware to run well.  What will inevitably happen is that low-end phone users will give low ratings to games that don’t run well on their phone and the developers won’t be able to do anything about it.

It’s a bad situation for both developers and phone owners.  Developers get bad marks for having a game that only performs well on high-end phones and owners of low-end phones complain because the games meant for high-end phones don’t run well.  Meanwhile people will continue to demand that games get as good or better than iPhone equivalents.  It seems like a losing situation from that angle.

Hopefully something will be done by Google in a future release that will allow for developers to either release the same game targetted specifically to different levels of hardware or to declare which level of hardware is officially supported by the game.  The latter will certainly cause for market segmentation, but since that is already going to happen because of the wide range of hardware that comes in the different phones, it’s really the best we can hope for.  A simple “Requires GPU” flag would be sufficient for most 3D games.

If you’re a game developer and haven’t thought about screen sizes yet, it’s about to become a big deal.  Make sure to support everything you can or you’ll surely be left in the dust.  Google has put together a very helpful document here.

Going forward if a game doesn’t work or look right on your phone, it may not be the developer’s fault.  It may just be that your phone doesn’t have the kind of hardware needed to run the game and there’s no way for the developer to offer you anything different.  Be kind and save those 1-star ratings for things that are truly bad!

Robert Green is a game developer for

    Most Tweeted This Week