Dodge Paper Scissors – First Update

After being laid off from Ubisoft Stockholm, I began developing an action brawler game prototype in similar veins to God Hand and Sifu in my free time.


PROJECT:

Dodge Paper Scissors

Within a third person action brawler setup, my objective is to establish a combat rhythm where enemies set the tempo with their attacks, and the player survives the beat by initiating the appropriate dodge for each attack.

Most of the gameplay systems are built using Actor Components, Data Assets, and Data Tables in Unreal Engine 5 Blueprints.

Further, I’m using:

  • State Trees for enemies behaviours.
  • GAS for certain shared gameplay actions.
  • CAS for paired animations and camera.
  • Motion Warping for distance translation and target orientation.
  • Gameplay Camera Plugin for handling different camera states.

The architecture is modular, allowing the same functionality to be easily reused across multiple characters and entities.

Currently, I have my own personal Movement Manager and a Camera Manager. I plan to add the Mover Plugin next to explore and see if it can improve my workflow.


Animation Support

Ardian Nicolaus Waelan, Senior Animator at Arrowhead Games Studios, created all of the prototype animations used in this project. He was also very supportive of the game’s design direction throughout development.

His work featured in this post includes:

  • Combat Locomotion Set.
  • Player Attack Combo Animations.
    • Attack VFX Animations.
  • Enemy Attack Combo Animations
    • Attack VFX Animations.
  • Directional Blocking Set.
  • Directional Hit Reactions.
    • With Extra Knockdown & Knockback Reactions.
  • Directional Dash Animations.
  • Finisher Animations (Player & Target).
  • Upper Body Evade Animations.
  • Lower Body Evade Animations.

2 Months Progress UpdateMaking the game functional.

I started by implementing Evade Actions:

  • Upper Body Evade
  • Lower Body Evade

I also implemented an Input Queue System that can connect to any action the player may perform in the future, improving overall input responsiveness.


Added a Basic Enemy to first establish a Lock-On System, and subsequently, a Lock-On camera was necessary to showcase the action space better.


I then implemented a physics based Directional Dash System:

This move is intended for situations where Evading is not the best option.

I have interesting ideas on where else I can take this feature in the future… 😏


Added both Enemy and Player Health and Damage System to enable interactions between each other.

In case of failure to dodge at the right time, I also made a Hurt Reaction System that reacts depending on the attacks performed.

And Death to enable a Game Over state.


Couple of things I did for fun 🤭

I created a Block and Parry System just for fun:

It doesn’t work very well for the player with my current gameplay intentions, so I’ll likely transfer this system to the enemy instead.

The parry will be converted to a repel attack style feature.


While the game initially started as an experiment with dodging systems, I’ve temporarily enabled Attacks and the Combo System I built for the enemy to see if they improve the gameplay.

They seem to feed into my urge to mash buttons while frequently queuing in dodge actions.


Added a Stagger based Finisher System with a Finisher Camera setup.

I intend to evolve the feature to be more interactive in the future and not just a cutscene.


Final Output

Immediate Next Objectives:

So far, my gameplay systems are functional, but they still don’t quite come together well. I’m planning to run a polish phase to improve:

  • Animation Poses:
    • Improve silhouette according to the camera.
  • Animation Timings:
    • Need to create a Frame Data chart to establish Start Up frames and combat rhythm.
    • Hitboxes can use slight refinement.
  • Hit Feedback:
    • Camera Shake
    • Controller Rumble
    • Hit Stun System
    • Time Dilation System (Slow Mo)
    • VFX:
      • HitVFX.
      • DamagedVFX.
    • SFX:
      • Hit SFX.
      • DamagedSFX.
      • AttackInitVO.
      • EnemyHitVO.
  • Enemy Behaviours:
    • Add and enable dodge system.
    • Add and enable a blocking & parry system.
    • Make the enemy faster and more aggressive.
  • Refine existing gameplay system logic.

My main goal is to continue improving myself using Unreal Engine 5, and that comes first, despite having other goals for this project 💪

Leave a comment