Objective: Create an enemy type that aims to ram itself into the player. It also takes multiple hits to be defeated.

So for this enemy, I want it to essentially be tank-like. All it aims to do is try to kamikaze itself onto the player. It takes three hits to take down. To balance it out, it doesn’t shoot and it moves slower than the basic enemy.

Here’s what I made this tank enemy look like:


Objective: Play around with numbers to get a good balance between enemy and powerup spawning. Let’s fix a timing issue too.

So when we’re making a game, we want to make sure the balancing is set to match the level of difficulty we want it to be. A harder game will likely have less mechanics to help the player, and an easier game will have more.
At the moment, I feel like my game is a bit on the easy side with the rate of powerups spawning. I get extra life when I’m often already full, as well as ammo. The…


Objective: Let’s fix some bugs revolving enemy shooting so that they don’t shoot once they’re dead and do not kill other enemies.

First off, the reason why enemies were able to shoot after they die, was because there was no variable checking if they were dead and would not be able to shoot. So let’s add one. In start, set it to true.


Objective: Create a powerup that decreases the player’s speed.

First let’s create visual. I basically just grabbed the speed powerup, renamed it, changed its color, changed the powerup ID, and turned it into a new prefab.


Objective: Create a wave system that spawns more enemies each wave.

In our spawn manager script we’ll need to create some variables.


Objective: Create a display that shows the start and number of the wave.

Create a new UI text object in the Canvas object, and name is Wave_Display. Change the text to how you want it to look in game, and then create a new animation. For mine I changed the opacity to 0 in the first keyframe, raised it to 100 and then back to zero according to how I wanted it timed.

You can change the opacity of an object from the color swatch wheel.


Objective: Change the ammo display so it shows both current ammo and the max amount of ammo.

Let’s go to our UIManager script and add a new variable.

Now wherever the display get’s changed we need to make sure to add “/” and the max ammo afterward.


Objective: Create new movement patterns for the basic enemy.

First we’ll want to make a new int variable to keep track of movement types.


Objective: Create a new powerup that when activated, sends out multiple lasers in different directions.

First we need to make the prefab for the multi-shot. I just used the lasers and grouped them under an empty object, recolored them, and moved them around until I got something like this:


Objective: Have the camera shake whenever the player gets hit.

First we’ll want to create the animation. While Main Camera is selected, create the animation and then create a new keyframe after moving the camera object to where you want it.

Sabrina Windsor

Currently learning to code with the help of GamedevHQ in order to someday my my game ideas come to life!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store