KYLE KOTOVSKY
The Catalan Atlas
Role:
Technical Designer
Date:
March - April 2024
Engine:
Unreal Engine 5.3.2
Genre:
First-person exploration action adventure
Description:​
A prototype made in a group of 10 with the project being most of our teammates second ever project in Unreal Engine. A PVE first-person adventure game where the player must find the lost ruins and evade dangers the island has to offer.
My Contributions:
-
Creating 4 different environmental hazards and 2 AI that have different functionality to hinder or stop the player.
-
Repurposing AI created in Crystal Shooter to create 2 unique AI with new complex behaviors utilizing UE Blueprints, Behavior Trees, Blackboards, and EQS System.
-
Fabricating various environmental hazards with UE Blueprints each with different behavior.
Gameplay Trailer
Improving Enemies
This project was started directly after Crystal Shooter, where I created the AI and almost all of the functionality surrounding them. I decided to repurpose the system that I had created and add some small changes that were not needed in the original version.​
The main change that I had added was perception. Thankfully Unreal comes with an easy way to add perception to AI through the AIPerception component. I made it so the enemies will go towards sounds if they are heard and directly move towards the player if they are seen inside of the enemy's vision cone.
New Enemies
With the updated enemy system, now I could go ahead and create some new enemies.
The Lizard Enemy
The first and easiest enemy to implement, as it was the Small Fast Melee Enemy with a different mesh, animations, and sounds. It was relatively easy to add into the game.​
The Taunting Enemy
I implemented was not originally proposed for the prototype. I had created it as a joke in my spare time, but after I showed it to the team, they wanted it in the game and saw an opportunity for the enemy to interact with the core mechanic of our game.​​​​​​​​
The Taunting Enemy works by first approaching the player and playing an animation. Once the animation is finished, it uses an Environment Query System (EQS) to run to a position that is far away from the player.
Click the image to see it at full resolution
Click the image to see it at full resolution
Click the image to see it at full resolution
Click the image to see it at full resolution
I then added the ability for the Taunting Enemy to "steal" the player's map and then "giving" the map back to the player after it runs off. In reality the Taunting Enemy disables and re-enables the map interaction button for the player after the taunt animation is played. After the Taunting Enemy does this once, it runs away, then runs back to it's spawn location called a "den" and despawns.
Adding Environmental Hazards
After the the enemies were done, I moved on to adding some traps to the environment, giving the environment more danger.​​
​​Spike Trap
The first trap I made was very simple. It is just a simple collection of spiked sticks with a collider that deals a lethal amount of damage to instantly kill the player.
Quicksand Trap
The second trap I made was a little more complicated. The player falls into a collider that slows player movement and once the player is far enough down, they enter a second collider that starts doing damage over time. The player is able to press SPACE to push themselves out, but they need to press is many times to escape. ​​
Bear Trap
After making the Quicksand Trap, I wanted to make something a little more simple. The Bear Trap stops the player's movement when overlapping with a collider in the center of the trap, despawning after the player is freed. The initial idea was to have the player spam a button to escape, much like the Quicksand Trap, but I did not have enough time to implement that due to the nature of our rapid schedule for the prototype.​​
Meteor
​​The initial idea sprouted from me looking at our level and seeing that there was a massive volcano in it. I had created a rough version (seen in Early Meteor Iteration in Unreal Engine 5) to pitch to the team and got approval to continue development and implement the new hazard.
​​
​
Now that I had a basic version of the meteor working I wanted the player to be able to see it actually shooting out the volcano instead of just spawning from the sky.
​​
​
To do this I needed to create a spline that the meteor would follow and this ended up being more complex than I thought. I got stuck when figuring out how to get the meteor to stick to the spline but a very good Gameplay Engineer friend on the project helped out and we were able to get it working.
If I had more time with this project I would have improved the enemy perception to have an investigation state. The way they feel at the end of the project is okay, but when the player gets spotted, the enemy is now permanently aggressive. I would have also liked to improve the Meteor to make it easier to use. It needs a spline that the user needs to manually make and place in the world, which takes a lot of time. I would have liked to improve the system by making a meteor spawner that tracks the player's location and launches a meteor near the player's location.