This is the most comprehensive Unreal Engine course available.
In this course, we will create a top-down RPG style game, filled with systems architected using Unreal Engine's built-in Gameplay Ability System (GAS). This is where you will learn how to architect a shipped game, and code it expertly so it can be easily expanded, upgraded, and maintained. We follow SOLID coding principles, and balance the Blueprint/C++ ratio in a way that AAA shipped games do, such as Fortnite. My experience with AAA shipped game code, as well as consultations with industry veteran developers has allowed me to reveal to you the way a real shipped game's code base looks like. If you've ever wondered how much of a game can be kept in Blueprint versus C++, look no further. This course is the answer.
The assets in this game project were made specifically for this course, and will be provided in an asset pack. This includes:
Characters, including Aura, the main character, as well as enemy characters including Goblin Warriors, Goblin Rangers, a Goblin Shaman, Red and Black Demons, the Ghoul, and a Shroom.
A modular dungeon pack that can be pieced together to make basic dungeons
A waypoint shrine and obelisks
Particle Niagara System Effects, including explosions, level up effects, slingshot rocks, hit impacts, electricity beams, fireballs, fire bolts, flames, stars for stun effects, and more!
Sound effects for enemies, footsteps, spells, and more!
Textures for the HUD, including high-quality buttons, frames, dynamically-animated spell globes, progress bars, XP bar, and more!
Full animation sets for Aura and all enemies
Much more!
In this course, we will be covering the following topics:
Setting up a Top-Down Project from scratch
Enemy and item selection with outline effects
Proper use of OOP and inheritance to create a character class hierarchy
Intro to the Gameplay Ability System and the core classes that comprise it
Custom Gameplay Ability System Components and Attribute Sets, and how to replicate Attributes
All important settings for all GAS classes and components
How to use Attributes for player stats, including Primary Attributes:
Strength (increases physical damage)
Intelligence (increases magical damage)
Resilience (increases Armor and Armor Penetration)
Vigor (increases Max Health)
Secondary Attributes, based off of primary attributes and other custom variables:
Armor (reduces damage taken, improves Block Chance)
Armor Penetration (ignores percentage of enemy Armor, increases Critical Hit Chance)
Block Chance (change to cut incoming damage in half)
Critical Hit Chance (chance to double damage plus critical hit bonus)
Critical Hit Damage (bonus damage added when a critical hit is scored)
Critical Hit Resistance (reduces critical hit chance of attacking enemies)
Health Regeneration (amount of Health restored every 1 second)
Mana Regeneration (amount of Mana restored every 1 second)
Max Health (maximum amount of Health obtainable)
Max Mana (maximum amount of Mana obtainable)
Vital Attributes - things like Health and Mana, which are dependent on all the other attributes
Gameplay Effects - classes in the GAS system used to apply changes to attributes
Gameplay Tags - an essential part of GAS, which allows us to identify qualities, attributes, abilities, character classes, and any other thing we can imagine
Game UI - how to handle complex UI in an RPG game efficiently, in an organized, modular, and scalable manner. We cover different UI paradigms, from MVC (Model View Controller) and MVVM (Model View ViewModel, using Unreal Engine's new ViewModel feature)
Full Attribute and Spell Menus, with upgrade abilities, spell trees, locked spell levels, spell upgrades by ability level, and more
Attributes - how to use Gameplay Attributes to represent player stats, and incorporate them into the gameplay mechanics by creating an Effect Application pipeline, allowing for calculations and results caused by phenomena in the game, such as combat damage
Gameplay Abilities - the heart of GAS. We create all manner of types of gameplay abilities to handle the casting of spells, handling impo
rtant capabilities of the player character and enemy AI, and how to configure different abilities to suit your needs.
Different RPG Classes - we implement different character RPG classes including the Ranger, Warrior, and Elementalist, and do so in an easily-scalable manner so you can have any number of character class types in your game
Damage and Combat - we implement a full RPG style combat system with different damage types, damage resistances, and debuffs corresponding to damage types, and encode these calculations into our damage pipeline. All attributes, damage types, resistances and debuffs are functional in this game.
All combat mechanics are displayed in some form of visual feedback to the player. This includes floating text for damage, changing color based on custom criteria, floating text to inform of critical hits, blocked hits, and critical blocked hits. We also implement knockback and stun mechanics in response to lightning damage, incapacitating the character/enemy, as well as fire debuffs, where characters are set ablaze and take fire damage while burning.
Enemy AI - We implement the enemy behavior using Unreal Engine Behavior Trees and the Environment Query system (EQS) to provide customized behavior for the Ranged, Warrior, and Elementalist enemy types.
Enemies can cast spells and summon AI minions
Fading geometry when it gets in the way of the camera for a top-down game
Ability Cost and Cooldown (spells spend Attribute resources - in this game, spells cost Mana)
Fully functional HUD with Equipped Spells, displaying spell cooldown timers, and experience (XP)
The ability to assign Abilities to different inputs in the spell menu (assign FireBolt to the 1 key and Electrocute to the Left Mouse Button, swap them back, etc.)
Experience and Level-Up System - We craft an experience system, awarding XP for eliminating enemies, and leveling up when reaching XP thresholds for various abilities. XP and Level are displayed in the HUD, and Level Up messages and effects are as well. Leveling up is associated with gaining Attribute Points and Spell Points, which can be used to upgrade Attributes and Spell abilities in the Attribute and Spell Menus respectively, as well as topping off Health and Mana upon Leveling Up. (Basically, you will see enough examples of how to use this system that you'll be able to expand it with any functionality you want for your own games)
Passive Spells - Spells that you can equip which remain active while they are equipped.
A variety of Offensive Spells, showcasing different examples and features of GAS, including FireBolt, Electrocute, Arcane Shards, and FireBlast.
Saving Progress and Level Transitions
Intermediate/Advanced Unreal Engine topics, including custom Async Tasks, Ability Tasks, Blueprint Function Libraries, Asset Managers, Singletons (and why these are only good for a VERY select few cases), custom Gameplay Effect Contexts, Net Serialization, Struct Ops Type Traits, C++ Lambdas, game mechanics algorithms, and oh, so much more.
This is the most comprehensive Unreal Engine course available.
In this course, we will create a top-down RPG style game, filled with systems architected using Unreal Engine's built-in Gameplay Ability System (GAS). This is where you will learn how to architect a shipped game, and code it expertly so it can be easily expanded, upgraded, and maintained. We follow SOLID coding principles, and balance the Blueprint/C++ ratio in a way that AAA shipped games do, such as Fortnite. My experience with AAA shipped game code, as well as consultations with industry veteran developers has allowed me to reveal to you the way a real shipped game's code base looks like. If you've ever wondered how much of a game can be kept in Blueprint versus C++, look no further. This course is the answer.
The assets in this game project were made specifically for this course, and will be provided in an asset pack. This includes:
Characters, including Aura, the main character, as well as enemy characters including Goblin Warriors, Goblin Rangers, a Goblin Shaman, Red and Black Demons, the Ghoul, and a Shroom.
A modular dungeon pack that can be pieced together to make basic dungeons
A waypoint shrine and obelisks
Particle Niagara System Effects, including explosions, level up effects, slingshot rocks, hit impacts, electricity beams, fireballs, fire bolts, flames, stars for stun effects, and more!
Sound effects for enemies, footsteps, spells, and more!
Textures for the HUD, including high-quality buttons, frames, dynamically-animated spell globes, progress bars, XP bar, and more!
Full animation sets for Aura and all enemies
Much more!
In this course, we will be covering the following topics:
Setting up a Top-Down Project from scratch
Enemy and item selection with outline effects
Proper use of OOP and inheritance to create a character class hierarchy
Intro to the Gameplay Ability System and the core classes that comprise it
Custom Gameplay Ability System Components and Attribute Sets, and how to replicate Attributes
All important settings for all GAS classes and components
How to use Attributes for player stats, including Primary Attributes:
Strength (increases physical damage)
Intelligence (increases magical damage)
Resilience (increases Armor and Armor Penetration)
Vigor (increases Max Health)
Secondary Attributes, based off of primary attributes and other custom variables:
Armor (reduces damage taken, improves Block Chance)
Armor Penetration (ignores percentage of enemy Armor, increases Critical Hit Chance)
Block Chance (change to cut incoming damage in half)
Critical Hit Chance (chance to double damage plus critical hit bonus)
Critical Hit Damage (bonus damage added when a critical hit is scored)
Critical Hit Resistance (reduces critical hit chance of attacking enemies)
Health Regeneration (amount of Health restored every 1 second)
Mana Regeneration (amount of Mana restored every 1 second)
Max Health (maximum amount of Health obtainable)
Max Mana (maximum amount of Mana obtainable)
Vital Attributes - things like Health and Mana, which are dependent on all the other attributes
Gameplay Effects - classes in the GAS system used to apply changes to attributes
Gameplay Tags - an essential part of GAS, which allows us to identify qualities, attributes, abilities, character classes, and any other thing we can imagine
Game UI - how to handle complex UI in an RPG game efficiently, in an organized, modular, and scalable manner. We cover different UI paradigms, from MVC (Model View Controller) and MVVM (Model View ViewModel, using Unreal Engine's new ViewModel feature)
Full Attribute and Spell Menus, with upgrade abilities, spell trees, locked spell levels, spell upgrades by ability level, and more
Attributes - how to use Gameplay Attributes to represent player stats, and incorporate them into the gameplay mechanics by creating an Effect Application pipeline, allowing for calculations and results caused by phenomena in the game, such as combat damage
Gameplay Abilities - the heart of GAS. We create all manner of types of gameplay abilities to handle the casting of spells, handling impo
rtant capabilities of the player character and enemy AI, and how to configure different abilities to suit your needs.
Different RPG Classes - we implement different character RPG classes including the Ranger, Warrior, and Elementalist, and do so in an easily-scalable manner so you can have any number of character class types in your game
Damage and Combat - we implement a full RPG style combat system with different damage types, damage resistances, and debuffs corresponding to damage types, and encode these calculations into our damage pipeline. All attributes, damage types, resistances and debuffs are functional in this game.
All combat mechanics are displayed in some form of visual feedback to the player. This includes floating text for damage, changing color based on custom criteria, floating text to inform of critical hits, blocked hits, and critical blocked hits. We also implement knockback and stun mechanics in response to lightning damage, incapacitating the character/enemy, as well as fire debuffs, where characters are set ablaze and take fire damage while burning.
Enemy AI - We implement the enemy behavior using Unreal Engine Behavior Trees and the Environment Query system (EQS) to provide customized behavior for the Ranged, Warrior, and Elementalist enemy types.
Enemies can cast spells and summon AI minions
Fading geometry when it gets in the way of the camera for a top-down game
Ability Cost and Cooldown (spells spend Attribute resources - in this game, spells cost Mana)
Fully functional HUD with Equipped Spells, displaying spell cooldown timers, and experience (XP)
The ability to assign Abilities to different inputs in the spell menu (assign FireBolt to the 1 key and Electrocute to the Left Mouse Button, swap them back, etc.)
Experience and Level-Up System - We craft an experience system, awarding XP for eliminating enemies, and leveling up when reaching XP thresholds for various abilities. XP and Level are displayed in the HUD, and Level Up messages and effects are as well. Leveling up is associated with gaining Attribute Points and Spell Points, which can be used to upgrade Attributes and Spell abilities in the Attribute and Spell Menus respectively, as well as topping off Health and Mana upon Leveling Up. (Basically, you will see enough examples of how to use this system that you'll be able to expand it with any functionality you want for your own games)
Passive Spells - Spells that you can equip which remain active while they are equipped.
A variety of Offensive Spells, showcasing different examples and features of GAS, including FireBolt, Electrocute, Arcane Shards, and FireBlast.
Saving Progress and Level Transitions
Intermediate/Advanced Unreal Engine topics, including custom Async Tasks, Ability Tasks, Blueprint Function Libraries, Asset Managers, Singletons (and why these are only good for a VERY select few cases), custom Gameplay Effect Contexts, Net Serialization, Struct Ops Type Traits, C++ Lambdas, game mechanics algorithms, and oh, so much more.