Gameplay Ability System
The Gameplay Ability System, or GAS, is a system made by Epic Games. It's a framework which developers can separately implement into their project and customize to their liking. The system utilizes the following core functionalities for creating and handling abilities:
- Gameplay Abilities
- Ability Tasks
- Gameplay Attributes
- Gameplay Effects
Learn more with UE4's documentation
Documentation for GAS is sparse. These are the best resources we've found besides what Unreal provides:
What do we use GAS for?
We aim to use GAS for handling Abilities, Attributes, Units Effects, Attacking and Damage Calculation, Health Points and tracking other values (like Resources/Power Points/Experience). For example, we aim to use the system for Hero Abilities, Powers, Passives (buffs/debuffs), and anything alike that requires complex handling or tracking.
Right now we've implemented the framework itself, which is quite complex for a custom project, and are ready to build upon that.
RTS Framework Implementation Specifics
Targeting
We can't use GAS to manage the targeting directly. This would create a target indicator for every unit on a horde because it is designed with FPS/MMO in mind. We use our developed targeting methods SingleTargetAbility and AreaTargetAbility, that are adapted to use GAS.
Ability Tasks
GAS has an Ability Task limitation of about 1000. As such, we do not use Ability Tasks to handle basic attacking. They should be used with care, for things like real abilities (hero, spells) which aren't concurrently heavily used.