Currently, I am working on a game for the Android Platform that trains the mental arithmetic skills. The user is presented with a grid of numbers and has to create a, what I call „flow“ through some of the numbers to build a given target value. This image from my concept document shows how it will work:
When the player made a flow that sums up to the value of 10, the blocks he used disappear and new blocks fall into place from the top. The details about scoring and achievements are still in an early concept phase.
At the moment, I plan only for addition and subtraction operations in the Game, but still think about how to make multiplication and dividing possible.
The game will be just a single Activity that shows a fullscreen OpenGL ES view.
The complete state and input handling will be done in my own Finite State Machine. The Activity delegates all events and the drawing call to the current state of the state machine. This will then perfom the necessary operations:
The complete Android-specific functions stay in the Activity area. The Input Events are all encapsulated in own Classes as well as all possible LiveCycle Events that may need the game to process like saving the current game state (in Activity.onPause) or resuming from a saved game (in Activity.onResume/onRestart) are sent in a custom way to the state, as well.
This approach has the advantage, that the game will be easier to port to different platforms. The game already uses my own Android Support Library AndroidPE2, which encapsulates all OpenGL ES calls. Porting to another GL implementation is then only a matter of replacing the class „SteveGLES20“ with an implementation suitable for the target platform.
My next step will be to create a GUI system in my AndroidPE2 lib to create nice and cool Buttons and other UI elements. I think, at first I will only implement Buttons and a LayoutManager so I will be able to create the Main Menu.