top of page

Third Person Melee Action Template

A Third person Melee Action template, originally part of the in progress game Katharsi on Steam, cut due to scope reasons.

ROLE

Technical Designer

GENRE: Action.
TEAM SIZE: SOLO (Except for enemy implementation)
PROJECT DURATION: ~10 weeks
ENGINE: Unreal Engine 5
PLATFORM: Unreleased / In Progress

My Role And Responsibilities.

Originally this system was part of the in progress game Katharsi, but we decided to cut combat due to scope limitations. A lot of the systems were reworked to fit the new scope better. Check out the Katharsi page to see how the systems were implemented in the final version.  I decided to take my work and copy it to a separate project as I found the quality of the work done was too good to waste. The core pillars I decided on for combat were:
​
Limited scope:
Combat should be simplistic but fun, I aimed for 1 attack button with a combo length of 3/4 and one defensive option, the roll.  The aim for enemies was also limited to 1 behavior. an enemy that would chase and attack you at melee range.
​
Ease of Use:

The challenge of the combat should not come from precise controls and mastering the character, such as in games like Dark Souls, This is why I took inspiration from games like God of War 2018 and The Witcher 3. These games provide the player with a lot of assists such as automatic camera rotation, automatic character rotation, or character lerping (the character moves towards the nearest enemy on it's own). Large I-frame duration during dodge, extended weapon hitboxes, etc. This makes the player feel more powerful and allows them to focus on the core of attacking and dodging.

​

Satisfying:
Because of the combats relative simplicity it was important to add elements such as VFX, Camera Shake and Hit-stop to make the combat feel satisfying to use.

​

Based on these core goals I tackled the development timeline by:

Researching > Developing > Documenting.

Based on the research conducted and findings during the developing stage, I ended up implementing the following:

  1. Designed and implemented a third person character and controls.

  2. Integrated custom camera collision and behaviour.

  3. Built third person combat system.

  4. Set up motion matching system for third person character.

  5. Implemented VFX, Camera Shake and hit-stop.

  6. Designed and scripted UI.

Designing and implementing a third person character

  • Implemented character movement and strafing.

    • Character can move with and without control rotation depending on whether the automatic targeting is triggered or an aiming input is pressed.

​

​

​

​

​

​

​

​

​

​

  • Implemented an auto jump and manual jump.

    • Either can be toggled through a boolean, the auto jump traces for ledges and jumps if the player has reached a minimum velocity.

​​

​

​

  • ​

​

  • ​

​

​

​

​

  • Implemented player dodge.

    • Omnidirectional roll that is triggered by a single button press. Has I-frame functionality.

​

​

​

​

​

​

​

​

​

​

​​

  • Dynamic rotation rates.

    • rotation rate changes depending on player actions both for better visuals as well as gameplay. For example: when rolling the rotation rate is instant, and when walking the rotation rate is slow. â€‹â€‹

  • Implemented third person action controls.

Integrated custom camera collision and behaviour

  • implemented custom camera collision.

    • Allows for smoother collision events by lerping towards the nearest "safe" position, instead of instantly snapping towards it.

​

​

​

​

​

​

​

​

​

​

  • implemented automatic enemy targeting.

    • Traces where the player is looking for enemies in range, will interpolate the camera control rotation towards the nearest enemy while the player is moving.

​

​

​

​

​

​

​

​

​

​

  • implemented aiming system

    • Used in Katharsi to redirect light or aim the companion shot, in this case just allows the player to look around over the shoulder with decreased camera deadzone, think Witcher 3 Witcher Sense.

​

​

​

​

​

​

​

​

​

  • ​implemented camera dead-zone and camera zooming on exceeding dead-zone.

    • Implemented a camera dead-zone to prevent the camera from getting too close to the ground or camera. When exceeding this dead-zone but the input is still held, zoom in or out a bit to make the stop less harsh.

​

​

​

​

​

​

​

​

​

​

Built Third Person Combat System

  • implemented health and damage system.

    • Utilizing a health component for both player and enemies, Damage system utilizes an interface and is based on overlap of weapon hitboxes during active attack animation frames.

​

  • implemented Anim Notify System for all player actions. including the possibility for animation cancelling. 

    • Uses an animation notify system for every player action that utilizes an animation montage, these notifies enable or disable actions for their duration to prevent animation cancelling, or allow for intentional animation cancelling. It also provides I-frames and notifies active attack animation frames for hitboxes.

​

​

​

​

​

​

​

​

​

​

​

  • implemented attack combo system.

    • Simple combo system utilizing chooser table, depending on attack count selects attack animation and damage.

​

​​

​

​

​

​

​

​

​

​

​

​​

​

​

  • Implemented input buffer system.

    • Whenever an action is input but is prevented by the anim notify system, an input buffer is called that will perform the action again the first frame it is able again, unless too much time has passed

​

​

​

​

​

​

​

​

​

​

​

  • implemented automatic player rotation towards nearest attack target.

    • To further assist the player during combat an additional trace for enemies is performed every time the player attacks, which checks for the closest enemy in range and then rotates the player character to face that enemy.

​

​

​

​

​

​

​

​

​

​

​

  • Designed melee enemy type (implemented into the project by a programmer on the Katharsi team).

    • Designed the enemy type that chases and attacks the player at melee range, bulk of the implementation was done by one of our programmers, but I made some tweaks such as adding the animations, adding custom animation slow for increased attack readability and tweaks to movement and health.

AnimMontageStates.png
AttackCHT.png

Set up Motion Matching system

  • Set up Motion Matching system using Anim Sample Pack animations.

    • Simplified version of the one provided in the UE Anim Sample Pack, utilizing 4 Pose Search Databases and one chooser table. All locomotion animations use this system.

CHTImg.png

Implemented VFX, Camera Shake and
Hit-Stop

  • Created the weapon trail.

  • Made and set up camera shake per attack.

    • Different camera movement per attack, adding an extra sense of directionality to each attack.

​

​

​

​

​

​

​

​

​

​

​

  • Created and set up camera shake on player and enemy hit. 

    • Improves the hit feel.

  • Set up game freeze on player hit. 

    • Highlights the importance of the hit, as the player doesn't have a lot of health.

  • Set up hit stop on attack hit.

    • Improves the feel of stronger attacks, simulating the weapon "digging" into an enemy.

​

​

​

​

​

​

​

​

​

​

 

Designed and scripted UI

  • Designed player HUD.

    • Added player healthbar and reticle for aiming.

  • Designed Enemy Healthbar.

    • Appears upon taking damage and disappears after some time to avoid screen clutter. similar set-up to player healthbar.

​

​

​

​

​

​

​

​

​

​

  • Animated player hit effect.

    • Animated red damage vignette to improve clarity of taking damage.

  • Animated player healthbar effects.

    • When the player takes damage the healthbar shakes, drawing some attention which results in better communication to the player as well as some nice additional "game juice".

​

​

​

​

​

​

​

​

​

​

bottom of page