Email: | LinkedIn: Liam Mitchell

Dungeon Slash

I created Dungeon Slasher in Unreal Engine primarily using C++ and a small amount of Unreal visual scripting language blueprint. I love
melee combat in video games, so I attempted to create my own!

The combat is methodical, where the player must time their blocks to the enemy attacks, as blocks cannot be held. Attacking and blocking
consume stamina, but attacking costs much more, so the player is punished for spamming their attacks. This encourages a back-and-forth
between attacking and blocking.

The enemies have basic AI, which allows them to patrol and chase the player when they enter their cone of vision. When within range, the
enemy will begin their attack windup, and once they have reached the attack of the animation, a line trace will be drawn forward.
If the line trace hits the player, the enemy class casts to the player class to determine whether they are blocking, and then the appropriate
functions are called. The code is shown below. Player attacking works similarly.

Check out the GitHub Repository below if you’re interested! To keep on track during this project, I used Jira to prioritise tasks, a Gantt
chart to have a complete development timeline and GitHub to have source control.

To view the Dungeon Slash GitHub repository CLICK HERE

Wwise Unreal Switch Footstep

I am interested in audio and music, so I learnt the fundamentals of middleware Wwise and integrated it into Unreal Engine.

In this project, I have implemented dynamic footsteps. With each step the player takes, a line trace is drawn directly downwards from the
character model's foot to the ground. Depending on what physics material the line trace hits a different sound will be played. Sound
attenuation and positioning have been applied to a wood burner so that the player can tell what direction the sound is coming from
(if they are wearing headphones) and once they are close enough the sound will envelop them. RTPCs (Real-Time Parameter Controls)
are utilized to play, increase, and decrease the volume of a heartbeat sound depending on the player’s health. Once the player’s health
drops below a threshold the sound will play quietly but will increase as the player’s health falls and decreases if it rises until it stops
playing altogether.

To view the Unreal Wwise Project GitHub repository CLICK HERE

Hardest Route

Hardest Route was created by a multi-disciplinary team for the 2023 Global Game Jam.

I worked collaboratively with another programmer, two asset artists and a concept artist. We started by brainstorming ideas,
settled on a slight twist to the given theme “root”, and decided to go with “route”. We wanted the game to stand out and be different,
and I believe we accomplished this with our unusual game objective of taking as much damage as possible. The player takes on the role
of a masochist who earns points when they take damage. Therefore, it is their objective to take as much damage as possible before the
timer runs out. Enemies become exhausted from attacking after a while so their stamina acts as health. To reach the highest scores,
the player must find the best route which contains the most enemies!

Our Game was featured first in the Norwich University of the Arts Global Game Jam showreel!

To view the Hardest Route download page CLICK HERE

Raycasting in JavaScript with P5

Being a fan of early “3D” shooters such as Doom and Blood, I thought I would attempt to create a raycasting engine for one of my university
projects in JavaScript using the P5 library. I mainly studied raycasting by reading the Wolfenstein 3D Black Book and purchasing a course on This project was exciting to work on and allowed me to brush up on basic mathematics, as raycasting engines require trigonometry
when calculating the direction of each ray.

To view the Raycasting in JavaScript with P5 GitHub repository CLICK HERE