Frozen Vertex

Frozen vertex is a Shoot 'em Up boss fight that I created as an individual project made in unity.

I scripted the game in C# and made all the art seen in the game using Photoshop.

The boss has multiple stages that it cycles through including ones where it repairs itself, shoots homing missiles and fires two laser cannons.

The player must be very careful however, as getting hit results in instant game-over!

The assignment

The boss fight 'Frozen Vertex' started out as a scripting assignment in schoolbut turned into a project that I worked at in my spare time.

It became a project where I got to both work with game design and scripting aswell as creating pixel art, all which are things I enjoy greatly.

 

I started out by creating scripts for the player mechanics, such as movement, attack, etc. and attached it to a box in Unity. I then made a bigger box and gave it a simple animation and turrets.

To give players the illusion of moving when they are actually standing still I created parallax scrolling in the background layers. I also added support for a PS4 controller pretty early, mainly because I was curious of how to set it up in Unity.

The finished boss

After creating a rough outline of how I wanted the boss to look I split the ship up in to different parts.

Each part has its own health component and three stages of hull integrity, starting with 'repaired', then 'damaged' and lastly 'broken' where the parts with weapons attached to them stop firing entirely untill repaired.

When a wing of the boss ship is damaged, it first registers the damage and then passes it on to it's overall health pool, decreasing the health meter of the boss.

 

As long as the boss doesn't drop beneath a certain amount of health it keeps cycling through four stages.

'Normal', firing all turrets and missile launchers.

'Repair', fully repairing all the individual parts and weapons.

'Bombardment' firing huge missiles from afar.

'Laser', letting loose two constant laser beams which corners the player.

When close to death the boss stays in 'Normal' and it's core is exposed, making it extra vulnerable.

Decisions and mistakes

When making scripts for Frozen Vertex I started out creating a lot of scripts made for very specific tasks, which quickly cluttered my project.

For example, in the begining each part of the boss ship had it's own unique script containing all mechanics for that specific part, which resulted in making it very hard to make any changes efficiently.

 

I then learned to always keep a few things in mind when scripting. For instance, being able to balance values in the scripts and to make them be as close to "drag and drop" as possible. That way I could use the same health script on all parts of the boss regardless of whatever other scripts they had on them.

 

I also used a 'game master' and a 'weapon handler' that watched some player input regarding menus, how much energy the player has left, helped trigger the different states of the boss, etc.

If I were to revisit the project I think I would make a few changes. Gameplay wise, the weakest parts of

Frozen Vertex is the ''Bombardment' stage.

It is very slow paced and even if that can be a good thing it is a bit extreme and the low difficulty of the stage doesn't really fit in with the rest of the project.

 

Decreasing the intervals in between the bombs might solve this issue. A better solution would probably be adding smaller enemy ships that attack the player while he attempts to dodge the bombs falling from the skies.

This project has really given me some in-depth knowledge about scripting, and on the whole I am happy with the result of this game.