C++, Unreal Engine 5, Gameplay Ability System (GAS)
Project Soul is a personal project I work on as time permits, where I'm first trying to nail the Souls-like combat and feel with the Gameplay Ability System in a networked environment.
Movement
Walking
Sprinting
Dodge Rolling
Strafing (during lock-on)
With Shield
While sprinting
Animation-Locomotion setup
Combat
Blocking
reducing stamina regen when blocking
Stamina (green) cost (only during combat)
Health (red) cost
Damage reaction + vfx
Light Attack combo
Heavy Attack combo with chargeable attacks
At full charge, a fire explosion vfx is played during animation
AnimMontage setup for various animNotifies, events, etc. (see Figure 2)
Lock-On system
Target switching
Loosing targets if Line of Sight is obstructed for a prolonged duration
Auto targeting attacked enemy (if not locked-on)
Auto target switching when locked-on enemy is killed
Each attack is highly customizable via a WeaponActionSet (see Figure 1)
Different Actions (Base, Attack, Charge Attack, etc) have different properties
Inheritance helps animation data reuse
Death
Controls with gamepad support
Simple UI
Stamina + Health
Camera setup
Camera following while sprinting without controlling camera directly
Object translucency if blocking player avatar
Figure 1: Example of Weapon Action Set for the Short SwordÂ
Figure 2: Example of Heavy Charge Attack AnimMontage with associated AnimNotifies and Events