I really need to be able to choose whether stars are rendered in front of, or behind, asteroids.
Further to this, I've spent some additional time thinking about exactly what sort of functionality would fulfill my goals for the Starfield engine, whilst also giving maximum flexibility and extensibility for future drawing designs by myself and other designers.
As the 3D Starfield Engine has support for stars that are rendered in front of the asteroids as well as behind, I would ideally need to be able to choose whether they are drawn in front or behind asteroids on a per-draw
basis. As opposed to making the entire LevelDraw function always in front or always behind.
Here is my idea. Rather than changing the existing DrawSprite command and breaking all existing levels that use it, how about implementing a brand new DrawSprite command entirely, perhaps like this:
DrawSpriteBehind(int id, x,y, r,g,b,a, size)
Please note that this would need to work in ScreenDraw as well as LevelDraw! Parallax draws to LevelDraw, the 3D Starfield Engine draws to ScreenDraw (to avoid the native scaling when the camera scale changes).
The addition of this command would be transformative for both Parallax and the 3D Starfield. It would allow a huge number of stars to be rendered (i estimate about 1000 onscreen at any given time) and the framerate would not slow down when a large number of asteroids are onscreen.
That would then mean you could zoom all the way out, and the stars would still be visible without significantly dropping the framerate.
This change would make the difference between "pretty" and "spectacular". I realise you're busy with PSN stuff now, which I completely agree is more important than this request, and it may be months before you finally read this, but I'm just writing it all down now while it's fresh in my mind. :>