For my dissertation project at University, I chose to research and develop a 2D Android games engine.
I wanted to create an engine that would be capable of creating small 2D games with relative ease and include all of the major features found in other mobile engines.
I worked using native code from the Android SDK to create the backend and provided a series of classes to provide the user with clear options that required them to have no knowledge of the underlying code and a framework for them to work in.
Due to time constraints I was unable to get certain features into the engine, however I had expected this to be the case and prioritised the features using the MoSCoW method before starting on the design.
I was able to get all of the features classified as “Must Have” into the engine. This meant support for Sprites and images, touch input and a game loop. I was also able to get most of my “Should Have” features including Sound, actions and behaviours for sprites, accelerometer support, text rendering and scenes/workflow management into the engine as well.
Although the engine was perhaps not as fully formed as I had originally intended, I consider it a success as myself and two others later used it in another assignment to create a Pacman game for Android.
This was a good test of the capabilites of the Engine and of how easy it was to explain and use to other people. The creation of the game went well and although I was always on hand to help with the Engine, not much help was needed after a while.
During the creation of the Pacman game, I contributed to the movement of Pacman and the enemies. I created the virtual joystick and wrote A* for the ghosts to find Pacman.
The code for Pacman including the Engine can be found here.