In the final challenge of the course, we have to create a boss that you have to fight at the final wave. I mean what is a game without a hard boss to defeat right?

Create a final Wave that includes a boss at the end.
Moves down the screen to the centre and stays there.
Unique attacks towards the player.

I really didn’t know where to start with this challenge and therefore I decided to do a bit of research and Brackeys made a video on how to create a boss using something called Finite State Machines or FSM…


In this challenge, I have to create a projectile that would lock on the nearest enemy and home in on it to destroy the enemy.

Create a homing projectile that seeks the closest target.
Turn into a rare powerup.

I’ve broken this challenge into three sections.

  1. The Player that stores the missile ammo and firing.
  2. The Powerup that replenishes the missile ammo count.
  3. The Missile itself will select and home on the closest enemy.

The Player Logic

Our player script has been responsible for the movement, weapons and giving the actual powerups. Creating the logic to fire the missile was the first and…


In this challenge article, I need to create a system where the player presses a key that would attract all of the powerups on the screen towards the player. And I figured this would be a great way to utilize the energy system that I created.

When the “C” key is pressed by the player, pickups move to the player.

When I created the energy system for my EMP Bomb dubbed the “Orb of Destruction” I wanted it as a separate weapon and not another powerup, but I also wanted it to be hard to get, and this is when…


Hi there everyone, back with another article based on challenges that are part of the GameDevHQ Space Shooter Phase 2 Challenges. I have four separate challenges, but they all require one basic principle and from the title of the article you’ve guessed that it’s rays or better put a Raycast.

  • Create the functionality to support enemy aggression. If an enemy is close to the player, the enemy will try and “ram” it.
  • Create an enemy type that knows when it’s behind the player and fires a weapon backwards.
  • If a pickup (powerup) is in front of an enemy, the enemy…

In this challenge, I have to create a system where some enemies spawn more often than others and the same for the powerups where things like ammo would spawn more often and things like the triple-shot would spawn less often.

Create a balanced spawning system between enemies and pickups.
Pickups like health should be rare, where ammo is frequent.

In this article, I won’t go into deep detail about how I completed the challenge and implemented it in my project. …


It is time to bring another enemy into our game, and this one has quite a few curveballs.

Create enemy types that can fire & damage the player.
Create enemy type with unique projectile (ie. Laser beam, heat-seeking, etc)
Unique Movement Behaviour (zig-zag, wave, etc)

In a previous challenge, I had to create a new movement, but I created it so that it was unpredictable and random, and therefore decided that I would rather focus on the first two points of the challenge.

Creating a new enemy was the easiest part of the challenge and decided to start there and…


Another day and another challenge, but this one will affect the player in a negative way. Today’s challenge is to create a negative powerup.

Create a powerup that negatively affects the player.

This is another one of those really easy to implement features since we have a modular powerup system and it’s very easy to add more powerups on an ever-growing system.

Before we dive into this article I need to warn you I’ve replaced all of the image assets with something I found online that looked a lot better for me and that had quite a variety of enemies…


Welcome to the Phase 2 set of challenges. This new set of challenges are more challenging with lots of planned goodies in store to share with you guys. The first challenge is to create a new enemy movement.

Enable the enemies to move in a new way, either from side to side, circling, or coming into the play-field at a new angle.

I’ve given this challenge a bit of thought and decided to create some randomness that would keep the player on edge. When an enemy is spawned, it generates a Random.Range number between -1 and 2returning a value of…


Credits: RubyMotion

When I wrote the article for the secondary fire powerup I needed a way to test the weapon without playing for long times to get enough energy. I decided to implement my first “cheat” into the game, but this would only be for testing purposes, but I also wouldn’t want this cheat to be accessible in any of my builds. …


The time has come to wrap up Phase 1 challenges and this one is a breeze compared to the others. Today I’ll be implementing a camera shake when the player takes damage.

When the player takes damage, provide a subtle camera shake.

Creating the Camera Shake

Since we’re working with the camera, I decided it would be practical to attach the script I’ll be creating on the camera directly. And since we’re creating an effect, I created a new script in my effects folder and named it “CameraShake” and attached it to the camera.

Opening the script I removed the start and update functions…

Dominique Dos Santos

Self-taught Unity and C# Developer with a passion for games and the stories they tell.

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