top of page
HighresScreenshot00030.png
Remanence Logo.png

TRAILER

the elevator pitch

Remanence is first-person action game with a focus on soulsbourne combat. Live, die, and repeat until you break the cycle.

what i did as combat designer

  • Designed new combat systems

  • Tuned combat actions across 40+ montages

  • Diversified enemies into distinct 3 variations

  • Drove gameplay HUD UI rework

EngineUnreal 5.2   Team Size | 21   Dev Time | 4 Months   TypeAcademic

JUMP TO:

Combat

Combat Direction: "Don't Fear The Reaper"

I was brought on to help consolidate and enhance the combat in Remanence towards release. I consolidated the combat direction of ​Remanence to tap into the creative concept of "Don't Fear The Reaper" to reinforce a combat system that appealed to the team's established audience goal of soulsborne players and existing design concepts.

  • First person melee combat with an emphasis on putting the player in the pilot seat at all times. 

  • Enemies are lethal; you are just as lethal.

  • Players must overcome enemies with observation, trial, and error. Learn to be the reaper.​​

First Person Animation Driven Combat

Remanence was designed and reinforced around first person animation driven combat for three reasons:

1) it stands out in a shooter-dominated perspective

2) Served as a unique perspective on the soulsborne genre, which traditionally has third person animation driven combat. An exciting design challenge!

3) Animation driven combat systems are also just my jam! (though that's just me)

​​​To execute on animation driven combat I designed a stagger and poise system. I then managed all of our attacks and abilities through a combination of animation montages + data assets in Unreal Engine 5.

Stagger

I designed the stagger system to make defensive actions have a tangible offensive benefit. Players would build stagger on an enemy over combat by performing successfully attacks, abilities, and defensive actions.
 

The stagger system was an example of a "stack and snap" mechanic in combat. If the player successfully performed multiple small positive actions in a row and filled the stagger meter, the player would be rewarded with a powerful crit attack with unique visuals + effects. 

Poise

Poise was a mechanic originally found in soulsborne games but was a system I adapted to Remanence to solve a core issue: We want to give enemies to have a sense of weight/scale.

Poise is a stat that determines whether or not an attack inflicts hitstun on an enemy. In Remanence, I wanted enemies to be impacted by hitstun only in key conditions to sell the fantasy of enemy weight/scale. For instance, a larger enemy is less likely to be impacted by hitstun and a smaller enemy. 

Unreal Montages + Data Assets

With animations being core to animation driven combat, I worked inside of Unreal Engine's animation montages to tweak everything including timings, hitboxes, VFX/SFX hookup and timing via montage events developed by our gameplay programmers.

Data assets were used to set combat/action values such as damage, poise, stagger buildup, and movement. This enabled ease of portability from spreadsheet to in-engine gameplay values. We used this system across the hero, enemies, and bosses to make sure to get everything right - down to the exact frame.

Combat Metrics

On the project I developed easy to use combat metrics to help design collaborate with different departments as well as to standardize our attacks/actions. There was a "training room" inside of Unreal so we could see our metrics in action. Using existing enemy behaviors and animations our nitty-gritty metrics showcased the following:

  • Hitboxes - The collider area in which an attack can hit an enemy, separated from the actual model/rig.

  • Movement - How much the character is displaced during the attack/action.

  • ​Attack Windup - How long the attack/action's tell/telegraph is.

  • Attack Active - How long the attack/action's ability actually executes for.

  • Attack Recovery - How long the attack/action "cools down" for.

  • Knockback - How much displacement is applied onto what is hit.
     

Once established, I abstracted the data into ranges such as "short" and "long" to give the team a shared, easy-to-digest terminology. Through this, we then made profiles for our hero and different types of enemies to help visualize their differences and gave jumping off points when timing out their attacks. For instance:
 

  • Players have faster windups on average to have a responsive game feel.

  • Enemies have much more movement and wider hitboxes in their attacks to counter-balance against the hero's nimble movement speed, preventing enemies from just being sitting ducks. 

  • Enemy attacks tend to have much higher knockback than the player's to give a feeling of kinetic energy when hit - a key feel element when the player can only see from first-person. 

Enemy Design

Diversifying Enemies: Design Considerations

I was brought on to help diversify enemies long after assets were made. Originally the game had 3 enemy types, but the lack of variety and difficulty in properly scaling posed a unique problem. Our development schedule didn't have any room or space for any major new additions for enemy assets:

1) There was a resounding trend that players felt the enemies all fought the same.

2) Enemies were incredibly stat-padded leading to sluggish combat experiences. 

