Providence
Dynasty Studios
Introduction
I've worked on this project from 2022 - 2025. It's a sci-fi extraction third person shooter with roguelike elements and it was made using Unreal Engine 5. My main responsibilities were animations, CCC and collision but I've worked with a lot of different things in this project.
Showcase
Here I'll show some videos showcasing some features/systems I've implemented.
Locomotion: First of I'm showcasing some player movement I've implemented. I implemented the functionality and animations for:
Sprinting, jumping, jogging, crouching, dashing, crouch sliding.
​
You can shoot and melee while jogging which affects your animation and speed. If you shoot or melee while jogging your character will be rotated to face where the camera is looking. ADSing or hipfiring also changes the locomotion animations.
​
When you sprint the characters rotation always follows the direction you are moving, shooting or melee cancels sprint.
​
You can dash horizontally but in some cases like when we jump from one of the jumpshrooms shown in the video we are allowed to dash in any direction like straight up or down for example.
​
Crouch slide allows you to hip fire. If you jump during the slide it cancels. Crouch slide is performed by crouching while sprinting.
​
Crouching makes you move slower but can be useful for hiding behind cover during PvP. It shrinks your collider.
​
Jumping while moving gives the player a initial velocity to make sure we keep the momentum. If you jump while idle you get more precise jumps with less initial velocity, there is a small window at the start of a idle jump where if you move you get the same initial velocity as a moving jump. There is also coyote time that lets you jump a few milliseconds after falling of a ledge.
​

Shards: I worked on a rogue like system for the game that we called the shard system. Your armor and weapons had slots that you could equip shards in. We had passive shards and ability shards, the passive shards were stat increases and the ability shards where abilities that were triggered from the weapon when you pressed "Q".
​
Each armor piece also had a "color bonus" which was a passive ability that was triggered when you had met the requirements for that armor piece. For example a helmet could require a total of 1 green shard and 1 blue shard in order to activate its bonus so you needed to have those equipped on any gear. The color bonuses were things like dashing through enemies pushes them all away, double jump, immune to certain attacks, shooting has a chance to apply a DoT to enemies etc.
​
Here I'm showcasing some ability shards:
​
Radiation ball: This was a slow moving projectile that damaged anything around it and exploded if it collided with anything or expired. The main damage came from the explosion at the end.
​

Laser ripples: This ability shot out a projectiles that when collided triggered expanding damaging circles in a interval.
​

Sticky projectile: This shot a projectile that if shot at a target would stick to that target and continuously deal damage around it.
​

The forge: I also implemented a shop where you could buy shards for your weapons.
​

Contributions
Here are some of my contributions during this project.​
​
-
Animations: I've responsible for everything animation related so I've set up the pipeline from scratch and done all the implementations for all characters, vehicles and creatures. Both skeleton animations and VAT. This included a lot of different IK implementation both for feet, hands, head etc.
I templated the animation blueprint for the creatures because they all had the same base logic for idle, moving, dying, attacks. And then used a animlayer to assign which animation should be used for what. I also had a optional layer for if they had unique logic so you could add logic to the animgraph of the base ABP template.
The player character had its own separate animation blueprint because it was a lot more complex and didn't share much logic with the creatures. The player also used animlayers for different weapons so we had different animations depending on what you were holding.
For the player I added IK to attach the hands to the weapon, I used IK for keeping the feet on platforms so they weren't hovering in the air when you were standing next to a edge. I also used IK for planting the feet on the ground aswell as other minor polish.
​​
-
Camera: I originally set up the players camera manager. To allow design to set up a lot of different cameras for different cases I decided to make the camera manger pick cameras from a stack by using gameplay tags. Because we were using Unreal engines gameplay ability system which made the game heavily use gameplay tags for most feature I thought it would make sense to do the same for the camera system.
A camera was set up through a data asset which included a bunch of different parameters such as FOV, distance, offsets, post process effects etc. In these data assets you could assign which gameplay tags will push this camera on the stack and which will remove it from the stack. The camera manager would then use the camera that's at the top of the stack.
​​
-
Movement: I've set up all the characters movement, how they get over the terrain, how they jog, how they jump, how they sprint, how they turn etc.
This changed a few times. Originally we were aiming for a more single player heavy feel to the movement like Horizon zero dawn. Later on in the project we decided that it didn't fit well with online PvP so we changed it to be more snappy and tried to make it more similar to Fortnite's style of movement. We also had a jetpack which the player could use to dash with.
​
-
Shard UI: I created the UI for equipping, crafting and displaying your shards, shard slots and equipment. I also set up the UI for the "Forge" which was a shop where you could buy shards.
​
-
Collision: I set up the collision pipeline, so how we set up collision presets in our project and what to apply them to.
​
-
Gameplay abilities: I've implemented several abilities such as abilities you get from items and basic abilities like crouchslide, jump, sprint, melee.
Some other abilities I implemented were most of the "slot bonuses" and ability shards for weapon that I mentioned in the Shard system point.
​
-
Shard system: I set up the shard system we have in our game.
Shards were a rouge like element that we decided to add which were a stat bonus or a new ability. For example it could give you more dash distance, more health, more damage etc. On our weapons you can equip a ability shard which gave you a ability when you pressed Q. There was also a thing called "slot bonus" which was a bonus on your equipment that would be unlocked if you equipped enough shards of certain colors. This bonus was passive abilities such as double jump, piercing shots, immune to tornados etc.
​
-
Modular body system: This is what lets you swap out equipment and they update on the character itself. I pair programmed this with another programmer.
It was used by both creatures and players. You could set up a "body definition" through a data asset which was basically saying which body parts the character has and which base body parts should be there originally. We then had equipment tell the modular body system which mesh it wanted to equip on which slot.
​
-
Tools and commands for debugging: I've set up some tools that let's you easily spawn creatures and I've created a lot of commands for TPing, spawning stuff, marking stuff on the compass, equipping armor etc. Also made a maya script for updating bulk updating a joints rotation for all selected animations.
-
Body types: I created support for selecting different body types, both UI and in game. Picking a body type made all the animations and meshes reflect what body type you picked.