With regard to drawing, if you were going to implement this on iOS, it will be WAY more powerful if you could include the ability to either draw in front of, or behind, asteroids.
Why? Well take the starfield engine for example. Because the "stars" are always rendered in front of the asteroids, I have to use special algorithms to detect when a star is on top of an asteroid, and hide it. This is a huge drain on CPU, especially if a lot of stars and asteroids are onscreen at once... if I could tell the stars to draw behind the asteroids, I could have THOUSANDS of stars onscreen instead of hundreds, irrespective of the number of asteroids.. I know this to be the case because I have tested the performance without the star-hiding code.
So I would propose the following for Draw commands:
DrawLine(x1,y1,x2,y2, r,g,b,a, thickness, background/foreground)
DrawSprite(id, x1, y1, r,g,b,a, size, background/foreground)
(Where "background/foreground" is a boolean, true or false, to indicate whether it should be rendered in front or behind of asteroids)
And if we could draw to both the level and the screen, similar to the PC version, that would be sweet. :>
ie: function ScreenDraw() and function LevelDraw()