My first Android game is nearing completion and it brought me to an interesting realization. My main concern with the game since I started development has been performance, duh! This is pretty normal for a mobile game but combined with the other limitations such as absence of keyboard and screen resolution, it feels a lot like developing for earlier platforms.
Graphics
As I have previously mentioned, I am developing my game through Adobe AIR because ActionScript is by far the language I’m most comfortable with and I really don’t have time to learn a new one right now. This is of course an important overhead and poses some considerable performance issues compared to native C++ or Java. I therefore had to do some obvious optimization but even that wasn’t enough, the first versions of the game were extremely choppy even though not much was happening on-screen. I ended up pulling some very dirty tricks I thought I would never have to use again and it really brought back memories of when I started developing for Flash a few years ago. Back then, you couldn’t even consider using vectors or actual collision detection, only puzzle games were fluid, these were the good times. As we speak, the game has up to 60 sprites on screen and it runs reasonably smooth on my HTC Desire HD. I still don’t feel quite satisfied with the framerate but I doubt it will go any higher with that much content going on at once.
Keyboard
There isn’t one. While developing this game, I’m having countless new ideas for other games but you really have to be creative to pull out the best gameplay when the only available user input is a touch screen. You can of course use the accelerometer but I am not personally fond of it. I have yet to play a game that makes good use of accelerometer controls and we all know that sketchy controls is the first killjoy. Still, I have a few games in various stages of development (mostly not started yet) which I think have a lot of depth in the gameplay even with just the touch screen.
Screen
Developing for Flash, you get used to being able to pick the screen resolution that best fits your game. You can literally come up with your own dimensions and aspect ratio, as long as it will fit in a browser. This presents a lot of obvious advantages when trying to be creative but on the Android platform, the screen resolution is basically 800×480 or 480×800. It doesn’t leave much to the imagination.
All in all, these limitations are not as bad as I make them look, take a look at the Android Market and you will find thousands of visually impressive games with very rich gameplay. I myself am quite proud of the game I managed to develop and am about to release.
Also, I actually love the feeling of coming up with fun solutions in very limitative contexts just as I used to make RPGs on my TI-83 :)