top of page

KATANA MAN

Start

Game Designer & Programmer

Duration:

3 Months

Role:

Game Designer & Programmer

Tools:

Unreal Engine 5.1

Team Size:

1

Overview: 

"KATANA MAN" is a combat-focused, third-person action game inspired by the new God Of War series.  My objective was to craft a gruesome grounded combat system with a powerful hero that encourages players to engage in close-quarters combat. The biggest challenges were the camera system, cinematic approach, enemies, and melee combat.

My Role & Ownerships

  • Create overall combat standards.

  • Design and implement the combat system from scratch using entirely Unreal Engine 5 Blueprints.

  • Programmed and designed all Enemy AI, including attack patterns and movement behaviors.

  • Design and implement the player character along with his set of skills.

  • Balanced all player and enemy abilities by tweaking damage values, hit-stop, sound cues and aggressivity.

  • Level Design.

  • Programming.

  • Camera and Cinematic Design.

  • Implement UI and Visual Effects.

Design Breakdown

GAMEPLAY LOOPS

GAMEPLAY LOOPS

Let's start off by covering the main gameplay loops I planned for the game, as I wanted to recreate God of War's immersive cinematic gameplay experience I planned two main loops for the game's progression:

image_edited.jpg

KATANA MAN - FIRST LOOP

KATANA MAN - FIRST LOOP
NARRATIVE-1

NARRATIVE-1

00:07
EXPLORATION-1

EXPLORATION-1

00:27
NARRATIVE-2

NARRATIVE-2

00:06
COMBAT-1

COMBAT-1

00:22

The first loop is divided by a starting narrative section that introduces players to their playable character's role in the world. Following this is a short exploration section with a traversal challenge to acquaint players with the movement controller scheme.

Afterward, there is another narrative section that introduces the first threat in a safe space, followed by a final combat scenario featuring the easier type of enemy to help players become familiar with the combat controller scheme.

My goals with this first loop were as follows:

  • Introduce the player to the game's world and playable character in a safe and interactive space.

  • Craft an introductory immersive experience with cinematic transitions between gameplay and narrative beats.

  • Condition players to avoid sneaky/passive gameplay and encourage engagement with enemies in an aggressive combat style using narrative beats.

  • Help players familiarize themselves with the controller scheme in a safe environment.

image_edited.jpg

KATANA MAN - SECOND LOOP

KATANA MAN - SECOND LOOP
EXPLORATION-2

EXPLORATION-2

00:33
COMBAT-2

COMBAT-2

01:15
EXPLORATION-3

EXPLORATION-3

00:18
NARRATIVE-3

NARRATIVE-3

00:11
COMBAT-3

COMBAT-3

01:46

The second loop is designed to prevent monotony throughout the level, breaking away from the first loop.

It begins with an exploration section that reinforces previous verbs (such as "climb") and introduces a new traversal challenge. Following this, the player encounters another combat section that introduces a new enemy archetype. The sequence continues with a new exploration section featuring newly small traversal challenges.

To conclude the level, there is a final narrative section presenting the last enemy archetype in a cinematic way, serving to reinforce the end of the level along with the final combat section.

My goals with this second loop were as follows:

  • Innovate the player's experience by tweaking the pre-established order of gameplay beats.

  • Reinforce the player's newly acquired knowledge.

  • Craft a cinematic presentation to emphasize the latest and difficult challenge of the level.

  • Slightly increase the combat challenge without directly impacting less skilled player's experience.

DESIGNING A POWERFUL HERO

DESIGNING A POWERFUL HERO

How 3D Action Melee Games emphasizes the player fantasy of power through their combat system has been something I've been eager to study in depth since I started my gamedev journey; most of the feedback from my previous work pointed out lacking factors in combat that affected the way player's experienced the game and my intentions, although mostly being inspired by stylish action games like genshin impact my previous work didn't really click at all with how powerful heroes should feel like.

Although many factors determine this such as enemy design, game's progression, animations, etc.. I wanted to showcase my results starting with the player's basic toolkit:

KATANA MAN - COMBAT - BASIC KIT

KATANA MAN - COMBAT - BASIC KIT
LIGHT ATTACK

LIGHT ATTACK

00:04
LIGHT ATTACK (HOLD)

LIGHT ATTACK (HOLD)

00:07
STRONG ATTACK

STRONG ATTACK

00:03
STRONG ATTACK (HOLD)

STRONG ATTACK (HOLD)

00:02
DODGE

DODGE

00:18
GUARDandPARRY

GUARDandPARRY

00:29
ULTIMATE ABILITY

ULTIMATE ABILITY

00:20
GLORY KILL

GLORY KILL

00:08

The playable character has two forms: Human form, where its attacks and movement speed are moderate, and Ultimate form, where all of his kit becomes faster.

ULTIMATE ABILITY - This Ultimate form is a PASSIVE system where a blue meter fills up based on SUCCESSFUL attacks and parries. The player isn't forced to resource manage and it feeds back from other actions in combat, serving as a reward for engaging agressively.

It can only deplete if activated. The player isn't penalized for playing poorly, the activation serves as a powerful hit that launchs nearby enemies, then a screen filter on the edges lets the player know they are in a special state.

As I wrote before, this mode fastens the combat pace, allowing players to execute more chains of combos and increasing their damage over time. The meter reduces on every successful hit as well as over time, so there's a small layer of strategy.

Also, the player gains health with each sucessful hit to enhance an agressive playstile. Finally, this mode doesn't has hit reactions, meaning although enemies will deal damage, their attacks won't interrupt player's animations.  

 

 

ATTACK COLLISIONS - All of the player's attack posess an exaggerated hit collision, making every attack feel extremely powerful. All of his attacks can hit multiple targets even if the sword doesn't make visible contact. This gives the player more control and breathing room when fighting against multiple enemies.

INVULNERABILITY FRAMES - When executing a Glory Kill or Dodge, the player gets invulnerability frames, making it easier for players to avoid getting hit while encouraging an agressive playstyle.

OFFENSE AS BEST DEFENSE - Engaging offensevely should always be rewarded, for that  executing glory kills and using the Ultimate ability causes an exaggerated hit reaction on enemies nearby allowing for easier oportunities to pickup new targets after each action.

INSTANT PARRY - When implementing mechanics such as guard/parry it's best to allow players to generate instant reactions on their objectives, for that whenever the player taps or holds the left bumper they are able to execute a parry which will stagger most enemies if they are attacking.

HIT FEEL - "Hit pauses" are a property of "hit feel" that allows players to read the contact point and follow-through of the attack animation while emphasizing best the weight of the hit. 

When designing the combat system I've also implemented a set of key rules that determine how much technical burden players should face when engaging in combat, my objective is for it to be as low as possible, allowing more room for new players to experience the combat system in its entirety:

ATTACK TARGETING & LERP - There is a soft targeting system in-game that allows for players to automatically turn to his target on the initial frame the attack input is registered. If the target is at a certain distance the player is granted an artificial reach to ensure them a better chance to land a hit.

 

 The target is determined by a mix between camera location and input registration, finding the optimal balance between enemy visibility and the player's intentionality. 

AUTO LOCK- There is also the option to manual lock a single enemy in case player's want to specifically target an enemy, leaving room for player agency on their approach to combat it's always possitive.

ATTACK STEERING - Once the game registers an attack input from the player, you CANNOT steer away from the target, players will have to commit to their attack decisions, reducing their agency in return of making attacks more consistent and providing a bit of risk/reward.

ANIMATION CANCELING - This refers to the ability to interrupt one action with another. The player can block or evade during attacks after the animation hit frames. This is done to maintain consistency in attack execution, encouraging players to commit to their actions rather than mindlessly smashing buttons. Although it reduces some player agency, it allows for more predictable decision-making and adds challenge without significantly increasing the technical burden, as players can still cancel recovery frames. The parry has no startup frames, increasing the possibility of players successfully countering enemy attacks after each of their own, enhancing their fantasy of power.

CAMERA CENTERING - If the enemy is at the edges of the screen the camera will center itself around the character and towards the enemy to ensure an optimal view of the battlefield, this to ensure player's use the right stick as less as possible, easing their technical burden.

GLORY KILL - When enemies run out of HP they enter in a "Knockdown" state where players can either keep landing hits until the enemy dies or execute a Glory Kill. Glory Kills are special moves that emphasize the fantasy of power of the playable character, acting as a reward for engaging with the combat system by granting players with HP and ENERGY orbs that will be automatically picked up a few seconds after the enemy dies.

INPUT BUFFERING - The game registers the player's input a few seconds into the attack animation's hit frames to ensure that follow-up attacks execute according to the player's intent.

Most of the attack's logic is built using Unreal Engine's anim notify system and they are organized as follows:

  • Hit Detection: Spawns a cube trace for a particular amount of frames, to detect if something has been hit.

  • SoftTarget: A notifier which fires logic that calculates distance between player and targets to determine whether or not to lerp or rotate towards it.

  • Shake: A notifier which initiates a camera shake, magnitude is consistent to avoid motion sickness. 

  • Combo Window: A notifier which decides the window for a successive follow up attack. If the player presses the attack button during this window of frames, they follow up with the next attack. 

  • Disable Combo Window: Disables the previous notifier.

  • Reset: Will return the attack back to it's starting point.

  • Disable Root Motion: To convey movement in combat, characters typically lunge forward during the startup frames of their attacks. For this purpose, most of the animations used are made with root motion in mind. During the recovery frames, I remove it for smoother transitions between movement and attack animations.

  • SFX: A notifier which initiates a SFX cue.

  • VFX: A notifier which initiates a Niagara System VFX.

I've also implemented traversal mechanics to make interesting exploration beats, my goals with this mechanics were:

  • Reinforce the character's physical strength and flexibility proposed by the narrative.

  • Craft cinematic and immersive interactions with the environment.

  • Allow for interesting level design choices between combat arenas.

KATANA MAN - MOVEMENT

KATANA MAN - MOVEMENT
OpenDoor

OpenDoor

00:08
PassThroughTightPlaces

PassThroughTightPlaces

00:33
JumpGaps

JumpGaps

00:30
Mantle

Mantle

00:02

Enemies

AI

Crafting a good set of enemies serve an important ROLE when designing combat to keep player's engaged in the game's systems. For that I decided to implement the following archetypes:

  • Fodder: Enemy category that serves as punching bag for the player.

  • Emphasizer: Enemy category that emphasizes a mechanic to be used.

  • Hard-Lock: Enemy category that ELIMINATES at least one of the player's tools and enforces him to engage with another mechanic.

My objectives with this cast of enemies were:

  • Allow player's to experiment and play around with the combat system.

  • Encourage them to use different tactics when approaching encounters via unique enemy challenges.

  • Enforce players to think outside the box and use all the tools at their disposal within the combat system.

KATANA MAN - ENEMY TYPES

KATANA MAN - ENEMY TYPES
MELEE ENEMY

MELEE ENEMY

00:07
RANGED ENEMY

RANGED ENEMY

00:05
ENEMYLOCK

ENEMYLOCK

00:19

To design their behavior I first specified a set of characteristics that could help me implement them with a correct intentionality:

image.png
image.png
  • Aggresion: Enemy attack frequency.

  • Movement Speed: The faster the enemy, the sooner they can get into attack range, making the player uncomfortable.

  • Attack Range: Range required to execute an attack.

  • Attack Speed: How fast enemies execute an attack.

  • Attack Readability: Posing and time to hit along with sound cues determine how readable the attack can be for the player.

  • Attack Recovery: Cooldown between attacks.

  • Attack Combo: How many times the enemy attacks before its attack pattern enters in a "cooldown state".

  • Attack Tracking: How strong and for how many time the enemy will turn towards a target during the attack.

  • Enemy Moveset: Variety of attacks.

  • Group Aggresion: Level of threat of an enemy when it's within a group of enemies.

  • Damage Output: Damage received by the player when landed a hit.

  • Attack Strength: Player's hit reaction.

  • Health: How many hits the enemy should resist from the player until death.

  • Defense: Ability to preemptively guard, counter or evade the player's hits.

  • Evasiveness: Ability to escape player attacks once hit.

AI MANAGEMENT

With the desire of designing and implementing a grounded combat like the one seen in God Of War 2018 comes the challenges of a closed-up cinematic camera and how to help players determine where the enemies are positioning.

Thanks to the Santa Monica Studio's GDC video "Evolving Combat in 'God of War' for a New Perspective" I was able to study, understand and get my AI to a good state based on their solutions.

My objectives were already defined, help players to:

Track Enemies > Target them > Engage in combat against them.

Since the difficult needed to come from the game itself and not the controls or the camera, enemies can be defined by two states during encounters:

  • Aggressive: Actively looking to attack the player.

  • Non-aggressive: Hanging in the back-lines and waiting to become agresive.

To determine which enemy could become agressive I set the following rules:

  • An enemy that has attacked and has been agressive, cannot become agressive again.

  • An enemy that is currently being targeted by the player, cannot become aggressive.

  • An enemy set to have less aggressive priority than others cannot become aggressive until the latter has been aggressive.

  • Off-screen enemies cannot become aggressive.

  • Enemies at a certain distance from the player, cannot become aggressive.

Each of this rules, when successfuly met grant a token to the enemy AI. These tokens come from a player pool of tokens specified depending on the difficulty required. More tokens will mean more oportunities for enemies to become agressive. 

When the player's token pool runs out, enemies will relocate based on their level of aggressiveness.

Aggressive enemies will try to stay close up to the player and centered on camera in a cone in front of him, while non-aggressive ones will wait in a wider cone behind the latter.  Enemies outside the camera view will keep their positions and an arrow will point at them around the player to achieve a better battlefield readability.

I was able to reach this result using Unreal Engine's EQS system:

To determine attack orders, enemies draw tokens from a separate token pool. This process determines the number of enemies capable of attacking simultaneously and may vary depending on the required difficulty, only aggressive enemies are able to retrieve tokens from this pool. The following videos showcase examples, one with a single token pool (left) and another with three token pools (right).

FULL GAMEPLAY VIDEO

  • alt.text.label.LinkedIn
  • alt.text.label.Twitter
bottom of page