Sep 16th, 2008

The Android Developers Blog has not only released a new game for Android devices but they’ve open sourced it so developers can see the various APIs and tools used in a real world application. The backstory of the game’s development is pretty funny: Karl Rosaen remembered playing a simple childhood computer game but couldn’t remember the name of it. So he built it, showed it to someone and they said, “That looks like Jezzball!”

Ah, Jezzball… the name of the game for which Karl Rosaen had been searching for oh so long. I feel for his pain as I too loved this game but never would have guessed the name. If you didn’t play Jezzball as a kid, you really missed out.

Here is a video of the ORIGINAL Jezzball, Windows 95 version:

The game was recreated for Android and if you don’t feel like watching the video, the idea is to partition of balls that are bounding around by dividing the box in quadrants. Each level you pass adds another ball to the game.

Here are some screenshots from the actual Android game:

And for you developer types, here is what the Android Developers Blog says you have to learn from all of this Developing and Conquering:

While this game isn’t going to win any awards for cutting edge graphics, it demonstrates use of several Android features and APIs:

  • custom drawing and animation
  • touch input based gesture detection
  • overriding the default behavior of the back key in some situations (to pause the game)
  • creating custom Dialogs
  • configuring an application to be full screen with no title or status bar
  • use of the preferences framework
  • use of the vibrator API

DivideAndConquerView is a custom View that implements its own onDraw method using the Canvas methods, and gesture detection using onTouchEvent and a helper class DirectionPoint. It keeps track of the state of the game using BallEngine, and reports relevant events back to the main activity of the application, which, in turn, keeps track of and controls the state of the game. The application is configured to be full screen in its AndroidManifest.xml file.

[Via Android Developers Blog]