HANNA LAUCIS

GAME PROGRAMMER



group projects



BOT OPS

Genre: FPS
Duration: 15 weeks (20h/week)
Main Contribution: Enemy Behaviour

The Enemies' behaviour in our FPS game is pretty simple. It only has 2 behaviours: 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 behaviour trees though and I was excited for an opportunity to practice implementing them.The Behavior tree uses two leaf nodes:

A Simple Behaviour Tree and a blackboard used to pass values into the behaviour nodes.

When coding the behaviours 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 behaviour tree in a future project and learn how to utilize Decorators to create more complex enemy behaviours.

Here I use the behaviour tree's blackboard to take values needed from the Enemy Controller class.


SPITE: DEPTHS OF DARKNESS

Genre: Hack & Slash
Duration: 14 weeks (20h/week)
Main Contribution: Wwise Implementation & Audio Manager

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.

Video

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

Genre: Top-down Adventure
Duration: 8 weeks (20h/week)
Main Contribution: Light Manager & Shadow Mapping

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


Invdividual project
AI BEHAVIOUR Tree



AI Behaviour Trees

For my final individual school project at The Game Assembly I wanted to make something that utilized AI Behaviour Trees. While learning about decision trees, state machines and behaviour trees, I became infatuated with making the characters move around on their own.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 learned about from the book Artificial Intelligence for Games by Ian Millington. When the player is not nearby they switch between idle and wander behaviour.I started by making rough sketches of how I would build up the trees.

Timid Behaviour Tree flowchart

The goal with the program is to give the animals more complex behaviours, like looking for food or water, as well as interacting with each other when coming in close proximity. The animal with the timid behaviour should become less timid if it is within a certain range of the player and the animal with the social behaviour and sees them having a positive interaction.I want to implement so the player will be able to choose if they want to interact with the animals peacefully or aggressively. I will add 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 AI behaviours.Movement Reference: Millington, I. Artificial Intelligence for Games, "edition", (Morgan Kauffman, 2006).



about me


In only 2 years time, starting with no prior experience in game development, I've learned how to program 7 different 3D games. 5 of those games are made in a custom C++ engine I developed together in a team with 5 other programmers.
My teachers have told me that I am the student who has shown the most growth since I became a student at The Game Assembly.
Now I'm looking for an internship to continue my journey in the world of game development.I have loved video games for as long as I can remember. My favorite genres to play are JRPGs, action/adventure, and puzzle games. I am also interested in playing more strategy games when I have the time. Learning how to program video games has given me a new appreciation for the games I love.“I am part of The Game Assembly’s internship program. As per the agreement between the Games Industry and The Game Assembly, neither student nor company may be in contact with one another regarding internships before April 15. Any internship offers can be made on April 27th, at the earliest.”