top of page

THE LAST SWORDSMAN

ABOUT

In this ambitious project, I leveraged the power of Unreal Engine to create a robust and immersive combat system for a video game. The primary goal was to deliver a dynamic and engaging gameplay experience and to achieve this, I utilized a combination of component systems, Blueprint Interfaces, AnimNotify, Class inheritance, and AI Controllers coupled with Behavior Trees and Service Nodes.

Tech: Unreal Engine
Genre: Action RPG, Souls-like
Platform: PC
Team Size: 1

SUMMARY OF CONTRIBUTIONS

Foundations of the Project

At the core of this project lay a strategic use of component-based architecture and Blueprint Interfaces, designed to foster reusability and flexibility across player and AI entities.

  • Combat Component: This component held essential attributes related to weapons, enabling players and AI to interact effectively in combat scenarios.

  • State Manager Component: With a sophisticated logic built around gameplay tags, this component handled player states and actions seamlessly, ensuring fluid gameplay transitions.

  • Stats Component: Vital health and stamina management, complete with automatic stamina regeneration, were crucial in maintaining a balanced gameplay experience. Moreover, distinct stat costs for various weapons added depth to combat strategy.

  • Collision Component: A critical element integrated into the Weapon class, this component manages weapon collision, socket configuration, collision tracing, detection, and impact during combat sequences.

  • Targeting Component: By implementing Targeting functionality, this component not only simplifies battles but also automatically orients the player toward the targeted enemy, enhancing combat fluidity.

Target Lock
Blueprint Interfaces for Versatility

I utilized the power of Blueprint Interfaces to declare essential functionalities that are required to be implemented in AI and Player blueprints, which also helped avoid casting. These interfaces included:

  • BPI_Combat: Offering a suite of combat-related functions, this interface facilitated actions, target rotation, and other essential combat maneuvers.

  • BPI_GameplayTag: Streamlining gameplay tag management, this interface aided in the matching of actor tags with user-defined parameters, contributing to categorization and identification.

  • BPI_Interactable: Enabled player interaction with different weapon equipment in the world.

  • BPI_Targeting: Consists of targeting function signatures that are common for both AI and player-controlled entities.

 

Seamless Animation Integration

Usage of AnimNotify not only helped synchronize various gameplay events with combat animations, but also helped increase the overall performance by triggering computationally costly events only when necessary. These events trigger various tasks, special effects, and actions during specific animation frames. Notable applications included enabling collision tracing during weapon swings, automating actor rotation towards targets, disabling movement when under attack, toggling combat states, attaching and detaching weapons, and coordinating audiovisual feedback cues.

AnimNotify and AnimNotify State events triggered in an Animation Montage

Attack Combos: The combat system was enriched with attack combos, granting players the ability to chain moves for dynamic and strategic engagements.

Attack Combo

Hit Reaction System: To enhance the sense of realism, a hit reaction system provided responsive feedback to both player and enemy actions, further immersing players in the game world.

Hit Reaction samples

Animations: Using the freely imported animations from Epic Games, I set up animations for various Meshes using IK_Retargeting and implemented BlendSpaces.

 
AI Enemies

Implemented AI enemies using AI controllers, behavior trees, and service tasks, along with re-using the components and interfaces that I implemented for the player character. Utilized class inheritance to implement multiple AI to avoid code redundancy and achieve modularity.


Hierarchy of inheritance
Gruntling Enemy
  • Behavior:

    • Does not follow a predefined patrol path but rather moves to random positions within its designated range.

  • Sensory Abilities:

    • Vision: It can spot potential adversaries within its line of sight.

    • Damage: It reacts to incoming damage, further enhancing its awareness.

  • Combat Style:

    • Upon sensing the player's presence through its heightened senses, the Gruntling Enemy immediately engages in combat.

    • It possesses remarkable agility and speed, making it a formidable opponent in close-quarters battles.



Skeleton Enemy
  • Behavior:

    • The Skeleton Enemy adheres to a predetermined patrol path, adding an element of predictability to its movements.

  • Sensory Abilities:

    • Vision: The Skeleton Enemy spots players within its line of sight.

    • Damage: It becomes alert when subjected to damage.

  • Combat Style:

    • Upon detecting the player, the Skeleton Enemy transitions into combat mode.

    • It maintains a medium-paced movement, combining predictability with moderate agility.

    • At the outset, this enemy begins unequipped and only equips its weapon when engaging the player, demonstrating tactical awareness.

    • Once it can no longer sense the player, it unequips its weapon and resumes its patrol.



Frost Giant
  • Behavior:

    • The Frost Giant keeps idle till it senses the player with its heightened senses.

  • Sensory Abilities:

    • Vision: Has increased peripheral vision compared to other enemies and extended sight radius, allowing to detect player from a considerable distance.

    • Damage: Similar to other enemies, it responds to damage inflicted upon it.

  • Combat Style:

    • This formidable adversary wields its massive hands (Dual Weapon) as weapons.

    • Upon sensing the player's presence, the FrostGiant initiates combat with a commanding roar, signaling the impending battle.

    • It moves swiftly, maintaining high speed during encounters.

    • Notably, the FrostGiant possesses a rare and devastating attack that can knock down the player, adding an element of danger and excitement to encounters.



These distinct enemy types showcase a diverse range of behaviors, sensory abilities, and combat styles, contributing to an engaging and dynamic gaming experience. Each enemy type challenges players in unique ways, requiring different strategies to overcome, and adds depth to the overall gameplay.

 
Equipment

Implemented equipment classes using inheritance to support multiple types of equipment, such as defensive shields, armor, and weapons. This can be further extended to include other types of equipment, such as healing potions and more variations of weapons and armor.

bottom of page