W.I.P. 3: Vadespacers (5, 8)

This is the Work-In-Progress for a game that ended up being called Vadespacers (5, 8). I’ve mentioned previously I’m rubbish at naming games, and this one got saddled with a name that’s a cryptic crossword clue. (Technically it could do with a definition in there to be a perfectly valid clue, but since it’s the name of the game I’d suggest that’s implied.) The game is so clearly my take on Space Invaders that I wanted to get that into the name somehow, but there are silly numbers of games called Space Invasion and Space Assault etc. so I wanted to pick something a bit different.

Below is the video – as you can see it’s so nearly a complete game that it’s daft I never finished this. As usual the current build of the game is available to download at the end of this post.

So on to the game then. I started making this at one point when Dogfight Thing was dragging on a bit, looking like it might never get finished. I fancied doing something where I already knew all the answers (yeah – right!) and I’d never in 30-something years of making games had a pop at Space Invaders. It wouldn’t just be Space Invaders though – I needed a hook, and the one I went for was to make it a bit more in-your-face. I didn’t want to change the game much, just give it a bit more attitude, make it snappier and a bit more feisty. I think it was getting there.

So before starting coding the main thing I wanted to change was the main weapon, and the first thing that came to mind was to replace the “one shot at a time” mechanism with the polar opposite – a minigun. I knew this could be balanced out (by giving the invaders hit points probably) so ran with this as a plan.

Another decision I took really early on was to give the player a single life to keep things lively. I wanted to make the game much trickier overall anyway, and snappier as mentioned above, and that felt like the player should only get one chance at success. As much as I love the traditional arcade “3 lives” approach, it’s kind of frustrating when you lose the first one cheaply and still have to play on. Better perhaps to make the one life all you have, and make any error equal game over.

Getting the invaders working was largely simple, but there were several things I’d not considered beforehand. That whole “doing something where I already knew all the answers” thing was misguided even with something seemingly as simple as Space Invaders, but most of the problems were easily solved.Vadespacers002

The implementation of the minigun weapon defined how the game would feel, and it’s something I’m happy with (although it could do with a better special effect). I wanted to speed the game up a little, but not too radically, so that meant the invaders had to take a fair bit of a kicking before exploding. With each bullet impact I then played an impact sound and jittered the victim around a little – this led to a proper feeling of them being riddled with bullets. It started to feel like you were giving them a real seeing-to (this works especially well for the bonus UFO I think).

The main design decision I struggled with was actually the shields. It’s not Space Invaders without shields, but I didn’t know how best to go about doing erodable ones like the original had. So I came up with a couple of alternate plans – either give the player a toggle-able portable energy shield that would form around them, or make the shields permanent. I quite liked the portable energy shield idea for shaking up the gameplay a little, but it felt a bit too far from the template, and with a little thought it had issues. It would be OK for it to stop bullets, but it couldn’t stop invaders, because that would make the shield incredibly powerful (unless I rationed it). So I went with the permanent shield instead (without properly thinking it through admittedly). It did tie in with the player being kind of clunky (the aliens use energy weapons, the player is flinging lumps of metal skyward as fast as they can), so strapping a couple of blocks of concrete in the air above them fit quite well. I hadn’t considered the fact that it would also have to wipe out invaders at the time, but later came to believe the game still works if invaders that get below shield level are considered to have invaded and ended the game.


Next I decided to add the rocket launcher to the game – the player already has a minigun, why not a rocket launcher too? To temper the usefulness of this I first made it so that if the player uses it behind a shield it kills them. With just the one life this perhaps feels a tad harsh (albeit in-keeping with what I wanted for the game), so I’m on the fence about this decision. I also added a chance for dead invaders to drop out of the sky, rather than simply exploding when killed. This redressed the balance in the invaders favour a little since the falling corpse will kill the player if they get hit by it, and using the rocket launcher potentially creates several of them – adding a bit of risk to using the thing. I also think it adds to the feel of the invaders being given a thoroughly good kicking, so that’s a definite plus point.


One final thing I added which is in the release below was a fast mode which simply makes the game play at twice normal speed. It was a quick and dirty trick to pull, and needs some balancing, but I quite like the feel of it. It’s much more of a white knuckle ride, and perhaps a tad closer to how I’d like the main game to feel. One of my favourite type of arcade games are ones that feel like they want you off them. Robotron always felt like this – it took your 10 pence piece and then did its best to throw you off. It’s the game equivalent of a bucking bronco – part of the fun comes from seeing how long you can defy it and stay on.

There’s not much more to say about this one. Basically it got to the stage shown in the video, and it’s not too far from done. It doesn’t feel quite how I want it to yet – it’s not punchy or mean enough. It maybe needs a bit more targetted aggression. Currently enemies fire at random and whilst they do fire fast shots if you’re close it’s not enough. The random selection works fine in the original where they’ve got shields to erode, but here it might be better to add a bit more malice – picking the right invader to fire (if only occasionally) and using deflection to fire at where the player’s going to be when the bullet lands.

I was also never completely happy with how the invaders sped up as their numbers are reduced. I tried a few approaches at monkeying with the numbers, but nothing really felt right. Stupidly I didn’t Google it at the time – the way the original game does it is easily found, wonderfully elegant, and should be easy to implement in my game despite the fact that my invaders move smoothly rather than in steps.

IIRC my game also doesn’t get harder over time either – you get the same wave over and over again. Fix that, work on the animation (only one invader type animates, and it doesn’t do it well either), tweak a few settings here and there, redo the lousy background mountains, make the bonus UFO score actually mysterious (involving rocket counting, akin to the original game), and this would be done.


In my defence for not finishing this when it was so close, I wanted to get it working with the Indie City portal to get online leaderboards in since it’s a pure score attack game, but after getting it working initially, an update to the IC SDK caused a bug with my implementation of it, and that stopped me dead in my tracks. I might consider finishing this off at some point and releasing it as a freebie (or maybe as charity donationware).

The one regret I have with this is that I didn’t set the screen to be portrait at the very start rather than using landscape. I’m not sure why this didn’t occur to me at the time – a defining point of the game is the overall shape of it, and mine is just wrong – too wide. It works my way I guess, but if i could change anything that would be it.

OK – here’s the download link. Instructions are included on the front end screen, but I left in my invincibility testing mode, so press “i” to cheat if you feel that way inclined.

Click here to download Vadespacers (5, 8)

As usual it needs the XNA 4.0 runtimes, which you can get from here:

Click here for the XNA 4.0 runtimes