2/19 - 3/19

Time Summary: 19 hours

Studio Meetings: 6 hours

Updating Encounter System: 8 hours

Art Implementation: 4 hours

Debugging: 1 hour

Updating Encounter System

Boss controllers

I was assigned with implementing the Boss health bar, which I will talk about later, but in the process of attempting to implement it, I realized that the encounter system I had set up was not compatable with the boss controllers. Not only were the 2 boss controllers scripts independent with no hierarchy to the enemy controller base class that all other enemies have, but they also had no correlation to eachother. Since there is talk of expanding the game, and now adding a 3rd boss, I did not want to hard code in the activating and deactivating of each specific boss enemy we have or hope to have. So, in order to fix this I made the Boss controllers derived from a "Boss Controller" base class, which 2 functions to be overridded: activate and deactivate. I let the developers on the enemy team know and that as they continue to develop bosses, they need to made sure they implement these two functions.

Wave System

In the third week of the sprint, developers of the level team had requested that I implement a wave system so that when all the enemies in the initial toDefeat array have been killed, another wave are setactive, and then the same cycle continues until all of the waves have been killed. If I had known designers would have wanted a wave system back in the first couple of weeks, I would have approached it a little bit differently. The logic would be the same, but I wish I could have had the initial wave 1 enemies in the same structure as the other waves. However, there are probably upward of 100 encounters already put into the game throughout the 3 different scenes, so modifying the original array and changing it into an array of the Wave gameobject (an array of enemies to defeat) would erase all of this work. However, in the future if my encounter system gets put into the Wolverine Soft Studio Library, I will make this change before letting them add it.

Enemy Field of Vision

The level designers also requested that the enemies are set unactive when the player is a certain range away from them. I had already implemented a less complicated version of this in the encounter system, that when the player crosses a certain trigger, all of the enemies are stopped from moving, so I had already figured out the logic for stopping an enemy in it's tracks. Therefore, implementing the actual thing wasn't too hard. I simply added a script to the different enemy prefabs that had a serialized field of radius of vision, and inside of the script I check if the enemy's controller is activated but the enemy is a certain distance from the player, call deactivate, and vise versa.

Debugging

Most of my debugging tasks during stability week were fairly straight forward. It was mostly small things that people had forgot to add to the game such as health pickups in certain spots and fixing the compatibility between the encounter system and the bosses.

Art Implementation

Boss Health UI

This was truthfully one of my favorite tasks of the past couple weeks. I got to use the cutscene system I had implemented a week prior and put things together in the engine based on my own thoughts of how to it should look (with respect to the art assets provided of course). In the end, I am fairly proud of how it turned out and how I used animation curves and timelines to make a clean looking Boss Health UI.

Spike Tiles

I also was able to implement the spike tile art into the tutorial scene. This was not too tricky, especially once I got the hang of the perspective of the game in relation to tile art.

Level 1 Cutscene

One of my other tasks was implementing one of the camera paneling cutscenes in level 1. I had added a switch component to trigger a cutscene the week prior to adding this, but the designers were a little confused with Unity Timelines and how cutscenes worked, and so they requested I implement one of the cutscenes in the game rather than just an example prefab.