We may earn an affiliate commission when you visit our partners.
Course image
Udemy logo

Unreal Engine 5 - Gameplay Ability System - Top Down RPG

Stephen Ulibarri

This is the most comprehensive Unreal Engine course available. If you want to learn how to architect a fully-functional RPG game, this course will give you the ability to do so with an expandable code base, architected with AAA quality code. If you've ever wondered where to draw the line between C++ and Blueprints, this is the course for you. If you've ever wanted to create an RPG complete with a stats system, abilities, leveling up, spells, attributes, menus, all while keeping your code base clean and following best practices, this is the course for you. If you want to step up your Unreal Engine development capabilities and better understand the inner workings of the engine, this course is for you. If you have plans to make your own serious game with interconnecting systems, involving attributes, abilities, level ups, enemies and AI, and coded for multiplayer, this is the course for you.

Read more

This is the most comprehensive Unreal Engine course available. If you want to learn how to architect a fully-functional RPG game, this course will give you the ability to do so with an expandable code base, architected with AAA quality code. If you've ever wondered where to draw the line between C++ and Blueprints, this is the course for you. If you've ever wanted to create an RPG complete with a stats system, abilities, leveling up, spells, attributes, menus, all while keeping your code base clean and following best practices, this is the course for you. If you want to step up your Unreal Engine development capabilities and better understand the inner workings of the engine, this course is for you. If you have plans to make your own serious game with interconnecting systems, involving attributes, abilities, level ups, enemies and AI, and coded for multiplayer, this is the course for you.

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.

NOTE: This course involves programming in C++, which involves the use of an Integrated Development Environment (IDE) such as Visual Studio, Rider, or VSCode. The IDE used in this course by me will be Rider, but this IDE is not a requirement for students to follow the course. You can use any IDE of your choice.

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 important 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.

  • How to choose which functionality should go into C++ versus Blueprint - This is one of the most valuable lessons, and is taught all throughout the course. Students often ask me "which functionality should go in C++ versus in Blueprint?" This course is my answer. This is a serious-scale project foundation with over 100 hours of video, and no filler. The project is architected with approximately 50% Blueprints and 50% C++. I show you which functionality should be on the C++ side, which functionality is more appropriate for Blueprints, and why.

  • SOLID Coding Principles and code architecture - We keep our code base clean in this project. Another question I often get is "Is this best coding practice?" This course is my answer to this question. This is an example of code you would see in a AAA game, shipped to millions of players. Maintaining clean and modular code is essential to a serious game project that needs to be scalable, expandable, modular, maintainable, testable, performant, and efficient. This course will show you how.

This is not a beginner course. I expect you to already understand the C++ programming language and have at least created one Unreal Engine C++ project.

This course is my best course yet, and I'm very proud to bring you the Unreal Engine 5 - Gameplay Ability System - Top Down RPG course, the result of nearly a year of painstaking development, research, consultation with professionals, and asset creation. After taking this course, you will understand Unreal Engine far better than the average developer, and you'll be empowered to create your own well-architected projects, large and small, and you'll bring value to your team, your company, your solo venture, and anyone/anything else you grace with your skillset.

Join the course, and invest in the biggest leap of your game development career.

Stephen Ulibarri, founder of the Druid Mechanics Game Developer Community This course project is created in Unreal Engine version 5.2. Updates are periodically added to ensure compatibility with newer engine versions.

Enroll now

What's inside

Learning objectives

  • Unreal engine's gameplay ability system
  • Multiplayer gameplay mechanics
  • Creation of a full rpg with combat, experience and level ups, enemies, spells, menus, game saving, and much more
  • Solid coding principles and aaa quality code architecture
  • How to determine which code goes in blueprints and which code goes in c++ for optimal performance in a shipped game
  • Scalable, modular, maintainable, and expandable code that can serve as the foundation for any serious game
  • All core features of the gameplay ability system
  • Code debugging tools and practices

Syllabus

Introduction

Welcome to the Unreal Engine 5 - Gameplay Ability System - Top Down RPG course!

We get started by downloading the Startup Project and configuring some settings for our GAS game project.
Read more

We open the Startup Project and configure some settings

We set up our project for version control using Git

We create a base Character class for our game Characters to inherit from

We derive two subclasses from our base Character class: AuraCharacter and AuraEnemy

