Our First Android Game, Zombie Defense

Its been a long haul, but we’ve finally made it to market with our first major Android application, Zombie Defense! To find out more about this game, click here.

We have taken the time to learn a couple things along the way, and would like to take this time to inform on what we’ve learned and plan on implementing the next time around.

First, Android 1.5 is a great API to develop your applications on if you plan on reaching all Android devices available today. However, it will create some issues down the line. Pixel densities are not a part of the Android 1.5 API, and when incorporated in 1.6 and up give your applications much better appearances. Twice as high resolution in most cases. We learned this crucial bit of information after having our graphics designed and developed. In some arenas like Zombie Defense, a tower defense game, we had a ton of bitmaps and sprites. Going to a higher density would effectively double the size  of our graphics library, overloading and potentially crashing some of the older slower devices.

Second, when developing a game for different phones make sure you understand the differences in speed between phone models before laying down crucial code. I adopted a model of dual thread scheduling, where a draw thread ran every 10 milliseconds and the processing thread every 70 ms. This method let me choke processing universally across all devices so sprites didn’t appear to run fast on one device and slow on another.

Third, and it hasn’t been done too much on the Android front, integrate with Facebook. When a user signs in via Facebook for the first time a wall post shows that user’s friends about Zombie Defense. Free publicity is always a plus.

Forth, learn how to make bullet proof web services. That way you can track user scores and global rankings. Android has a built in Json library and it is very handy.

Lastly, if you have a free and paid app, maintain both versions in one set of code with a global identifier that turns off ads and other limiting features. This will make deployment much easier in the long run. Just copy finalized code when done, do a search and replace of your package name, re-import and build.

Can’t wait to start working on the next Roboconn game! We’ve already got a couple ideas in mind, so stay tuned!

Leave a Reply