//AbilitySystem.DebugAttribute
//showdebug abilitysystem
Where to enable:
[YourProject]/Config/DefaultGame.ini
Script:
[/Script/GameplayAbilities.AbilitySystemGlobals]
bUseDebugTargetFromHud = true
The Gameplay Ability System (GAS) is a versatile framework designed for both programmers and designers. It allows any gameplay-related action to be implemented as an ability. The system is built with multiplayer compatibility in mind and is designed to be well-distributed, making it efficient and easy to use in large team environments.
Ability System Component
- Manages everything related to this plugin inside a single actor.
Gameplay Ability
- Gameplay Logic: Core logic of the ability.
- Low-level Base, High-level Asset: The system allows for complex abilities built on simple foundations.
- Every Action Can Be an Ability: Any gameplay-related action can be implemented as an ability.
Gameplay Effect
- A Data Asset: Contains the details of effects.
- Attributes and Tags: Changes attributes and applies tags; can stack.
- Grant or Remove Abilities: Can dynamically alter abilities.
Attribute Set
- Linked Actor Properties: Properties of the actor are connected to the Ability System.
- Replication: Attributes can be replicated across the network.
- Modified by Effects: Attributes can be modified by gameplay effects.
- Complex Mechanics: Attribute calculations can be overridden in C++ to create complex mechanics, such as:
- Effect Executors
- PostGameplayEffectFeature in AttributeSet
Gameplay Tags
- Interaction Management: Handles interactions between abilities and effects.
- Effect Identification: Identifies and categorizes effects.
- Powerful Tool: Manages cooldowns, timers, and immunities; can activate, interrupt, or block the activation of abilities.
Gameplay Cue
- Visual and Audio Representation: Provides visual and audio feedback for gameplay effects.
Gameplay Event
- Messaging System: Sends messages to actors with a specific tag, along with any associated data.
Gameplay Task
Asynchronous Actions: Allows for asynchronous actions within gameplay abilities, acting as building blocks for ability scripts.
Risks and Reality
- Steep Learning Curve: The system can be complex and difficult to learn initially.
- Difficulty in Tracking Interactions: It can be challenging to keep track of all interactions involving tags.
- Large Number of Files: The system generates and relies on a significant number of files, which can be overwhelming.
- One-Way Communication: Communications between the Gameplay Ability System and other systems are generally one-way, usually driven by the Ability System.
- Event-Driven: The system is event-driven, which can make it difficult to determine the current actual state.’
Why Should You Use the Ability System?
- Though complicated, it provides more options and safety.
- Handling the most challenging client-server interactions is built-in.
- It allows you to focus on making a game instead of developing your own engine.
- Statistically, it makes development faster and support easier.