top of page
Search

GAS (Gameplay Ability System) in Unreal 5

  • Writer: charl botha
    charl botha
  • Jun 17, 2024
  • 2 min read

GAS is a framework within the Unreal Engine that provides a standardized way to implement gameplay abilities and effects. It is particularly useful for games that require complex interactions between characters and their abilities, such as RPGs, and in our case Throne of Chaos.

Here are some key features of GAS and how we are using them

  1. Abilities and Effects: GAS allows us to define abilities that characters can use, such as spells, "fire ball", or special "roll". Each ability can have associated effects, such as damage, healing, or buffs/debuffs, costs and cooldowns.

  2. Gameplay Tags: GAS uses gameplay tags to categorize and manage abilities and effects. An example would be Attributes.Primary.Strength which helps us provide a flexible way to handle interactions, conditions, and state changes within the game.

  3. Attributes: Attributes in GAS are variables that represent character stats, such as health, mana, strength, or agility. These attributes can be modified by abilities and effects and affect each other.

  4. Prediction and Replication: Main reason we went with GAS is that it was designed with multiplayer in mind, offering built-in support for prediction and replication. This ensures that abilities and effects behave consistently across all clients in a networked game.

  5. Modifiers and Custom Calculations: A big plus is that abilities and effects can include modifiers that alter attributes based on custom calculations. This allows us a high degree of customization and complexity in how abilities interact with character stats.

At the end we want to gather information as people play using the GAS logs, export, and use machine learning to adjust difficulty accordingly.


GAS however is extremely complex framework, if you know C++, building a multiplayer game, then it may be your teams answers. However, there are many ways to skin a cat as the saying goes and with this framework you can cause a lot of confusion in the team as when to use a Calculation Modifier or a Calculation Execution just as an example.


As with most Unreal Engine frameworks, the documentation is far from what is desired, but the community does help and there is a great Udemy course out there to help get started.


At the end GAS with Gameplay tags made sense as our entire mechanics lays on advanced calculations based on classes vs affinities. I am sure as hell not writing that from scratch.


GAS Documentation


Unreal Engine - GAS



Comments


bottom of page