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…


A while back I had to implement a thruster speed boost where the user could press shift to go faster. This system was very basic and had no cooldown so a player could potentially hold shift and have an indefinite speed boost. Today’s challenge will change that.

Create a UI element to visualize the charge element of your thrusters.
A cooldown system is required.

Boy, this challenge was by far the hardest. Seemed simple to implement but after 3 iterations I still couldn’t make the speed boost stop when you ran out of time. Everything else was working and I…


This is the final part of our elaborate secondary weapon I’ve been working on. It’s time to go big or go home!

So far all of my previous systems are in place, tested and awaiting their new weapon the “Orb of Destruction” (spoiler: it ended up looking more like an EMP cannon).

The secondary weapon will consist of two parts and each part will have a respective script for its behaviour. The first object is the “base” of the weapon which will spawn at the centre of the screen and will fire off 5 blasts with a cooldown of approx…


This is part 2 of a new weapon powerup that I’ve been working on that’s part of the Phase 1 set of challenges from the GameDevHQ Course. That article can be found here.

UI Systems

I decided to start implementing this weapon by creating the UI system first. Since we’ll be using a charge/energy system I decided to give the player 10 energy points and that the powerup would need 10 energy to fire the weapon.

Once I created the UI elements it was time to update the bar by creating a new public function in our UIManager. First I need to…


As I’m progressing through the challenges, I’ve noticed a challenge that intrigued me and scared me, but it also got me really excited. I reached out to the instructor to discuss my idea for the challenge vs what they were actually asking for.

Create a new form of projectile. You should already have a triple shot. Include something new from multi-directional shot to heat-seeking shots, etc.
Replace the standard fire for 5 seconds.
Spawns rarely.

They want us to create a new type of weapon to shoot when we collect the powerup. Following other people’s ideas on the program Slack…

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