Welcome.
So the previous section was very much review for you.
Hopefully most, if not all the things we did are things you're already familiar with.
From this point on in the course, most of the things we'll be doing will most likely be completely
new to you, not least of which is the gameplay ability system.
In this video, we'll discuss what the gameplay ability system is and how we'll use it for the game
project.
The game will be developing throughout.
This course was designed to teach you all of the main features of the gameplay ability system and how
to apply them in various ways.
So what is the gameplay ability system?
Well, according to Unreal Engine documentation, the gameplay ability system is a highly flexible framework
for building the types of abilities and attributes that you might find in an RPG or Moba title.
You can build actions or passive abilities for the characters in your games to use and status effects
that can build up or wear down various attributes as a result of these actions.
Additionally, you can implement cooldown timers or resource costs to regulate.
The usage of these actions, change the level of the ability and its effects at each level, activate
particles, sound effects and more.
The gameplay ability system can help you to design, implement and efficiently network in-game abilities
from as simple as jumping to as complex as your favorite character's ability set in any modern RPG or
Moba title.
Now that all sounds pretty good, but it's also kind of a little vague.
And that's because the ability system is so vast and capable that it's almost impossible to condense
down into a single paragraph like this.
So we're going to talk a little bit more about what the gameplay ability system is at a high level before
we get started creating the various components of the system in our game project.
So now that we've seen the Documentation's definition, let's actually talk a little bit about what
gas is.
Well, let's say you have the goal to create a video game.
Now there are many different game genres, so for the sake of this discussion, we'll just say that
your plan is to create an RPG.
An RPG or role playing game is typically a fairly large game project involving a number of elements,
including attributes commonly referred to as stats.
And these are values that affect gameplay in significant ways.
Examples of attributes include a form of health or life for the character that the player will control
throughout the game.
Life is typically defined as the amount of damage the character can take before being killed or eliminated.
Damage itself is often treated as an attribute and can be affected by a number of factors, including
the character's other attributes equipment such as armor and weapons, and the effects of magical spells
or anything else that you decide.
Now, other attributes are typically defined to affect various aspects of gameplay.
Attribute values may even depend on other attributes as one attribute changes.
Other attributes that are derived from it often change according to some mathematical formula determined
by the game's designers.
For example, the character may have a critical hit chance attribute called crit, and this critical
hit Chance adds the chance to cause bonus damage when the character attacks.
Now, this crit chance may be derived from a combination of other attributes.
Let's say the character has a resilience attribute or here on the x axis of this graph.
And when resilience increases, critical hit chance also increases by a certain amount.
RPGs often have a large number of attributes that affect various aspects of gameplay.
Now, attributes aren't the only feature of a game.
We mentioned damage and the act of causing and taking damage.
Well, damage is typically caused by abilities.
The character may attack other creatures or players in the game, and attacking involves several actions
that act in unison with each other.
Attacking typically involves playing some sort of attack animation, whether it be a sword swing or
a spear thrust or casting a magical spell.
The attack typically involves hitting the target and causing damage to that target.
Causing damage in an RPG means checking the values of attributes both on the attacker and the target,
and performing a series of mathematical calculations that take these attributes into account before
determining the final amount of damage caused.
If the damage caused to a player or creature is fatal, meaning that it's brought the target's health
or life attribute down to zero, the target may die.
In RPGs, this is usually accompanied by a reward of some sort.
The reward, often issued in RPGs, comes in the form of experience Points or XP.
A character can accumulate experience.
And once this character has amassed a certain amount determined by a threshold for that particular level.
That character may reach a point where it's now eligible for an upgrade of some sort.
We often call this upgrade a level up where the character's level a numerical value designed to be a
measure of cumulative progress in the game goes up.
Now leveling up is often accompanied by an increase in the character's overall power in the game, such
as an increase in attribute values or even being granted newer and more powerful abilities.
By leveling up, the character has become capable of taking on even stronger enemies, causing more
damage, and earning even more valuable rewards.
Speaking of rewards, there are often gameplay mechanics in RPGs that result in strengthening or weakening
the player.
Mechanics that strengthen the player are often referred to as buffs and mechanics that weaken the player
are often referred to as debuffs drinking.
Some sort of potion may increase the player's health or mana or some other attribute.
Casting a spell may temporarily increase some of the player's attributes or decrease attributes on the
target.
Buffs and debuffs can be applied as a result of picking up or consuming items, or they may be applied
as the result of being hit by certain abilities or receiving damage of a certain type.
So effects are some sort of gameplay mechanics that result in changing attribute values, and the reasons
and situations involved depend entirely on the game's design.
Now we've discussed a lot of mathematics thus far.
Attributes have their own numerical values and effects caused by elements in the game often change these
values, but there's often some sort of visual or audio cue associated with any given gameplay mechanic.
A sword hitting an enemy releases a splash of blood on contact.
That's usually some kind of particle system.
A magical fireball explodes on contact, which creates a loud boom sound.
These visual and audio cues are every bit as important as the underlying mathematical calculations that
affect the various attributes in the game.
Now, we've described many features that you see in RPGs, but these are commonly used in many other
game genres.
Shooter games make use of attributes such as health and stamina.
Just about most games involve some sort of health or life, and nearly all games make use of a form
of progress, even if it's not called the player's level.
The point is that games can get quite complex and the more complex a game becomes, the more relationships
the various game elements have with one another and the more difficult it can be to manage all of these
relationships.
It can help if there is a system that allows us to organize these relationships, these attributes,
effects, abilities and gameplay cues.
That's where the gameplay ability system comes in.
Now can you make a complex game such as an RPG similar to what we just described without the gameplay
ability system?
Well of course you can.
Countless games, even super complex RPGs have been created before the gameplay ability system was even
invented.
But those games, at least the ones successful enough for you to have heard about them, succeeded as
a result of impeccable design management and code framework.
The gameplay ability system provides us with such a framework.
The Gameplay Ability system was designed to handle the complexities of the game.
Paragon.
Paragon was a multiplayer online battle arena, or Moba, developed by Epic Games.
A Moba is a competitive multiplayer game involving multiple character types.
Each character type generally has its own set of unique abilities and strengths.
Characters in MOBAs often gain experience, level up and earn new abilities, all in the space of a
single multiplayer match.
It's a game genre that combines just about every technical challenge a game development team can face,
and all of the complexities that we've discussed thus far are generally implemented in MOBAs.
It's the type of game project that absolutely requires a solid framework that is modular, flexible
and scalable.
It must have a code base that can accommodate for attributes, effects, abilities and cues and do so
in a way that is handled well in multiplayer and allows for each element in the system to interact with
any of the others in an efficient and well coded manner to handle such a complex system.
Epic Games created the gameplay ability system.
Sadly, Paragon was eventually cancelled and Epic decided to focus its game development efforts primarily
on Fortnite.
However, Paragon wasn't a complete waste of time, talent and resources.
It turns out that gas, the gameplay ability system, was so well structured, so versatile and so expertly
coded that it can be utilized in any number of situations.
It allows a game to have a complex system of attributes, abilities, effects and cues.
And now it is an integral part of Fortnite itself.
The gameplay Ability System is a masterpiece in software engineering and provides a fully replicated
way to handle complex gameplay mechanics.
Fully replicated means it works in a networked multiplayer environment with lag compensation providing
a smooth gameplay experience even in the presence of lag.
So can you make a complex game such as an RPG without gas?
Well, of course you can.
But learning how to use and implement gas will allow you to do so in a way that is expertly organized,
easily scalable, modular, and with the efficiency good enough for a fast paced, competitive Moba
title, saving you literally years that it would take you to engineer such a work of art.
Gas is the most beautiful piece of software engineering that I've ever touched, and it's my pleasure
to share my knowledge of the system with you.
Unreal Engine developers who wish to expand their capabilities into a realm in which serious, complex
games exist can do so with the use of gas.
And seeing as how you're one of them, it's time to get started.
Adding gas to this course project designed to showcase and unravel the features of the gas masterpiece.
One piece at a time.
Let's see what forms of magic we can create.