BOT OPS
The Enemies' behavior in our FPS game is pretty simple. It only has 2 behaviors: move and attack. Since it's not very complex it would have been better to have a simple state-machine or decision tree. The assignment required that we implemented behavior trees though and I was excited for an opportunity to practice Behavior Trees.The Behavior tree uses two leaf nodes:

A Simple Behavior Tree and a blackboard used to pass values into the behavior nodes.
When coding the behaviors I also learned how to utilize the Blackboard pattern to help pass values between behaviors and outside the behavior tree.I am hoping to further develop the behavior tree in a future project and learn how to utilize Decorators to create more complex enemy behaviors.

Here I use the behavior tree's blackboard to take values needed from the Enemy Controller class.
SPITE: DEPTHS OF DARKNESS
I integrated Wwise into our custom-made Rabbit Hole Engine and implemented all SFX and music created by our group members at Audio Production Academy. Since our engine doesn't have a plug-in for Wwise, I manually integrated it into the engine.
Ambient Audio Emitter
In order to have placeable ambient audio positions in our game I created my own Ambient Audio Emitter class. The class is connected to an object, AmbientSoundPosition, that allows level designers to place out an ambient sound through the editor and choose which sound type they want to play at that position. It works similar to the AkAmbient class in Unity. In the video above, you can hear the Brazier sound playing that the level designer has placed out by the fires.

Choosing a sound type for the AmbientSoundPosition object
DOWN THE RABBIT HOLE
I implemented ambient light, directional light, point lights and spotlights into the game along with directional light shadows.
THE MISADVENTURES OF CAPTAIN HORNSWAGGLE...
...and the Ridiculously Grotesque Encounter with the Terrifying Kraken of the Seven Seas
Genre: Platformer
Duration: 12 weeks (20h/week)
Main Contribution: UI, Player Death, Death Counter, Timer

AI Behavior Trees
For my final individual school project at The Game Assembly I wanted to make something that utilized AI Behavior Trees. While learning about decision trees, state machines and behavior trees, I became infatuated with making the characters move around on their own. It was fun planning and sketching out how the behavior trees might look.I made two different types of animals, one that is social and runs up to the player's mouse pointer when it is nearby, and another that is more timid and avoids the player. Their movement is based on the dynamic seek and flee algorithms that I read about in the book Artificial Intelligence for Games by Ian Millington. When the player is not nearby they switch between idle and wander behavior.The goal with the program is to give the animals more complex behaviors, like looking for food or water, as well as interacting with each other when coming in close proximity. The animal with the timid behavior should become less timid if it is within a certain range of the player and the animal with the social behavior and sees them having a positive interaction.If I have more time to work on this project, I would like to implement so the player will be able to choose if they want to interact with the animals peacefully or aggressively. I want to multiple animals of the same type and create a form of relationship system between the players and the animals. If the player is kind and feeds or pets the animals, their relationship grows, but if the player hurts them their relationship will falter and the animals will become aggressive, attack the player and run away.I am planning to continue working on this project in my spare-time after I graduate to continue mastering behavior trees.Movement Reference: Millington, I. Artificial Intelligence for Games, "edition", (Morgan Kauffman, 2006).