x An easy to use 2D sprite engine with Sprite Caching and Distortion Maps (see below).
x Collision detection using a decent linear interframe technique on bounding circles. It simply calculates the closest distance between two parametric lines and determines collision from that. Nothing fancy.
x Timespace cascades. All timed objects in the game belong to a timespace which manages time for the objects. This makes it easy to group game objects by time dependance. If the game is paused, for example, this should not affect the GUI, thus the ingame objects and the GUI belong to different timespaces.
I'm using distortion maps in parallel with color textures in my sprite renderings to be able to create effects like shockwaves, heat ripples from engines, etc. The distortion maps themselves are (presently) simply color textures where the colors are interpreted as 2D vectors. The final scene is rendered to a texture, which is then rendered to the screen with it's texture coordinates offset by the distortion map vectors. The result is by-pixel distortion of the final scene with a low overhead.
I have recently migrated to C# and thus StarSmasha is my first devoted project to be written in this language, using MDX for hardware access. The reason for my migration is that I like C#'s simplicity and elegance. I find it much swifter to work with and the code is easier to oversee.
My primary goal right now is to put together a runable demo version of StarSmasha with all the rudimentary features. Then the real fun will begin as I can begin implementing the further features which I have ideas for. More to come.