top of page

Poise System

For my action game Mirror of Shadows, I wanted to have a stagger system where it's hard to interrupt an attack, but not impossible and it going both ways for the player and the enemies. I modeled the poise system to be similar to Genshin Impact's poise system, with modification. The stagger system however was designed more in mind with games like Devil May Cry.​​

The baseline system is that enemies and players have a modifier of 1.0x for receiving poise damage from attacks. The poise damage is stored in a data asset via a struct so that different hit types in an animation can do differing poise damage amounts.

Some attacks will have a poise modifier that will alter the amount taken, usually less than 1.0x. Light attacks will have minimal modifier deviation from 1.0x while heavy attacks may have modifiers in the 0.6x to even 0.1x. This would get multiplied with any additional poise modifiers granted via gameplay effects meaning enough stacked can make it extremely hard to stagger and interrupt.

The base system uses Gameplay Ability System with effects driving the application.

Poise damage is dealt via an instant gameplay effect and poise damage meta attribute to hold onto the damage and increment the poise value. However, this is where the complexity begins. There's a separate gameplay effect that both player and enemy has called Poise Drain which will drain the poise gauge with the post effect execute clamping it to prevent it going too far down. On top of poise damage, a poise drain freeze effect is applied (and reapplied) that prevents the poise bar from draining for 3 seconds to reward pressure but also allow some breathing room for the player to relent and focus on defense.

When their current poise exceeds their max poise, they would receive the poise break effect which will make the staggering hit and upcoming hits for 3 seconds interrupt whatever action the poise broken was doing. The stagger logic is handled by an ability which will affect stuff like knockback, launches, and being hit in the air. This is a modification from Genshin's style as they do not let the target stay in the air too long

 

Thanks to the gameplay ability system, I am able to add an additional effect when the poise break effect ends that will reset the poise of the target which will prevent further interruption until their poise meter fills up.

4_PoiseDrainEffect_edited.jpg
7_PoiseFreeze_edited_edited.jpg
5_PoiseBreak_edited.jpg
6_PoiseReset_edited.jpg
Blueprint code for applying poise damage
bottom of page