So let's begin with Alien Abduction!, the game I created back in early May for TOjam. In a nutshell, you're controlling a flying saucer (which just happens to be the observation deck of the CN Tower) and abducting aliens. The game is far from complete, with the currently available version being 0.1 (and 0.2 currently under development).
I've stuck to my usual design: the game itself is a finite state machine, with a stack of game states (currently Intro, Play, and Endgame, but more to come). I have an interface that game states must match, which includes certain SdlDotNet events that the game class subscribes to.
I've also got a set of different entities matching a common IEntity class. This is probably going to get a bit of reworking soon, with one of the entities being removed (and its code placed into the Play state, where it more properly belongs). I want to add a Collision event and rework the current collision handling code to be more efficient.
To be honest, the code right now is absolutely horrible. Hacks upon hacks upon hacks, thanks to a 50 hour timespan and certain deficiencies with SdlDotNet. Such as a lack of sprite rotation, WTF? If I had the source with me right here, I'd paste in what godawful hack I did. There's also many entity leaks, by which I mean entities escape from the clutches of the EntityManager and continue living when they shouldn't.
It's not all bug fixes, though. I'm planning to add mapping to the game. I've been working out a simple map format that shouldn't be too hard to load and draw. If you check out the screenshot here, you'll see that the game uses 3/4 view ("iso") tiles. The idea is that tiles will be stored in rows as such:
Row A: 0 2 4 6 8
1 3 5 7 9
Row B: 0 2 4 6 8
1 3 5 7 9
Drawing them will take two passes per row, first drawing the even-numbered tiles in the row and then the odd-numbered tiles. Each tile draw will also take care of drawing any entities on the tile, so that proper occlusion takes place.
Right now, aliens appear whenever you abduct one, and the defenders appear every time you have captured a multiple of five. Once the map system comes in, aliens will arrive from buildings and defenders from factories. The buildings can be destroyed for power-ups, but that will reduce the number of aliens who can be spawned, thus possibly reducing the player's total score for the level. As for the factories, I haven't decided if they'd be immortal (which would be confusing for players) or to make them destructable at a cost.
My game launcher is working better than before. I still don't have any OnMouseOver type events on the buttons on the main dialog, but the settings dialog does OGRE RenderSystem choosing, FMOD output system choosing, and OIS joystick/gamepad choosing. Not all that much to report, other than that I've integrated it into the Asylum framework already, and expect great things of it.
And then there's that. I've been continuing to work on the framework, but I've not been making much progress, at all. My OIS problem (not getting input to pass to game states) was solved by not asking for exclusive access to the mouse and keyboard (and something else I've forgotten) -- in all, two lines commented out and the thing worked like a charm. Next step is getting the video service in and working, this time seperate from the movie playback state. (Either have the movie playback state a singleton and have annoyances trying to play a certain video if someone's already pushed some into its queue, or not have it a singleton and have loads of memory use -- and leaks. Not this time, damnit.)