Technical Designer
Sept 2024 - July 2025
25 people
Unreal Engine 5.5, Jira, Perforce
Umbra Mortis is an Online, PvE Shooter with Co-op aspects.
You play as members of a secret organization, Umbra Mortis. You and up to two of your friends will go through the city of Venice which is overrun by undead carnival-goers. Slowly progressing through the city and pushing back against the undead you will unlock new area’s and abilities to strengthen yourselves.
On this project I was a technical designer in charge of systems such as: Enemies, Objective/Quest and Combat Encounters. While also helping with: Gunplay, Debugging, Levels and being the lead in everything replication related for the designers. So, I carried a lot of weight with this project. I worked in close proximity with animators, level design, programmers and the team in charge of the main character. While also leading the Enemy Striketeam.
I started out with prototyping Online Multiplayer trying to prove it is possible for our team. Really trying to understand the intricacies of replication and the possible problems it would cause. After this our team decided to start making an “Online PVE Co-op Shooter” and I started to create the scope of our enemies and designing them on paper. Since the enemies were in a playable state early on I started helping out in other places. Eventually taking charge of the Quest/Progression system in the game while simultaneously designing the Combat Encounters for them.
About my work
Shooting: Since our game was supposed to be a shooter I started with creating a Gun it’s VFX and Animations that would replicate properly.
Enemies: The next step for me was to create simple enemies that I could kill and a spawner to well spawn them.
Wave System: I also with the help of another designer added a Wave System, At this point we were more aiming for a Call of Duty: Zombies type Round Based Survival.
Online Multiplayer Prototypes
Replication Take Aways:
At this point it was clear that having something be replicated was not an issue. Making the right thing replicate at the right times, that was the real problem.
Making the HUD work for both client and host and update at the right times took probably the most time of all. This is where we learned to use RepNotify nodes and how they are required
While having things such as Enemy Spawners be replicated was a perfect way to learn that some things only need to exist on the server not the client.
Making VFX show up and animations work properly was a nice visual way to learn how Multicasting works and what the main differences are between “Server” and “Multicast”
As a quick Server example; Client fires weapon —> Calls Server FireWeaponEvent —> Server validates information and fires the bullet.
As a quick Multicast example; Server fires bullet —> Multicast EventSpawnFireEffects.
Clients ask the server to commit events and the server sends multicasts out to all clients to show certain things happened like this player shot a bullet —> spawn a sound and vfx effect there
This page is still a work in progress
The echolocation mechanic allows players to "see" via sound. Any audible event, like humming electronics, doors, thrown objects, or footsteps, briefly reveals the environment around it. This creates a unique tension: when everything falls silent, the player is plunged into darkness, heightening the fear factor. Some of the most memorable moments come when the enemy quietly stops nearby, forcing the player to freeze, blind and unsure.
The enemy acts as a constant, looming presence, its distant footsteps serve as a reminder of the growing threat. While it's dangerous, the player has multiple tools to counter its behaviour, making it’s encounters manageable, but tense.
The Enemies
This was my first time designing a large-scale enemy and collaborating with a team of this size, and it taught me a lot about cross-discipline communication and design alignment. Initially, the level designer and I worked independently, which led to the enemy having features like a backstage mode and a menace gauge to build tension over time—systems that didn’t quite fit the short, fast-paced level design.
Through testing, we saw these mechanics weren’t being used to their full potential. We revisited the design, streamlining the AI and adjusting the level to better support the enemy’s behavior. This process, done collaboratively in Miro, led to a more cohesive and engaging player experience.
With only 8 weeks for development, animations came in late. The enemy had to be concepted, modeled, rigged, and animated before I could implement the full behavior. Seeing the final animations integrated into the AI was a highlight for me and the team—it brought the enemy to life. That moment confirmed for me that creating AI-driven experiences is what I want to keep doing.
Summary
This video shows the moment the enemy's first animation was implemented. Watching it come to life, walking around and reacting in the world, was exhilarating. It solidified my passion for designing AI-driven enemies that create meaningful, immersive experiences.
Sounds of Shadows was a journey of constant iteration, from fast-paced shooter roots to a slow, tension-driven stealth horror experience. Across eight weeks, I adapted enemy design to match evolving mechanics, narrative themes, and player feedback. Each pivot taught me something new about AI behaviour, player psychology, and the importance of gameplay cohesion. Seeing the final enemy come to life, solidified my passion for crafting AI-driven encounters that leave a lasting impression. This project didn’t just shape a game; it shaped the kind of designer I want to become.
(Can be read in more detail below)
Take-Aways