Asteroids
Back to portfolio

Asteroids

Published: 17 Sep 2023, Last Updated: 29 May 2024

This is a simple game where the player controls a spaceship and has to avoid asteroids for as long as possible. The player can move in any direction and also shoot at the asteroids to destroy them. I designed the gameplay to require only a mouse to play. The player will always face the cursor and either accelerate forwards when the left button is pressed or shoot when the right one is pressed.

After creating the basic mechanics, I found the game to feel quite easy as the player can shoot at the asteroids heading towards them and occasionally dodge when they need to. I decided that adding some "modifiers" that would change certain mechanics of the game would help make it more difficult. The first 2 modifiers I added were "always moving" and "limited ammo". The first one would mean that the ship would always accelerate towards the mouse, so players would have to think about where they want to shoot so that they don't accidentally crash into the asteroid they are aiming at. The second would start the player with 8 bullets and spawn ammo boxes around the level occasionally that give another 4 bullets. Both modifiers can be added at the same time to provide an even greater challenge. The other modifiers I added were no moving which means the player has to rely on shooting any asteroids, and no shooting which means they have to dodge asteroids.

I implemented a basic scoring system that increases the score every second survived and for every asteroid destroyed. The modifiers will also multiply the score by a certain amount, since they make it more difficult. Since some modifiers would conflict with each other and also apply both score multipliers, I created a system to disallow certain combinations of modifiers.

I learnt how to use particles in Godot 4, mainly for explosions, but also for the ship engine. This is something I'd like to expand upon in future projects and create some more complex effects.

This is the second project I have ever used sound effects in and the first where I have included background music. Each time a new game is started the background music is randomised to make the game feel a bit less repetitive. I enjoyed working with Godot's audio system for this since it was very easy to use and required little time to learn everything I needed to about it.

Currently the game is in a relatively finished state. I may add some more small features like extra modifiers or a different game mode (defending an objective for example). I'm hoping to use the things I have learnt from this project in some slightly bigger games soon.

Gallery

The main menu from the Asteroids game
A screenshot of the spaceship exploding in the Asteroids game
A screenshot of some example gameplay from the Asteroids game where the player is shooting at asteroids