This is the result of my humble attempt at recreating the classic Space Invaders.

The entirety of this clone was created using the Godot game engine. All of the sprites in the game were made in gimp, using gameplay footage of the original game as reference. The majority of the audio was generated using an amazing tool called bfxr. The rest of the audio used -- including the sound of lasers being shot -- are from Kenney's sci-fi sounds pack. If you are getting into game dev and have never heard of Kenney, you can check his stuff out at https://www.kenney.nl/. He's got a wealth of amazing asset packs that are phenomenal.

All of the mechanics were implemented by using old footage of the game as a reference. You can see a list of faithfully implemented mechanics -- to the best of my knowledge -- below:

  • For every round that you progress, the invaders drop that number of rows. This resets after the 10th round.
  • When a row of invaders is 1 row from the player, their projectiles do not harm the player.
  • There is variance in the types of projectiles that the invaders fire. One projectile interacts with the player's projectiles and another does not. And so some projectiles are able to be intercepted. This isn't exactly true to the original, but is an approximation.
  • As the invaders are destroyed, they speed up. In the original, removing an invader would take load off of the CPU and the invaders would move faster as a result. Special care was taken to replicate this faithfully and capture the effect as best as I could.
  • The invaders destroy the barricades as they move through them.
  • The saucer/mothership makes an appearance -- and it does so approximately as often as it does in the original game.
  • The player can only ever shoot if they do not have a projectile currently active in the scene.

There are known mechanics that are not implemented for a variety of reasons. The most common reason being that the sources I found online had discrepancies. I could not reconcile exactly how the point allocations for the saucer/mothership were implemented, and so I just did what I thought was good enough. A list of known differences in mechanics can be found below:

  • Barricades shape and size varies significantly from the original.
  • This recreation does not implement the 3 different projectiles from the invaders. The original had the invaders shoot 3 different projectiles with slightly different properties. Some would intercept the player laser and be destroyed, some would intercept the player laser and continue afterward, and some would not interact with the player laser at all. Additionally, each projectile damaged the barricades differently.
  • The way that the barricades are damaged was approximated and differs notably from the original. 
  • The saucer/mothership always awards 300 points instead of a variable number of points. In the original, the number of points you would receive depended on the number of shots that the player shot up to that point.
  • The number horizontal movements that the invaders make before dropping is about double that of the original game. This makes for a slower paced game that is generally easier than the original.
  • The intro UI describing invader point allocations is not implemented.

A shoutout to the Godot game engine can be found in the barricades. Each "pixel" of a barricade is actually the godot icon.png --as seen below -- that has been modulated to be green. It's pretty common to use the icon for any number of things when prototyping games in the engine. Originally, everything was this icon. When I went back through and flipped the assets to be something more faithful, I just couldn't bring myself to remove the icon from the barricades. So they're here to stay.

Comments

Log in with itch.io to leave a comment.

Is the source code available anywhere by any chance please? 

Sure. You can find it here: https://github.com/lkoger/invaders.

Fantastic. Thanks.