GameActivity (My UI thread) , contains the following:-GameView (My version of a GLSurfaceView) : contains a reference to the game thread so that it can call the draw function of all the objects in the game.-GameThread (Contains all the game objects and functions) --initiate function--run function: the run function loops through all the objects and updates their state

The issue: is this runs so fast that the renderer never kicks in to display the animation.In the 2D examples including Lunar Lander there is some sort of SurfaceHolder. When I look at the example though they seem to extract a canvas, and that's why I don't think it's relevant to 3D.

Do I have to lay out my game differently? Any suggestions, thoughts, directly related articles would be appreciated. Thanks

The way he does it, is that theres the main game loop, which is obviously just a thread. The main game thread queues draw requests to a queue. BTW, a draw request in this context is "draw this texture at this position on the screen".

Once the main loop is done one iteration, it swaps the queue its been drawing to with the queue that the rendering thread has been reading from. If the rendering threads queue is empty, it just doesn't draw anything (and the screen remains whatever it was last)

At the start of the game loop, it calls a synchronized method on the rendering thread, to ensure that nothing else is queued up until the rendering thread has finished drawing its queue.

This is a very simplified version of what his code does. You should check start with GLSurfaceView and RenderSystem to get an idea of how he does it.