My objective and challenge for this article, is to make an enemy type that will fire at player powerups when they are in front of it. All of my powerups and the vast majority of my enemies spawn off screen to the right, and then move across the screen to the left. It would be pretty easy to have enemies shooting left at powerups as they all travel in the same direction at various speeds, but I wanted to take a more dynamic approach. I decided to use the Jellyfish enemy, as it spawns to the bottom of the screen…


My objective for this article is to create an enemy type that will fire at the player when it gets behind it.

Before diving into the code work, I made a quick new projectile to be fired by the enemy. CorelDraw has a handy star shape tool that let’s you decide how many points and sections you want in the star. Here is where I ended up.


My objective for this article is to create an enemy type that can dodge the player’s attack projectile.

To get started, I will need an enemy who is ready to dodge some incoming traffic. It’s a good thing I recently made a Red Piranha that will be suitable for this new task. More on the creation of the Red Piranha here. https://medium.com/nerd-for-tech/creating-new-enemy-types-the-jumbo-red-piranha-f5cf4f733d1e

While there are different ways to approach this problem, and I wanted to take a path that is CPU friendly. To be honest, I have completed this challenge before. I previously had the dodging enemy checking the distance…


For this short article, my objective will be to finish up my new puffer fish enemy type by giving it a firing routine and some animation.

In a previous article, I covered making the first and last frames of animation for the porcupine puffer. https://jaredamlin.medium.com/creating-new-enemy-types-the-porcupine-blowfish-part-1-art-b5c78048f9f2

I admit that in hindsight, creating these additional frames to animate this little critter took longer than it might have been worth. Rotating the spines by hand into foreshortened perspective was a bit tedious, but I am happy with the final result.


In my last article, I created a firing mechanism that takes an assigned amount of projectiles, and instantiates them evenly around 360 degrees of rotation. My objective for this article is to really take it for a test drive!


This article is a personal victory. I had a specific goal in mind, and I would not take any of my fallback plans as a final result. My objective for this article, is to have the enemy blowfish fire a random amount of spine projectiles, while giving them equidistant rotation axes around 360 degrees, depending on how many projectiles are being fired. Let’s get to it!

Initially, I just wanted to make a spread shot weapon that originates at a central point and fires out in all directions. Plan C was to make a prefab consisting of an empty parent…


Now that my main art asset is ready to go, I can start bringing the new enemy blowfish into my Unity game. My objective for this article is to make the enemy blowfish move left across the screen while moving up and down using a sine wave.


I will go ahead and admit it…this dive into making a vector blowfish has taken more time than I initially anticipated. In a subsequent article I will fully animate this little creature. For now, I decided to break on what will be the first and last frames of animation to write this article. I am eager to bring this tiny villain into the Unity-verse, so I will get right into some art breakdown for how this spikey critter came together.

Start by using the Pen Tool to make a body outline. Then give it a 2-color gradient fill.


Here come more little creatures into my game, and this one can bite from a distance! My objective for this article is to create an enemy that can fire at the player and damage it. I decided to make a second piranha version that will differ in proportion and color from the original, as well as have the ability to fire chomping teeth at the player.

The design on this was easy, being I simply moved, stretched and color changed the original piranha to get this new variant.


My objective for this article is to make an enemy type that will try and ram the player if they get too close to each other. The newly added jellyfish enemy is all too eager to take on this responsibility.

In order to empower this jellyfish for ramming, I need a handful of variables at the top of the enemy class. I have three float values for assigning the thrust that will be used by Unity’s physics engine to apply force to the jellyfish. The first variable, jellyfishThrust, will be the default thrust amount, while the second variable, rammingThrust is…

Jared Amlin

I am an artist and musician, that is currently diving headfirst into game development with C# and Unity3D.

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