ArenaPROJECT SHOWCASE
PERSONAL PROJECT / GAMEPLAY PROGRAMMING

Arena fighter

A 1v1 combat project in Unreal Engine 5.

Project type
Personal gameplay project
Focus
Systems design & integration
Try the game
Two armored fighters exchanging sword attacks in the arena.
PROJECT OBJECTIVE

The goal of this project is to showcase some ideas on how I can build systems into re-usable and scalable versions that unlocks more possibilities for designers and for future programmers that want to extend my design to use in other projects or to use for other purposes.

Status-effect framework

A single pipeline for all actor interactions.

I represented all actor interactions, including even regular damage, as status effects. Any gameplay systems will always apply interactions through this shared pipeline, giving effect handling a consistent entry point.

Advantages

Builds a strong foundation of interaction and how systems interface from day 1. As the game scales and systems become more complex and more systems are added, there are less problems that occur due to confusing structure or overlapping responsibilities.

What are Status Effects?

Status effects are represented by a gameplay tag, which acts as the identifier, mapped to a struct, which contains data related to the status effect. This data differs depending on the status effect, it could contain information about the severity, duration, type of effects, or whatever it needs.

More Detail on the InteractionApplied Function

This function is called on the target actor. The function will loop through each status effect, and figure out if it wants to apply the effect, and how it should do it. It checks for resistances, weaknesses, immunity or any other cases that might affect the application of this effect. It passes out its successes or failures so the initiating actor can conduct its own logic if needed.

STATUS-EFFECT APPLICATION
FatigueWorld InteractionsBleed Damage
APPLY ON TARGET ACTORInteractionApplied
Return application results
INITIATING ACTORHow and whether each effect applied

The result may trigger additional status effects.

More effects to apply?And loop count below maximum?
NO
End the loopEffects end or maximum reached
YES
Call againPass the triggered effects to InteractionApplied
Results return to the actor that initiated the interaction. Additional effects repeat the same pipeline until the effects end or the loop counter reaches its maximum.

Animation-driven combat

Animations are the single most important part of making combat feel real and exciting. Its what immerses players and controls the gameplay aspect of combat because it controls the timing. My setup tries to even further include animation as a driver of gameplay.

01 / ENVIRONMENTAL COLLISIONS

Accidentally hitting a wall causes the attack to end

In an enclosed space, a character can fail to complete a weapon swing. The collision causes them to reel back, leaving them vulnerable to an enemy’s next attack.

Gameplay consequence The space around the character affects whether an attack succeeds.

COLLISION RESPONSEGAME CAPTURE
An armored fighter recoiling beside a wall and pillar after a weapon collision.
A swing interrupted by the environment.
02 / ANIMATION AND PHYSICS

Animations combined with physics simulation

The combat combines regular animation with procedural animation through the physics component, allowing the character mesh to play animations normally while partially simulating physics. Contact with the environment can affect the character or weapon animation which may affect gameplay. The physics-component setup builds on Epic Games’ Game Animation Sample Project.

PARTIAL PHYSICS SIMULATIONGAME CAPTURE
An armored fighter’s arm and sword in contact with a pillar, showing a physical response.
Authored motion responding to physical constraints.
03 / ROOT MOTION AND MOTION WARPING

Movement follows the attack

Root motion moves enemies forward as they swing, making movement part of the attack animation. Motion warping adjusts that movement toward the player, allowing attacks to adapt to their target.

Combat feel Enemies close distance through the movement of their attacks, creating more dynamic and grounded exchanges.

Epic Games documentation on motion warping
TARGETED ROOT MOTIONGAME CAPTURE
Two armored fighters in close combat during a sword attack.
Forward movement during a weapon swing.

Utility-based enemy AI

Scoring actions based on the current situation.

The AI collects information about its opponent, the environment, its health, if its holding a weapon, or whatever else it might need to decide the optimal task to select. This modular approach creates really organic decision making that makes gameplay more fun.

Decision model and tradeoffs

The modularity of tasks and separating the decision layer from the execution layer are what make utility AI one of the most organized AI frameworks to use. But what makes it really special is that it is the AI framework that gives the most organic and emergent decision making and creates the most fun gameplay.

ACTION-SCORING EXAMPLEINTERACTIVE EXPLAINER
Attack86
Reposition42
Defend28
SELECTED ACTIONAttack

An opening makes attacking the most useful option.

Illustrative scores and actions, not captured game telemetry.

PLAYABLE BUILD

Try the game

Explore the arena and experience the combat systems firsthand in a downloadable build.

Download coming soon

The playable build will be linked here when it is available.

Getting started

Once the packaged build is available:

  1. Download the build

    Save the packaged game to your computer.

  2. Extract the archive

    Keep all game files together in the extracted folder.

  3. Launch the game

    Open the game from the extracted folder to enter the arena.

THIRD-PARTY FOUNDATIONS

Frameworks and assets

The project uses the following third-party frameworks and assets. My work focused on gameplay-system design and integrating these foundations into the arena combat prototype.

Animation & locomotionGame Animation Sample ProjectEpic Games
Utility AI frameworkAthena AIIuliu Balean
Combat animationsProtectorWeaponMaster Animset
Trace detectionDid it hitProjectZero
Arena environmentGladiator Arena Environment KitDenys Rutkovskyi
Weapon assetsFree Fantasy Weapon Sample PackAFox1