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
Animation blending to make moving attacks work
Making seperate behaviours to counter backwards walking
Creating enemy behaviour that would force the player to switch up
The Enemies
Combat
Create encounters and their arena’s to find the sweet spot in our combat loop.
Create the quests and progression of the game
Having created the encounters, their arena’s and the quests that take you around the map I learned a lot about how all these sections impact eachother.
—
—
Summary
--
Take-Aways