Calcium Onslaught


Summary:

Calcium Onslaught is a hack & slash game created by me and Max Forsberg over the course of a month. The purpose of this project was to collaboratively script and design a cool game while learning more about Unity and C# scripting.

The gameplay consists of killing enemies and picking up health potions while navigating through a dungeon-like environment.

Specifications:

  • Created in one month, half-time
  • Created using Unity Asset Store assets
  • Custom scripts
  • Custom sound effects

My Contributions:

  • Scripted a boss fight complete with special events such as the explosive meteorites
  • Balanced the units and the boss
  • Created a health bar system for the player and the enemies
  • Created a Main menu system
  • Created the player controller
  • Created various scripts that connected unit animations to different events
  • Created a cool looking aura texture that was used under the tomes in the game
  • Customized the enemy AI scripts
  • Customized the combat system
  • Customized some particle systems
  • Created the gameplay trailer

Getting Inspired

While we were already working hard on our first-person shooter game during our time at The Game Assembly, Max Forsberg and I felt like we had the opportunity to create a game in Unity alongside the project.

We started out by looking for inspiration in the Unity Asset Store where we found a dungeon environment and some skeletons for a reasonable price. Using those assets, we thought it would be fun to create a hack & slash style game with relatively simple game mechanics and beautiful graphics.


We bought the assets and split the cost before we started working on the project. The first thing we did was to delegate workflow among the two of us.


Max was initially in charge of the AI, the player dealing damage to units and the enemies dealing damage to the player. I was in charge of implementing the character animations and creating the player controller.


We prioritized and chose what we worked with based on what we wanted to learn more about, so we both felt like we got something (besides from the game) out of the work we put into it.

One of the asset packs that we ended up buying

The Unity Mechanim System that I used

Bringing Characters to Life

Getting a grip of the Unity mechanim system proved to be challenging, especially since it had been a long time since I last played with animations in Unity. I tried using many different methods for playing animations but the one I went with consisted of a script that played different animations at different speeds based on the character velocity in space using blend trees.


This way, the animations felt more fluid and responsive and that gave the game a sort of wow effect when playtesters tested our game.


Getting the characters to work was fun and challenging but also very time consuming. Therefore, a lot of my time was spent on getting it up and running properly.

This Game Needs a Boss!

After I had created the player controller and the enemy mechanim controller I felt like creating a boss. I started out by applying the same scripts and a similar mechanim system to the ones I used for the regular enemies and merging them with a skeleton king character.


After that, I created a coroutine which was triggered when the boss had a certain amount of health left. The coroutine first of all consisted of the boss looping a charge animation. After a few seconds, when the player hopefully has had time to take cover behind an object in the environment, the boss shoots out meteorites in eight directions which explode and deal damage on impact.



Oh no he's charging up the special attack...

BOOM! Skeleton King rules!

Closing Thoughts

This project was a ton of fun to work on. Everything that we created was created because we wanted to do it, not because we had to. This was a much welcome approach to making games that I previously hadn't fully experienced. We still had our responsibilities and we still had to take initiative, but everything we did was created because we felt like it and that is something that I hope I will get to do some time soon in the future again.


In the final release of the game, we still had a few bugs that we were unable to fix within the given timeframe. One of the more noticable ones was the enemy death animation which had a delayed fuse. This meant that if the enemy was in the middle of attacking the player but died during the attack, the death animation would play after the attack animation was finished. If I do any further work on this project, that is definitely something I would like to fix.


All in all I am proud of the final result and I learned a lot about scripting and animating characters in Unity, so that is something that I will take with me in future projects.


Screenshots

contact@erikleiram.com