top of page

The Catalan Atlas

Date:

March - April 2024

Genre:

First-person exploration action adventure

Role:

Technical Designer

Engine:

Unreal Engine 5.3.2

Description of the project:​

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.

I was responsible for:
  • 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.

​​

​

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 final environmental hazard that was implemented in the prototype, and by far the most complex.

​

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.

 

Unfortunately the system is very crude, each spline needs to be placed in the level and made manually for a set location. If I had some more time with this I would have liked to figure out a system to streamline the process of implementing a Meteor and potentially having a more random way of spawning them.

bottom of page