We create our Character Blueprints and set the mesh assets. We also add a Weapon to the Base Character

We create an Animation Blueprint for Aura and an Animation Blueprint Template for all our Enemies

We create our Input Action for Movement and Input Mapping Context to map input keys

We setup Input in the Player Controller Class

We create a Move callback for our Move Input Action and Bind it in the Player Controller class

We create a Game Mode and assign the Default Pawn and Player Controller Classes

We create an Enemy Interface function that we can use to highlight enemies when hovering over them

We implement the highlight decision process in the Player Controller

We use a Post Process Highlight material to show a red outline of highlighted enemies

Quiz on Section 2

Intro to the Gameplay Ability System

We learn what the Gameplay Ability System is and what it can do for us

We learn about the main parts of GAS in this high-level overview of the Gameplay Ability System

We create the Player State class for Aura

We create the Ability System Component and Attribute Set classes

We learn about how classes work in Multiplayer and what Replication is

We construct the Ability System Component and Attribute Set for the Enemy and for the Player Controlled Character

We learn about the Replication Mode for Ability System Components

We learn how to set the Owner Actor and the Avatar Actor for our Ability System Component

Quiz on Section 3

Attributes

We learn what Attributes are, how they are stored, and how the preferred way to change them is through Gameplay Effects

We add our first Attributes to our Attribute set: Health and Mana

We learn about the Attribute Accessor macros provided by the Ability System

We create an effect actor designed to change attributes

Quiz on Section 4

RPG Game UI

We lay out the plan for our game's UI architecture

We create our base Widget and Widget Controller classes

We create the Globe progress bar, making use of widget inheritance

We derive a Health Globe and Mana Globe widget based on our Globe Progress Bar

We create the HUD class for our project

We make an Overlay Widget Controller for the Overlay widget in our Viewport

We learn how to broadcast initial values from the Widget Controller to the Widgets

We learn how to listen for attribute changes in the Ability System

We create callbacks for mana attribute changes

Quiz on Section 5

Gameplay Effects

We learn what Gameplay Effects are and how they can be used to modify Attributes

We improve our Effect Actor so it is more versatile and can apply gameplay effects

We create an Instant Gameplay Effect and apply it on overlap with our Potions

We learn about Duration Gameplay Effects

We learn the difference between Duration and Infinite Gameplay Effects and those with Periodic behavior

We learn how effects can stack and cover the parameters for stacking

We add an Infinite Gameplay Effect to our Effect Actor

We add an application and removal policy for the effects in our Effect Actor

We learn how we can remove infinite gameplay effects and create a Fire Area.

We learn about PreAttributeChange and how we can use it to clamp Attribute changes

We learn about PostGameplayEffectExecute and the plethora of values we can harvest in it about a Gameplay Effect

We learn how to create Curve Tables so we can scale the value in our Gameplay Effect using a Scalable Float Magnitude Calculation

Quiz on Section 6

Gameplay Tags

We learn what Gameplay Tags are and why they are so useful

We learn how to create Gameplay Tags from within the editor

We learn how to create Data Tables that are converted into Gameplay Tags

Adding Gameplay Tags to Gameplay Effects

We learn how to add Gameplay Tags for Gameplay Effects

We learn how to respond to Gameplay Effect application via the Ability System Component's built-in delegates

We learn how to get all Asset Tags on a Gameplay Effect in C++

We learn how to broadcast a Gameplay Tag Container filled with Asset Tags to the Widget Controller

We learn how to create a Data Table to hold widget information for messages

We create a function for finding Data Table rows corresponding to message Gameplay Tags

We learn how to broadcast data from Data Table rows to Widget Blueprints

We create the message widget for when we add a message tag to a gameplay effect

We animate the message widget

We learn how to replace callback functions to lambdas which we bind to delegates instead

We are challenged to create a Ghost Globe that trails behind the Health and Mana Globes

We learn how to properly clamp attribute changes via PostGameplayEffectExecute

Quiz on Section 7

RPG Attributes

We learn how to initialize Attributes by setting values in a Data Table

We learn how to initialize Attributes with the use of a Gameplay Effect

We learn how to modify an Attribute in a Gameplay Effect with a modifier based on other Attribute values

We learn how the math works behind modifiers and go over several examples

