Welcome to the Ultimate course on the Unreal Engine five Gameplay Ability system.
In this comprehensive course, we will create a fully functional top down RPG, complete with attributes,
abilities, experience points and leveling up upgrading abilities and different ability levels.
AI driven enemies, each with their own character classes and abilities, all in a data driven, scalable
and expertly coded system designed to withstand a serious RPG style game and coded for multiplayer.
Unreal Engine's gameplay Ability system is a code base inside of Unreal Engine designed to help architect
game projects that require the management of attributes, abilities and effects, each of which have
close relationships to the gameplay mechanics such as combat.
This is how you manage a game such as an RPG, a multiplayer online battle arena shooter games, or
any game project that involves a complex web of values related to gameplay games that might require
experience points and leveling up, gaining new abilities and strengths as the player progresses, impacting
important gameplay mechanics with attributes such as critical hit chance damage type resistances or
block chance in combat.
All can benefit from the gameplay ability system.
When you enroll in this course, you will get an asset pack created specifically for this course.
This way you won't have to go looking for free assets online or worry about retargeting animations to
your characters that you're using in your game.
Everything you need for this course will be provided, and it's all been designed with a consistent
art style to fit this top down RPG called Aura Master of the Elements.
We'll start this course by opening the asset pack and creating our code base.
We'll make a base character class that will share all the functionality that the player controlled character,
Aura and the enemies will have in common.
We'll set up basic inputs and top down movement with the enhanced input system and get a targeting system
in place so we can hover over our enemies and highlight them with a red outline.
We'll then start on the gameplay ability system theory, learning the core parts of the gameplay ability
system and how they work with each other.
After a high level overview, we'll create our own ability system component and attribute set classes
and assign them to aura and the enemy base class and show the different ways to handle these classes.
Storing them on the player state for aura and on the character class for enemies.
We'll then learn about attributes creating our four primary attributes for the basic character in this
RPG strength, intelligence, resilience and vigor.
These will indirectly affect all other attributes in this game project.
Later on, we learn various ways to initialize these attributes and discuss the best way to set these
values.
Using gameplay effects.
We then dive deep into gameplay effects and how they work.
Modifying attributes with the use of modifiers, and we cover in depth all of the different types of
modifiers, including arbitrarily complex custom calculations.
We'll create an attribute menu which will show the player's current attributes as well as implement
attribute points which will be awarded upon leveling up.
These can be spent to upgrade attributes, making the character stronger as the other attributes which
affect combat are.
Based on these primary attributes, we'll learn about the usefulness of gameplay tags and how they are
used all throughout the gameplay ability system and how gameplay effects can add and remove them.
How abilities can be activated by the use of gameplay effects and will associate all of our attributes
with gameplay tags so we can identify them in a well coded manner.
We'll learn about the use of the model view controller architecture and utilize this pattern to handle
our UI as RPGs often involve complex UI and a solid structure is necessary to handle all of the RPG
data.
Everything in this project is data driven and scalable, so the system can be expanded with little effort
as we've created such a solid foundational framework.
Well then learn about gameplay abilities and how these lie at the heart of the gameplay ability system.
Gameplay abilities are classes that encapsulate the details of actions that a character performs in
a game such as melee attacks and spell casting.
Aura is an elementalist, so auras, offensive and passive abilities are magic based, but aura fights
enemies of different character class types, including warrior and ranger, as well as other elementalists.
So we will give aura magical spells such as Firebolt.
Electrocute.
Arcane shards.
Fire blast.
All of which devastate enemies that swarm and try to stab aura with spears.
Shoot aura with slingshots and launch fireballs of their own.
The Goblin Shaman class is an elementalist like aura, so it is capable of casting magical spells as
well as summoning minions, little demons that can be assigned different classes themselves.
Thanks to our code framework being data driven, it's a simple matter to spawn in a daemon and assign
them the class of ranger or warrior and the attribute values, abilities and gameplay effects that they
spawn in at, as well as the amount of damage they can cause.
Scales depending on their character level, using curved trends that we can tweak with the click of
a mouse, we'll implement the enemy AI behavior with behavior trees and the environment query system
linking the behavior tree to the gameplay ability system, triggering the activation of gameplay abilities
from behavior tree tasks.
Our AI enemies will include goblin warriors with spears, Goblin rangers with slingshots, the Ghoul,
the Goblin Shaman, which casts spells, including summoning demons, and of course, the demons themselves,
which use their tails for melee attacks and also throw rocks for ranged attacks.
After completing the AI for our enemies, we then finish up the rest of Ora's magical spells and create
a fully functional spell menu with spell trees for offensive and passive spells.
We award Ora with spell points when leveling up, which can be spent on spells to upgrade them.
And we create a spell tier system where each spell has a level requirement and appears locked in the
spell menu until a spell point has been spent to unlock it.
When leveling up, if Ora is now eligible and meets a spell's level requirement, it can now be unlocked
with a spell point and equipped in Ora's equipped spell row.
The spell row assigns spells to different inputs such as the left and right mouse buttons, as well
as the number keys.
Again, we take a data driven approach here, creating a system where abilities can be swapped out and
reassigned to different inputs.
Want your firebolt assigned to the right mouse button and electrocute assigned to the one key.
Just swap them out.
Want arcane shards assigned to the left mouse button?
Or maybe you don't want to use the mouse, but just want to use number keys to activate abilities.
The player has the choice because our system is designed to be flexible.
We then create a passive spell system where passive spells are activated as soon as they are equipped
and deactivated.
If they're unequipped and they remain active the whole time while they're equipped, much like passive
abilities in most RPGs that give you buffs that are always active.
Our combat system dives deep into the inner workings of gas and takes advantage of all its major features.
We will have multiple damage types fire, lightning, arcane and physical, and you'll have enough examples
of ways to use them that you can make any damage type you want.
Each damage type is associated with a type of debuff.
Fire damage has a chance to burn.
Lightning damage has a chance to stun.
ET cetera.
We implement combat features such as Knockback, where damage has a chance to launch the receiver of
damage into the air and Death impulse, where the receiver of damage is blown away upon receiving fatal
damage.
We'll learn about gameplay cues and the different types built into the ability system and how they can
be used to easily achieve producing effects such as particle systems and sounds and how these have multiplayer
replication built in and when it's appropriate to use them and when you shouldn't.
We learn how to replicate target data, sending it to and from the server.
We learn how to create custom gameplay effect contexts which can carry important combat data through
our combat pipeline, including weather damage.
Was a successful block or a critical hit, allowing us to show various messages to the screen, like
floating damage numbers and animated text that informs the user of a block or a critical hit.
We create our own asset manager ability system globals class and Blueprint function library.
We learn how gameplay tasks and async blueprint tasks work, creating our own C Cplusplus and exposing
Cplusplus utilities to blueprint.
And we use these to listen for cooldown tags so we can show a spell's cooldown in the HUD.
Spells will have both cost and cooldown.
Their cost using up the resource of mana.
Everything we do in this course follows best practices used in the industry, and the game project is
made to be scalable.
This is the foundation you can use to create a serious RPG.
We'll wrap up the course by creating a save game system, implementing checkpoints that save our progress.
Including all of the ability system info such as attributes and spells as well as world state.
We'll create beacons that can be reached throughout our dungeons and they will remain lit up so you'll
know where you've already reached in any given level.
We'll create level entrances that can be configured to transport the player to any destination and any
map allowing for easy travel between worlds in the game.
And we'll create a robust load screen menu with multiple slots that can save progress and load the player
back in to their last checkpoint in the level they were in.
I haven't even mentioned half of the game features that we'll implement in this course.
I'd keep listing them off, but there's just no time, I'm afraid.
I've got some dungeons to crawl through, some enemy creatures to slay, some experience, to gain,
some leveling up to do, and some spells to upgrade.
Join my party and take on this epic quest to learn the Unreal Engine gameplay ability system.
This course assumes that you have the basics of Unreal Engine C plus plus down already.
I highly recommend that you take my course that teaches you these basics.
It's called Unreal Engine five.
C plus plus the ultimate game developer course.
If you've taken this course or have equivalent knowledge, you're ready to embark on one of the most
exciting adventures of your game development life.
See you in battle.