We've been at work for about a month, cranking out a game engine. We've mostly been basing our system on a series of talks given by Chris Pruett.
The essential gist of this system is that entities (like the player, an enemy, or a tree) are defined by a series of components. Each component refers to one mostly independent function of the entity, i.e. AI, physics, rendering etc.
Coding so far has taken a long time simply because of the limitations of building realtime Android games. In order for an Android game to run quickly, it must never allocate or deallocate memory during game-play. This means that all objects must be pre-allocated and recycled. This is done through objects called 'pools.' Pools contain arrays of objects that have been constructed but are not in use. These objects are distributed when needed and reset afterwards.
The end result of the game should look vaguely like this (a game I made for fun a few months ago). Basically, the idea is that you play some mario-like character who for whatever reason finds himself in a graveyard with zombies and other monsters climbing out of the ground.
While we originally wanted to make at least a couple games to sell by the end of the summer, it seems the initials are taking too long, so we'll probably finish (and polish!) only one.