We learn how modifiers can have coefficients to create more complex modifier math

We create the Secondary Attributes for our RPG project

We learn how to derive Attributes from other Attributes, so when the backing Attribute changes, so does the derived Attribute

We learn how Modifier Magnitude Calculations (MMC) can have arbitrarily complex modifiers.

We add Level to our Player State and create the Combat Interface so we can get the Level of an entity in the game

We learn how to create Modifier Magnitude Calculations (MMC) to have arbitrarily complex modifiers.

We initialize the Vital Attributes with a Gameplay Effect

Quiz on Section 8

Attribute Menu

We lay out the Game Plan for our Attribute Menu

We create the Framed Value widget that we can reuse in other widgets

We create a Text Value Row widget that has text as well as a Framed Value

We create the Text Value Button Row widget that makes use of the Named Slot so we can take advantage of widget inheritance

We begin construction of the Attribute Menu widget itself

We make a Button widget that we can reuse in any number of situations

We subclass the Button widget into a Wide Button that looks pretty darn spiffy

We implement functionality for opening the Attribute Menu

We implement functionality for closing the Attribute Menu

We create a plan for displaying the Attribute Data in a well-coded manner

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches students an industry-standard game engine: Unreal Engine 5
Taught by Stephen Ulibarri, who has experience with AAA game development
In-depth course that teaches a core set of skills for game development
Suitable for intermediate to advanced learners, with a pre-requisite of basic knowledge in C++ and Unreal Engine

Save this course

Save Unreal Engine 5 - Gameplay Ability System - Top Down RPG to your list so you can find it easily later:
Save

Activities

Coming soon We're preparing activities for Unreal Engine 5 - Gameplay Ability System - Top Down RPG. These are activities you can do either before, during, or after a course.

Career center

