UE5 MOBA

Overview#
| Team | Duration | Stack |
|---|---|---|
| Solo | Jul 2026 ~ | UE5, C++, Gameplay Ability System |
A MOBA combat prototype built on Unreal Engine 5's Gameplay Ability System (GAS), covering skillshots, a non-targeted ultimate, leveling, an item shop, and lane minions.
Combat System#
- Four distinct ability types built on GAS: basic attacks, montage-section-driven combos, a line skillshot, and a non-targeted AoE ultimate
- The combo chains into different montage sections and GameplayEffects depending on input timing, mapping each combo stage to its own damage table
- The non-targeted ultimate (Blackhole) runs a 4-stage casting sequence: an aiming montage → placement confirmed via
AbilityTask_WaitTargetData→ a pull-aura active for its duration → an area-of-effect finishing blow on end - The skillshot's dedicated
TargetActorreads the caster'sGenericTeamIdto automatically ignore its own team - The camera is an over-the-shoulder action camera rather than a top-down MOBA view — aiming interpolates a separate spring-arm offset on entering/exiting aim mode
Stats & Progression#
- A GAS
AttributeSetmanages Health, Mana, Damage, Armor, Speed, Strength, and Intelligence as fully replicated attributes - Strength and Intelligence each carry a separate GrowthRate, so stats scale automatically on level-up — the classic MOBA growth curve
ModifierMagnitudeCalculationsplits "based on base attack" vs. "based on level" damage formulas out of ability code, so balance changes only require swapping the calculation, not touching abilities- Base stats and the per-level experience curve live in data tables / curve tables, so numbers can be tuned without recompiling
Item Shop & Inventory#
- A gold-based shop UI backed by an inventory component that applies gameplay effects to the ability system the moment a purchase completes
- Purchases go through a Server RPC with
WithValidation, so the server has final say and client-side manipulation can't force an illegitimate purchase
Lane Minions & AI#
- A
Barrackactor spawns minions per team on a timer, using object pooling and cycling through multiple spawn points to keep spawn cost bounded - Minions perceive enemies autonomously via Behavior Tree + AI Perception (sight), writing detected targets to the blackboard and driving ability use from there
- Team affiliation (
GenericTeamId) distinguishes friend from foe, and the same team data is reused for skillshot target filtering
UI/HUD#
- Hand-built MOBA-style HUD widgets: ability cooldown gauges, a level gauge, an overhead health bar, a crosshair, and stat gauges
Current Status#
Still a prototype — actively working through:
- Minion avoidance behavior not yet implemented
- Combo feel needs work
- Ragdoll response needs improvement
- Minions following the player too aggressively
- Texture flicker, likely a streaming/LOD issue