Skip to content

Gameplay Ability System

CaIzii edited this page Jul 1, 2023 · 1 revision

Purpose

It could be overkill for your arena shooter or tiny indie game with a small set of abilities/actions

  • Epic's framework for abilities, buffs, and attributes. (Separate from 'Gameplay Framework')
  • Powerful feature set for RPGs and a Wide range of genres.
  • Steep learning curve and only a little documentation.

Official Docs: https://docs.unreaIengine.com/en-US/Gameplay/GameplayAbilitySystem/index.html

Community Docs: https://github.com/tranek/GASDocumentation (Far more detailed than official.)

Video: 'Getting Started With the Gameplay Ability System' (https://youtu.be/irzq610_Y4E)

Video: 'Using the Gameplay Ability System' (https://youtu.be/713CSOWkTU)

GameplayTags (https://docs.unrealengine.com/en-US/Gameplay/Tags/index.html)

Code Separation

  • Avoid monolithic Character Class containing all Ability-code and VEX.
  • Easier to maintain single-purpose classes. (eg. Action_MagicProjectile, Action_Sprint)
  • Better collaboration, especially for Blueprint (Binary assets can't be merged in version control)

Misc. Benefits

  • Grant Abilities and Buffs during gameplay, e.g. level-ups, gear upgrades, and damage-over-time effects.
  • Avoid loading the entire game into memory at once via 'hard-references'.
  • Manage many states and labels via GameplayTags rather than booleans or enums.

// Examples: 'DamageType.Melee.Slashing', 'Action.lsSprinting', 'Pawn.Mage', 'Pawn.Warrior'

  • More than just Player Abilities, Actors in the world can use Actions too.

Clone this wiki locally