Hopefully this'll be more complete by the time the Convention comes around - at the moment, its still got all my debugging stuff in.
Anyhoo, here is the current state of my game (called
Shapies, if you hadn't of guessed already). You've heard of Lumnies - welll, this is nothing like that.
The object is to match at least 3 circles in the centre line - you can move each column up or down (if there is space) using the arrow keys, and you can rotate the centre line around by 1 column by pressing the space key.
If there is a match, then new tiles will be added in a vacant space. And every so often a new tile will be added too.
The game will start to be over (when its implemented), when its not possible to move up or down - a 10 second countdown will being - when that reaches 0, its game over.
I'll be implementing a two-player mode and a single player mode too. Hopefully a single player versus mode as well...
Currently get a frame rate of around 300 on a GeForce4MX, 2.4Ghz machine, and over 1200 on a AMD Turion 64 1.8Ghz machine...
Forgot to mention, press OK on the two message boxes that come up...
The timing system uses the high precision timer, but uses 8 previous times divided by the timer resolution - got the idea from Andy Igoe, so hopefully sudden slow-down caused by other programs should even things out.
The rest uses states for pratically everything - only one thing is done per state per loop, hence the reason its so smooth. This is so that, in multiplayer mode, neither moving nor fading will affect the other player.
Need to implement the game over system, multiplyer, multiplayer, titles etc etc...
The top number (in the border) is the score, bottom left is the level, and bottom right is the game over count-down timer (does nothing at 0 yet). All numbers are sprites (for speed). All sprites dont save the background either...
The text number at the top left of the screen is the FPS, the others are the frame rate, countdown to add new tile, countdown timer (was having a nasty crash yesterday with this - turned out I wasn't initialising the high precision frame end value so everything was stepping at -400000), and various other bits that are quite safe to ignore.