Leah McDermott

Junior Game Programmer


About Me:
I'm Leah McDermott, a final-year student at Abertay University, working towards my BSc(Hons) in Computer Game Applications Development. I'm interested in audio programming, and currently working on an honours project which focuses on creating an adaptive audio system using real-time heart-rate and respiratory data!
Some of my hobbies include playing TTRPG's such as LANCER and D&D 5e, as well as creating digital illustrations (especially character art for these games). Some of my favourite games are psychological horrors, movement shooters, and hero shooters such as ULTRAKILL, Overwatch 2, and Omori.(RPGMaker horror games have a very special place in my heart!)


Skills:
Languages:
- C++, C#, Python, GDScript, GML
Engines:
- Unreal Engine, Unity, Godot, Gamemaker

Projects

University Projects


Game Jams


CMP 407 - Audio Programming

Summary

  • Unreal based project

  • Uses a WWise and Unreal Engine 5

  • Created for University Module

  • Adaptive Audio/Dynamic Music based project

  • Uses Blueprints (Unreal Engine Visual Scripting LanguagE)

Created for a fourth year audio programming module this project focused on creating dynamic audio using WWise as middleware in Unreal Engine 5. This was done through pathing within the interactive audio options within WWise such as RTPCs Randomisers and Post Events, as well as implementing attenuation, dynamic footsteps based on physics material. As well as music that I had created for the project inside of FL Studio 21.

Honours Project - Dead of Night

Summary

  • Unity based project

  • Created for Honours Project

  • Uses a Mix of Python and C#

  • Uses bioharness 3.0 and neurokit 2.0 to collect physiological data

  • Uses Wwise as middleware for the audio.

Created for my fourth year honours Project The goal was to create an adaptive audio system based off of real-time ECG and respiration rate data inside of a horror game styled environment.Update 1:
Unity project has been created, using WWise integration along side Unity's animation manager to play footstep sounds from a WWise randomised container (having randomised pitch and volume). Have also added attenuation sphere for randomised sounds, this plays a sound from a different randomised container when the timer reaches zero, as well as using RTPC's to turn down the volume of the ambient rain and footsteps while you're in the area.
Update 2:
Real-time adaptive audio implementation through python processed CSV using bioharness sensor for secondary attenuation area. Uses RTPC's linked to player ECG and RSP. These parameters are linked to audio range and volume respectively.
You can look at the source through this link here!
Dead of Night - Github

Bubble Babes

Summary

  • Uses Godot Engine

  • Uses GDScript

  • For the Global Game Jam 25

  • Created by Me, Marilyn Briggs, And Zion Aitken

Created for the Global Game Jam 2025, I was responsible for the art inside of the minigames "Bubblegum Pop", and "Shake the Can". I was also responsible for creating the art for the transition screens.
For programming, I was responsible for programming the audio reactive minigames "Bubblegum Pop" and "Speech Bubble". Which required checking the peak of the audio taken in from the microphone to make the minigames function.
Finally, I made minor contributions to creating the UI for the transition screens, as well as tweaking the code inside of the transition screens.
The Global Game Jam submission is available here!
>> Bubble Babes - GGJ
The playable prototype is available here!
>> Bigger Fish To Fry - Itch.io

Bigger Fish To Fry

Summary

Summary

  • Uses Godot Engine

  • Uses GDScript

  • For the GMTK24 Game Jam

  • Made by me and Marilyn Briggs

Created for the GMTK 2024 Game Jam, I was responsible for most large world interactions within the game, as well as being responsible for all of the audio and UI programming.The playable prototype is available here!
>> Bigger Fish To Fry - Itch.io

Cannon Catering

Summary

  • Uses Godot Engine

  • Uses GDScript

  • For the Cafe Dot Birthday Jam

  • Solo Project

Created for the Cafe Dot Birthday Jam, Cannon Catering was a solo project in which I had done all of the UI, Gameplay, and Audio Programming.The playable prototype is available here!
>> Cannon Catering - Itch.io

2 Kidz (In a Trenchcoat)

Summary

  • Uses Godot Engine

  • Uses GDScript

  • DES310, A third year Abertay University Module

  • Team of 8, with two programmers, two designers, 1 producer, and 3 artists

Created for DES310, a third year university project and graded B+, I was responsible for overseeing the core enemy AI, animation states and VFX.Core Enemy AI
The enemies use a state machine to switch between how they should interact with the player, these are all handled through a primary switch statement. The enemy's have cooldowns between their attacks and queuing back up, with their placement helping to telegraph which enemy is next for attacking. This is all done within the queueing state.
The attack state brings them towards the player, attempting to deal damage before walking out of the crowd of enemies until they've reached a certain distance away from the player's, this is part of their cooldown state.
Animation State Machines
Animation states for the player are handled separately as to try and keep the work load smaller for the artists on the team. Each player has an animation state which is called upon whenever an output is called, by using the attack script which checks a string of inputs done by both plays, and depending on if the attacks are part of a combo or not, will sync of differentiate the animation sprites.
VFX System
This was a separate node called within the project which was called whenever an object or enemy took damage. The main function took in parameters for the particle name, particle count, and location. These were then spawned in as a child of the VFX manager node, each having their own timers so that they would delete themselves and save on performance on the project.
The particle Spawner would check a switch statement which looked for the particle name, spawning the correct particle type as well as any other parameters, all of the variables were temporary as to free space performance wise.
The main benefit of this Particle Manager was that it could be expanded on with it's modular implementation.
Other
For the Enemy Manager, I made sure that it was accessible to designers, using an array of vector2's to set the location of the enemies for each zone, and the array size being how many enemy's the designer wanted to spawn into each zone. Furthermore, it allowed the designer to change how many elites would spawn in each zone through an integer at the top of the manager's exported variables.
The final playable demo can be played here!
>> 2Kidz (In A Trenchcoat) - Itch.io

Rising Tensions

Summary

  • Uses Unreal Engine 5.3

  • Uses Blueprint Visual Scripting Language.

  • For AGDS Fresher's Jam 2023

  • 3 person team.

Created for the Abertay Game Development Society's own Fresher's Jam in 2023 We were all responsible for programming, as well as the graphics inside the game. I helped in creating the graphics for the website, as well as creating one section of the core gameplay.The playable prototype is available here!
>> Rising Tensions - Itch.io

Power Upkins

Summary

  • Uses Unreal Engine

  • Uses Blueprint Visual Scripting Language.

  • For AGDS Spooky Jam 2022

  • 5 Person Team

Created for the Abertay Game Development Society's own Halloween gamejam in 2022, . This was a team effort between me and my friends, with my part of the project being focused on the graphics and art seen within the game!The playable prototype is available here!
>> Power Upkins - Itch.io

CV