Learners who complete Unreal Engine 5 - Gameplay Ability System - Top Down RPG will develop knowledge and skills that may be useful to these careers:
Game Designer
Game Designers are the masterminds behind the creation of video games. They are responsible for designing the overall gameplay, levels, characters, and story. This course will help you develop the skills and knowledge necessary to become a successful Game Designer. You will learn about the core concepts of game design, such as game mechanics, level design, and character design. You will also learn how to use Unreal Engine, a powerful game development engine, to create your own games.
Game Developer
Game Developers are responsible for bringing video games to life. They work with Game Designers to create the code that makes the game work. This course will help you develop the skills and knowledge necessary to become a successful Game Developer. You will learn about the core concepts of game development, such as programming, computer graphics, and artificial intelligence. You will also learn how to use Unreal Engine, a powerful game development engine, to create your own games.
Gameplay Programmer
Gameplay Programmers are responsible for writing the code that controls the gameplay of video games. They work with Game Designers to create the code that makes the game fun and challenging. This course will help you develop the skills and knowledge necessary to become a successful Gameplay Programmer. You will learn about the core concepts of gameplay programming, such as physics, AI, and collision detection. You will also learn how to use Unreal Engine, a powerful game development engine, to create your own games.
Technical Artist
Technical Artists are responsible for creating the technical assets in video games. They work with Game Designers to create the textures, shaders, and other technical assets that make the game look and feel realistic. This course will help you develop the skills and knowledge necessary to become a successful Technical Artist. You will learn about the core concepts of technical art, such as texture creation, shader creation, and asset optimization. You will also learn how to use Unreal Engine, a powerful game development engine, to create your own technical assets.
Level Designer
Level Designers are responsible for creating the levels in video games. They work with Game Designers to create the overall layout of the level, as well as the placement of objects and enemies. This course will help you develop the skills and knowledge necessary to become a successful Level Designer. You will learn about the core concepts of level design, such as level layout, object placement, and enemy placement. You will also learn how to use Unreal Engine, a powerful game development engine, to create your own levels.
Character Artist
Character Artists are responsible for creating the characters in video games. They work with Game Designers to create the look and feel of the characters, as well as their animations. This course will help you develop the skills and knowledge necessary to become a successful Character Artist. You will learn about the core concepts of character art, such as character modeling, character rigging, and character animation. You will also learn how to use Unreal Engine, a powerful game development engine, to create your own characters.
Quality Assurance Tester
Quality Assurance Testers are responsible for testing video games to ensure that they are free of bugs and defects. They work with Game Designers and Developers to find and fix any problems with the game. This course will help you develop the skills and knowledge necessary to become a successful Quality Assurance Tester. You will learn about the core concepts of quality assurance testing, such as test planning, test execution, and bug reporting. You will also learn how to use Unreal Engine, a powerful game development engine, to test your own games.
Audio Designer
Audio Designers are responsible for creating the sound effects and music in video games. They work with Game Designers to create the overall sound environment of the game, as well as the sound effects for specific events. This course will help you develop the skills and knowledge necessary to become a successful Audio Designer. You will learn about the core concepts of audio design, such as sound effects creation, music creation, and sound mixing. You will also learn how to use Unreal Engine, a powerful game development engine, to create your own audio assets.
Data Analyst
Data Analysts are responsible for collecting, analyzing, and interpreting data. They work with businesses to help them make informed decisions. This course may be useful for Data Analysts who want to learn more about the field of game development. You will learn about the core concepts of game development, such as game mechanics, level design, and character design. You will also learn how to use Unreal Engine, a powerful game development engine, to create your own games.
Game Writer
Game Writers are responsible for writing the story and dialogue for video games. They work with Game Designers to create a story that is both engaging and immersive. This course may be useful for Game Writers who want to learn more about the field of game development. You will learn about the core concepts of game development, such as game mechanics, level design, and character design. You will also learn how to use Unreal Engine, a powerful game development engine, to create your own games.
User Experience Designer
User Experience Designers are responsible for designing the user interface and user experience of video games. They work with Game Designers to create a user interface that is both easy to use and visually appealing. This course may be useful for User Experience Designers who want to learn more about the field of game development. You will learn about the core concepts of game development, such as game mechanics, level design, and character design. You will also learn how to use Unreal Engine, a powerful game development engine, to create your own games.
Computer Programmer
Computer Programmers are responsible for writing the code that makes software systems work. They work with Software Engineers to help them design, develop, and maintain software systems. This course may be useful for Computer Programmers who want to learn more about the field of game development. You will learn about the core concepts of game development, such as game mechanics, level design, and character design. You will also learn how to use Unreal Engine, a powerful game development engine, to create your own games.
Software Engineer
Software Engineers are responsible for designing, developing, and maintaining software systems. They work with businesses to help them solve their business problems. This course may be useful for Software Engineers who want to learn more about the field of game development. You will learn about the core concepts of game development, such as game mechanics, level design, and character design. You will also learn how to use Unreal Engine, a powerful game development engine, to create your own games.
Game Producer
Game Producers are responsible for managing the development and production of video games. They work with Game Designers, Developers, and other team members to ensure that the game is completed on time and within budget. This course may be useful for Game Producers who want to learn more about the field of game development. You will learn about the core concepts of game development, such as game mechanics, level design, and character design. You will also learn how to use Unreal Engine, a powerful game development engine, to create your own games.
Project Manager
Project Managers are responsible for planning, organizing, and managing projects. They work with teams to help them achieve their goals. This course may be useful for Project Managers who want to learn more about the field of game development. You will learn about the core concepts of game development, such as game mechanics, level design, and character design. You will also learn how to use Unreal Engine, a powerful game development engine, to create your own games.

Reading list

We've selected six books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Unreal Engine 5 - Gameplay Ability System - Top Down RPG.
Provides a deeper understanding of game engine architecture and design patterns, complementing the course's exploration of the Gameplay Ability System.
Enhances the course's focus on level design and environmental storytelling through a comprehensive exploration of level design principles.
Good choice for people who want to learn more about the design patterns used in game programming. This book can help you to write more efficient and maintainable code.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Unreal Engine 5 - Gameplay Ability System - Top Down RPG.
Unreal Engine 5: The Complete Beginner's Course
Most relevant
The Ultimate Unreal Engine 2D Game Development Course
Most relevant
Unreal Engine 5 Blueprints - The Ultimate Developer Course
Make a 2D Action Platformer in Unreal Engine 5
Unreal Engine Blueprint Game Developer
Unreal Engine 5 C++ Developer: Learn C++ & Make Video...
Unreal Engine 4 Blueprints - The Ultimate Developer Course
Unreal Engine 5.2 : Exploring Lyra for Game Development
C++ Class Development
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser