UE4 Action Game Project
Overview
This is a project I worked on for a few months in 2022 using Unreal Engine 4. It originally started as a project with a combat system in the same vain as games like Dark Souls, but eventually turned into a combat system inspired by the likes of Devil May Cry and Metal Gear Rising: Revengeance. My goal with this project was to make a combat system that is flashy, has tight controls, and feels fluid. I also did some work on abilities that the player may use to engage and enhance combat against enemies. Nothing came of this project in the end, but I learned a lot about third-person combat systems and Unreal Engine’s character animation system.
Create a flashy and responsive combat system
Improve my knowledge and skill in Unreal Engine
Learn what it takes to create fluid and satisfying third-person combat
Goals
Genre:
Action
Engine:
Unreal Engine 4
~3 Months
Dev Time:
Team Size:
1
Select an option below to view greater details regarding my process and the work that went into certain aspects of the project.
Player attacks and abilities
Combo system for two weapons the player could use
Weapon equip/unequip system
Free flow combat
Enemy health bars and damage numbers that pop up when they take damage
Visual Scripting (UE4 Blueprints)
Set up player animations
Set up enemy animations
Implemented weapon models
Asset Implementation
Created visually distinct weapon trails to help differentiate the player’s attack combos
FX (UE4 Niagara)
Designed and implemented combat mechanics.
Designed free flow combat system that allowed the player to quickly swap between enemies when attacking.
Put thought and consideration into how to visually distinguish attack combos beyond just the animations.
Game Design
Detailed Info
Combat Design & Scripting
Attack Combos:
For the combat I wanted the player to have multiple attack combos they can perform. The primary combo is performed simply by pressing the attack button consecutively, while triggering the others is based on the point in the combo that the player delays the next input. Using UE4’s animation system I placed custom functions at specific points in each animations timeline so that things like weapon trails started and stopped at the correct times. I also added functions that would reset the attack combo, check if another attack could be performed, and whether or not there was a delay in the inputs.
Additionally, I created separate inputs and script that would check whether or not the attack was a light or heavy attack. If light, the combo would start with light attack Combo A that could then branch off into other combos. The same logic applies if the heavy attack button is pressed; starting with heavy attack Combo A.
The animations themselves are from the 2 Assets Powerful Sword Pack by Grruzam on the Fab library.
Light Attacks
Combo A is performed by consecutively pressing the attack button. Visually identified by a blue weapon trail.
Combo B is performed by slightly delaying the attack input after the first attack of Combo A. Visually identified by a pink/purple weapon trail.
Combo C is performed by slightly delaying the attack input after the second attack of Combo A. Visually identified by a green weapon trail.
Heavy Attacks
As with the above examples the same logic applies to the heavy attacks.
Heavy Attack Combo A
Heavy Attack Combo B
Heavy Attack Combo C
Camera Lock-On:
I wanted the player to be able to target a specific enemy and have the camera follow them constantly the way souls-like games do.
Displays an arrow above the enemy to indicate which one is currently targeted. It also displays the enemies health bar.
Free-flow combat:
I wanted combat against large groups of enemies to flow smoothly. So I designed and scripted the ability for the player to attack a new target mid-combo based on input direction.
If the player does not input any direction then they will attack the same enemy again. However, if they input a different direction between attacks the game will check for an enemy in that general direction within a range and swap targets to that enemy.
Wall Running
I had plans to implement wall running as a form of moving about the level. I managed to create basic functionality and determine which animation to play based on the direction the player hit the wall from.
I also added a slight kick off the wall when the player jumps while wall running.