077f6d4d805c345fcc69998362b824e8.jpg

Enemy Direction: Scale

During my diversification of the enemy designs, I had a core concept in mind: Scale

For scale, a big missing element in enemy design prior to the rework was the presence of enemy scaling. As you progressed in the game, enemies didn't really get more challenging. The difficulty curve was largely the same. The enemies were assigned inflated stats across the board So to tackle these issues I did the following:

  • Standardize enemy values across the board based on interaction vs arbitrary damage numbers. Think 1 hit vs 1,000,000 dmg. This opened up a much more tangible format of communicating damage and combat interactions with the design team.
     

  • Diversify enemies into different functionalities. At the time, all enemies did everything any other enemies could do, besides unique actions. The solution was to break down these movelists and distribute them across variations of an enemy unit. Enemy types were established through this. This presented a more concrete shared design language around how we discuss enemies and their functionality.

image.png

How AI Was Implemented

Our team used Unreal's behavior tree tool to create the enemy AI. The AI strike team had an in-engine, on-screen design approach and would directly prototype a first pass of the enemies' behavior trees. I'd monitor and adjust behavioral values inside the tree + blueprints.

image.png

behavior tree made by Anthon to control AI

Sample Enemy: The Perfected

The Perfected in the final enemy/boss players encounter in Remanence. A powerful, imposing duelist - the Perfected is designed to be the ultimate skill test in Remanence, with callback moves to every enemy and boss you've encountered before.​ The Perfected is the apex threat in the game and he is the last thing standing in your way...

tip: this video has audio!

Movelist Highlight

Death Lancer

The Perfected does an extended windup before blinking across the arena in a hyper-linear unblockable attack.
 

  • A "highlight" attack, can be dodged by simply moving to the side. 

  • Deals 95% of player's HP, it's meant to serve as a hyper-unique "final boss" level attack.

  • Will perform if the player has made significant distance from the boss (such as backdashing). Catches players being too reliant on parrying/guarding.

Cleaver String

The Perfected does an attack string containing 1-4 wide-arc attacks that advance him towards the player.
 

  • A "bread and butter" attack serving as a call back to an earlier boss' lengthy attack string.

  • Has average windup on first swing but faster follow-ups, punishing reckless counter-attacks.

  • Performs at close range at random or as an "opening" attack.

Crimson Dive

The Perfected jumps into the air with a lengthy windup before diving down with an unblockable shockwave attack
 

  • A iconic callback attack to a boss' key unique attack.

  • Can be dodged by moving out of the AOE radius or jumping.

  • Will perform if the player has made moderate distance from the boss or as an "opening" attack. Pushes players to remain mobile mid-fight. 

Crimson Stake

After a lengthy windup, the Perfected stabs into the floor, causing an unblockable shockwave. Can instantly kill if hit by both the floor stab itself and the shockwave.
 

  • A unique action only for the final boss. The only "one shot" attack in the game.

  • The attack is unstoppable during the windup unless hit by an ability. Encourages smart mana management to counter this attack to continue offense.

  • Can be dodged by moving out of the AOE radius or jumping. Pushes players to be mobile.

  • Will perform if the player is initiating a counter attack or after being hit. Punishes reckless offense.

  • Can perform a second shockwave at random by pulling out the Crimson Stake. The Perfected will begin doing so around 50% HP to add additional tension mid-fight.

Energy Blast

The Perfected does a quick windup before swinging an unblockable energy projectile from their blade.
 

  • A iconic callback attack to a boss' key unique attack.

  • Can be dodged, parried, or jumped.

  • Will perform if the player has made moderate to significant distance from the boss. Pushes players to remain mobile and reactive mid-fight. 

HUD Rework

HUD Rework

A UI task I drove forward was reworking our gameplay HUD to help make combat resources always visible and clear to the player. This meant a couple of core things:

  • Keeping key HUD elements near the crosshair, where players are intensely looking during key HUD-essential gameplay moments

  • Clear color distinction across HUD elements

  • Easy-to-parse shapes across HUD elements

progression of HUD from before I joined all the way to shipping

HUD Prototyping

I initially did a rough mockup in Miro, mostly to communicate to the team my thoughts and intent behind the HUD changes. Given the team's in-engine, on-screen practices, our UI programmer to got a testable version of the UI hooked up alongside art assets from our UI artists.

I also collaborated with our UI programmer + artist to add some basic quality-of-life features like health bar "bleed" to help sell the feel of the UI itself.

3de267b00a07b736e8e990abf5d7927d.png
be160139ac5b814c65c0ea955a3238ed.png
bottom of page