Thanks for the replies.
To answer Gimbals question, my engine is hybrid 2d/3d engine.
It's essentially a 2d engine (ideal for platform games, top down shooters, etc) but in order to achieve high level sprite effects such as real-time rotation and translucency, I've hacked in some 3d code as well behind the scenes. It's all transparent from a top-level programmers perspective though - you basically declare a sprite object, load in a bitmap, tell the compiler it's a 3d sprite, and then you can rotate it, set translucency/transparency, and scale it to your heart's content.
A lot of the classes in the engine are inter-dependant (naturally) so for example, ALL graphics classes need a reference to the RenderDevice Class in order to display their output, and the planet/solar system/galaxy class all make use of the BitMap class in order to store and manipulate their pixel data.
Here are some example screenshots of my engine in action.
This is my Asteroids game in action. The planet you can see in the background is dynamically created at runtime, so it's always different, and it spins, and it has translucent cloud cover!
This is my Galaxy Generator.
And this is my Solar System/Planet Generator. Still a work in progress, but pretty much finished and useable in it's current state. My latest achievement!
...And this is a little pacman clone I wrote for my dad as a father's day present! The little guy you control in the game actually LOOKS like my dad, which was kindof the idea...
This doesn't actually use my engine but instead uses API calls. I bodged the whole game together in about 3 days!
I'll post some code later today if I get time.