Sign in

Gabriel Perez

I can finally say that I am finished with the first course from the Professional Unity Developer program I am enrolled in at GameDev HQ!

Play it here!

If you would like to play the game, click on the link below:

I feel accomplished and excited to finally finish a course and a game I can say I’ve programmed! In the last two sections, the phase 1 framework and the phase 2 core programming alone is the ultimate experience every course should have! …


For today’s challenge, I implemented an enemy type that can shoot and juke player projectiles!

The more features implemented, the more challenging the game is getting! This new enemy type adds an extra level of difficulty. We need to be smart when shooting, and accuracy is something to strive for to save ammunition.

This new enemy type avoids the player’s projectile when in front. So we must spray our shots to land a hit.

Since we are dealing with a new type of enemy, I did a quick photo-bash of the original enemy sprite given by Game Dev HQ to…


For today’s challenge, I implemented an enemy boss for the final wave!

I have to say this was no easy feat! As an artist with imagination, I wanted to go for a grand experience. As I was going with this experience, I felt that it was above my skill level.


For today’s challenge, I implemented a wave system

I have to say this was the most challenging feature for me. It required a lot of thought and programming logic I haven’t fully developed yet. But in the end, it’s all working with tape and glue. It works, ladies and gentlemen! That is all that matters!

I was going to scratch the existing spawn-manager script I had, but instead, I went with keeping it and adding the wave system logic in there.

I created a custom class for the wave with a gameobject[], number of enemies, and the name of the…


For today’s challenge, I had to implement an aggressive enemy type!

The challenge is to add a new, aggressive enemy type that can ram the player when in front.

For this, I had to restructure the collision detection for each game object. In the Layer Collision Matrix, each type of game object has its layer mask and setup.


For today’s challenge, I implemented a power-up pick-up feature!

When holding down the ‘C’ key, we can now have all power-ups, currently active, in the scene come to us.

In the player script, I created a new function called PickUpPowerUp(). It will hold all the logic to find the power-up and follow the player when the C button is held down.

I first need to find active power-ups that spawn in:

var powerups = GameObject.FindGameObjectsWithTag(“Powerup”);

So with every power-up prefab, I gave it a “Powerup” tag so they can easily be located. …


Today’s challenge was to implement a Homing projectile!

To implement this feature, I had to go through many trials and errors. I basically know how to instantiate projectiles that go up but to have them rotate towards an enemy? I am inexperienced with this.

The Objective

The challenge’s objective is to implement a new rare power-up that will enable the player to shoot homing projectiles. The first thing I did was to customize a current power-up image and make it it's own.


With the addition of new enemy types today, the game now feels almost complete!

The objective is to add new and unique enemy types. So I now have four: Infantry, Assault, Carrier, and Drones.

The first thing I wanted to do is turn the enemy class into an abstract superclass. It will allow me to extend the Enemy class into subclasses that will inherit from the superclass. Subclasses are composed of all the methods and fields of their superclass.

So I created subclasses for each type of enemy, and I made sure they inherited from the Enemy superclass.

Types of Enemies

Meet the…

Gabriel Perez

Hello everyone, My name is Gabriel Perez, I am a Unity Developer and a creator who is always learning and experimenting.

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