Skip to content

DimitrisFuzi/AbilitySystem

Repository files navigation

Unreal Ability System Prototype (C++)

A third-person prototype demonstrating Unreal Engine C++ gameplay systems architecture — ability slots, projectile abilities, interface-based damage, and an event-driven HUD.

Note: This is a lightweight custom ability system (not Unreal’s Gameplay Ability System / GAS).


Systems implemented

  • Ability systemUAbility (UObject) instanced per slot via UAbilityComponent (UActorComponent), per-slot independent cooldowns, Blueprint-tunable via subclassing
  • Interface-based damageIDamageable UINTERFACE decouples projectile from enemy class; any actor implementing the interface can receive damage
  • Event-driven HUDFOnSlotChanged Dynamic Multicast Delegate drives slot updates; dynamic widget creation with no hard-coded slot count

Quick links


Controls

Key Action
1 Trigger slot 0 — Single Projectile
2 Trigger slot 1 — Burst (3 projectiles)
3 / 4 Unequipped slots (no ability assigned)
WASD Move
Mouse Look
Escape Quit

Architecture overview

Abilities are UObject subclasses instanced per slot by UAbilityComponent (UActorComponent). Each slot holds its own ability instance with independent cooldown state. The component broadcasts an FOnSlotChanged delegate on equip and trigger — the HUD binds to it without the component knowing the HUD exists.

Projectile abilities spawn AAbilityProjectile actors which apply damage through the IDamageable interface — the projectile has no dependency on any specific enemy class.

See (TECHNICAL.md) for full implementation details and design decisions.

Ability System Showcase

Known limitations

  • No multiplayer / replication
  • No object pooling for projectiles
  • Keyboard and mouse only (no controller support)
  • Not broadly hardware tested

What I would improve next

  • Implement object pooling for projectiles
  • Add a C++ base for common projectile variants (homing, bouncing) to further demonstrate the extensibility of AAbilityProjectile

Tech stack

  • Unreal Engine 5.7
  • C++ + Blueprints
  • Enhanced Input
  • Niagara VFX
  • Git + GitHub

Build


Credits

Assets used under Fab Standard License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors