Games
The bastards have landed
Spent a bit more time playing around with Gun Bastard this weekend, so here's a quick WIP build for you to play with.
Needs a lot of work on balancing and generally making things fun, but it's just about playable.
Space Harrier update
Been a busy weekend, but I managed to find half an hour tonight to play with the Space Harrier code.
Refactored a few things for readability and general tidiness - shadows are now handled as a class rather than just a special case of Sprite, and die along with their parent rather than hanging around in spooky fashion.
Markie's Revenge high scores
Thanks to StarshipUK, here are the high scores from the Console Combat Markie's Revenge competition. Impressive work chaps - can anyone beat these?

Well shit!
OK, so it turns out I fail bigtime at maths :(
The code I had looked reasonable for the background and flying enemies, but trying to add some ground scenery - the trees and bushes - exposed just how broken it was.
I was hoping to have a demo available, but it looks like I need to go right back to the drawing board and actually read up on how 3D projection works...
Welcome to the Fantasy Zone
Little something I've been playing with over the last couple of days. The latest Retro Gamer had a couple of mentions of Space Harrier, and somewhere along the line my brain went "hey! I could do that!"
So once I got back from Console Combat I thought I'd have a shot at knocking up a quick demo version...
Markie's Revenge released
A couple of months ago, one of the guys behind Console Combat asked me if I'd be interested in putting together a game for a competition at the event.
The result was Markie's Revenge a fun little dodge-em-up featuring Sheep Snaggers' starsheep under assault from floating heads of doom.
Markie's Revenge
The aim of Markie's Revenge is very simple. Guide the Starsheep to stay alive as long as possible and don't get killed by the green Markie Ming heads!
Reasons to love Python
It let's you do twisted things like this:
waves = [[Clown, Clown, Clown], [Clown, Tank, Bunny, Clown], [Clown, Tank, Tank, Clown], [Clown, Tank, Tank, Bunny], [Tank, Tank, Tank, Clown], ... ]
where Clown, Tank and Bunny are the Types of the various enemies
and later...
for enemy in waves[wave]: enemy(xpos, ypos, 0, 0, self.target)
and it just figures it out and calls the constructor for the relevant type.
