Beholder’s Treasure

 

Overview

Beholder’s Treasure” is an Action-RPG prototype inspired by classic Dungeons & Dragons adventures. This prototype was my final Game AI assignment in the Technical Design Track at FIEA. I chose to focus my Game AI assignment on UE4 Behavior Trees and State Machines.

 

Final Gameplay Trailer

Studio: Florida Interactive Entertainment Academy (FIEA) at UCF

Type: Final Game AI Assignment for Technical Design III course

Team Size: 1

Development: June 2020 - July 2021

Ownership: Gameplay Programming, Game AI programming, Technical Art for retargeting Characters and Animations, Creating Chest and Portal Assets, Implemented Beholder Enemy, Skeleton Warrior, Archer, Skeleton Mage, and Dragon.

Responsibilities: Prototyped and developed 3rd-Person Action RPG concept of player seeking the Beholder’s eye and treasure. Developed Enemy Behavior, programmed interactive assets, and designed level flow and enemy encounters.

Tools used: Unreal Engine 4, Blueprints, PowerPoint

First Prototype

This is the very first prototype created for the working prototype of Beholder’s Treasure. Game design and development is an iterative design methodology requiring the prototyping, testing, analyzing, and the refinement of the prototype to build for the foundation of a working game. In this first prototype, the foundations of what will become the enemy behavior tree for enemy interaction are being established.

Second Prototype

The second prototype of Beholder’s Treasure tests the enemy behavior in a more mazelike or dungeon like environment. In this prototype, the player can use the whistle ability to draw enemy knights out of corridors. The second prototype also introduces a new game mechanic in the environment. The portal mechanic allows the player to teleport to different areas of the maze. This allows the player to leap forward and explore unreachable areas. Finally, a new animation is being used for the Enemy Knight AI that helps the Enemy AI transition in attacking.

Third Prototype

The third prototype of Beholder’s Treasure further tests the enemy behavior and brings in two new enemies the skeleton warrior and archer. This prototype also begins to set up the aesthetic of the environment to begin setting the scene of a dungeon. This prototype also expands the level and adds more corridors to test the encounter behavior of the enemy AI.

 Enemy AI - Undead Knight and Skeleton Warrior

 

The Undead Knight

The Undead Knight is a fallen warrior that lurks the dungeons seeking new recruits to join the legion…

 

The first two enemies in the prototype of Beholder’s Treasure is the Undead Knight and the Skeleton Warrior. These two enemies have a series of behaviors that they perform in the prototype. From patrolling to investigating, to chasing, and attacking the player, their behavior tree allows them to provide an interactive experience for the player.

The Skeleton Warrior

The Skeleton Warrior, a fallen combatant from a bygone era that is doomed to repeat battles from yesteryear…

 
 

Patrol Paths

 

To allow the Enemy AI for the Undead Knight and Skeleton Warrior to have patrol paths that would appear to be more routine like a typical soldier in a planned path, I decided to use a system based on vector coordinates that can be stored in a Vector array, allowing the Enemy AI to increment or decrement along the patrol path. This allows patrol paths to be constructed in more rectangular shapes or in other patterns that allow the Enemy AI to navigate from each Vector point in the array.

 
 

Patrol Path Photo Gallery

 
 

Enemy AI Behavior Tree

 

Enemy Behavior Tree

The Enemy Behavior Tree has tree main branches: 1.) Can See Player; Can’t See Player; and 3.) Patrol Path. Within these three branches are more sub-branches that hone in on the type of behavior needed.

Enemy Behavior Blackboard

The Enemy Behavior Blackboard holds all of the variables that are needed for the Behavior Tree to function. The Blackboard has been described as the “brain” that allows the Behavior Tree to function.

Enemy AI Controller

The Enemy AI Controller is main component that allows the Enemy Behavior Tree to run. Also, it provides the AI Perception component that allows the Enemy AI to perceive from the environment, pass the variables to the Black Board, and allow the Enemy AI Behavior Tree to run through its branches depending on the variables received from the Blackboard.

Enemy AI Complete Senses Function

This function is the Complete Senses that the Enemy Behavior AI can perceive.

Behavior Tree Functions

 Enemy AI - Skeleton Archer

 

The Skeleton Archer is the first ranged attack enemy that the player confronts within the Beholder’s lair. It was a challenge to create and develop the behavior tree of the Skeleton Archer as there are not many resources on developing Enemy AI that use bows and arrows in game. In particular, there was an issue with the transitioning between patrolling, searching, aiming, and shooting for the Skeleton Archer. To overcome the issue, I had to develop a new Blendspace blueprint that would allow the Skeleton Archer to transition from each state in the behavior tree.

 

Patrol Routes

 

For the Skeleton Archer, I decided to use a spline point system to design and develop the ability of the Skeleton Archer AI to patrol along a certain route. I felt that Skeleton Archer needs to be able to move in curved patterns and loops to give the Skeleton Archer a more natural feel.

 

