The Quarrior

Programmer // Game Developer

Game Development

Unity - Spring 2025

Team

3D Animator // Environmental Artist - Alexis Lee

Cinematic trailer coming spring 2026.

Check back soon for updates.

The Quarrior is a short boss battle game where a miner must defeat a cave dwelling rock titan to free their town's mine.

Project Goals

Our team worked to create a complex enemy AI and a playable character with multiple attack mechanics. My role as the sole programmer allowed me to explore enemy state machines and implement a versatile weapon swap feature which expanded my Unity programming skills while my teammate created all of the 3D characters.

Player Mechanics

To give the player multiple attack and defence strategies, we created a standing and rolling dodge ability, a melee pickaxe weapon and a timed dynamite trap weapon. The player can utilize these tools to plan how they want to attack the boss.

“Providing the player with multiple strategies for attacking adds variety to the gameplay and allows for different types of play styles.”

Player Weapon Swap

To create the weapon swap mechanic, I used scriptable objects to store information for each weapon. These scriptable objects contain data such as the weapon name, ID number, model, and more, including an associated action to be used with that weapon.

Each action is another scriptable object containing the action ID number that must match the weapon ID, and the animation associated with the action. This way, each weapon has its own unique action which determines what the player does when handling that weapon (swing the pickaxe, place the dynamite).

screenshot of weapon scriptable object

“Using scriptable objects makes it easy to expand the project and add more weapons and actions in the future.”

Enemy Mechanics

To make an engaging enemy AI, the boss was given a variety of tools to use against the player including close range stomping and swatting attacks, a long range rock spitting attack, and the ability to pursue the player when they get too far away.

“We designed the boss to have both close and long range attacks to counter different play styles.”

Enemy Attacks

The enemy uses a state machine to determine how the AI will act based on different conditions. Each state is a scriptable object that contains data on how the enemy will act in that state (idle, pursue, combat stance).

The attack actions are also scriptable objects which holds data like the animation, the action recovery timer, and the maximum engagement distance. The combat stance state checks if the current conditions to use an attack are met, and adds it to a list of eligible attacks. Then, the attack state is called, and an attack from that list is selected and used.

flow chart of enemy statemachine screenshot of attack action scriptable object

Key Learnings

Enemy AI, State Machines, Scriptable Objects

Working on the Quarrior provided an opportunity to learn about scriptable objects, specifically how they can be used to contain reusable pieces of code such as the player weapons and the enemy attacks. I also have a better understanding of creating complex enemy AI and the flow of state machines.