Patrol Route Gallery

 
 

Enemy AI Skeleton Archer Behavior Tree

 

Skeleton Archer Behavior Tree

The Skeleton Archer Behavior Tree is more complex as it has to be able to calculate if the Skeleton Archer is in range of the player to make a ranged attacked. Also, this Behavior Tree switches between the states of Patrolling, Investigating, Seeking, Attacking, and Death. Within each state are other functions that execute behaviors and actions based on the different states.

Skeleton Archer Behavior Blackboard

The Skeleton Archer Behavior Blackboard holds all of the variables that the behavior tree needs updates on from the game environment to know what branch and state from within the behavior tree to execute.

AI Controller

 

States in Action

The behavior states of the skeleton archer can switch as needed in response to updated variables provided by the Blackboard which is updated in response to the player. This allows the Skeleton Archer to be a more robust form of Enemy AI with a ranged attack ability.

 
 

Behavior Tree Functions

 Enemy AI - Skeleton Mage

 

The Skeletal Mage is the first range-based enemy that attacks with fireballs and has the ability to teleport closer to player. A future goal is to have the Skeleton Mage cause fire damage within a certain radius when the Skeletal Mage is within proximity to the player. To achieve the teleportation ability of the Skeletal Mage, the Environment Query System (EQS) was used to create a grid point system in which the Skeletal Mage can teleport within.

 

Skeletal Mage EQS Teleportation in Action

 

To provide a unique ability to the Skeletal Mage, the EQS System was used to allow a grid system to be created on the Nav Mesh and allow the Skeletal Mage to teleport to different areas on the Nav Mesh. This provides a both a fun and challenging ability of the Skeletal Mage to liven gameplay.

 

Skeletal Mage Gallary

 
 

Enemy AI Skeletal Mage Behavior Tree

 

Skeletal Mage Behavior Tree

The Skeletal Mage Behavior Tree has a different system because of the EQS query in its behavior tree. The Behavior Tree is broken into three main branches, Can See Target, Recently Seen Target, and Roaming.

Skeletal Mage Behavior Blackboard

The Skeletal Mage Blackboard has numerous variables that are needed to be updated for its behavior tree to execute correctly.

 Behavior Tree Functions

 The Beholder

 

The Beholder…The Mastermind of the Lair

The Beholder is the main adversary that our player will face within this prototype. More deadly than any other creature faced in the depths, and born from madness and nightmares, the Beholder protects is treasure from would be adventurers with henchmen, magic, and sheer cruelty. An adventurer should proceed with caution when venturing into the lair of the Beholder seeking the Beholder’s Treasure…

 
 

Beholder Battle

 Encounter Design and Technical Art

A Focus on Encounter Design and User Experience

The focus of the prototype of Beholder’s Treasure is to take some of the concepts and creatures from Dungeons and Dragons, and put them into a faster-paced experience similar to a dungeon crawler like the Diablo or Torchlight series. One of the main focuses for Beholder’s Treasure was balancing the encounters in the prototype. I did this by iterating through gameplay to gain a feel for the pacing of the level. I also created some assets that provide a collectible for the player and a method for the player transverse the space in a unique way. I wanted to provide a unique user experience that would allow the player to have the feeling of entering the Beholder’s Lair, and going from encounter to encounter with rise and fall tempo for each encounter. Yet, I also want the player to feel that urgency, and use the space to their advantage.

 
 

Interactive Assets

 

Treasure Box

The treasure box provides an interactive asset that allows the player to collect coins or other treasures throughout the experience. It is composed of a static mesh with a base and a lid and a box collision. Once the player interacts with the treasure box, the lid opens, and the treasure is found inside, along with a sound effect that is played to notify the player that a treasure has been collected.

 

Treasure Box Blueprint

This blueprint contains the gameplay logic that allows the treasure box to be an interactable object in the prototype.

 

Dungeon Teleporter

The Dungeon Teleporter provides a method for adventurers to explore and venture the dungeon to reach new areas, avoid enemies, or even land in the middle of a horde of enemies. Once the player interacts with the Dungeon Teleporter, the player is teleported to the other teleportation location.

The Adventurer 

The Adventurer…tasked  by the wizard Raistlin to delve into the Beholder’s lair for the eye of the Beholder. Beholders are creatures of madness and nightmares. Yet, the eye of the Beholder holds mystical and magical powers that can be a boon of power in a mere mortal’s hands. The Adventurer must heed caution to take on such a dangerous quest. Yet, with great risk, comes great opportunity and fortune, if you dare to venture into the Beholder’s Lair…

 

Attack and Block Animations

To provide our Adventurer with an attack and block for facing the horrors of the Beholder’s Lair, I had to retarget the static mesh and I had to retarget animations for the character. I then had to adjust the character’s animation blueprint, and set up montages that can be played on user input in the prototype.

 

 Adventurer Blueprints