
Explore the Unreal gameplay ability system and how to port its core components: abilities, tasks, attributes, and effects to Unity. Understand gameplay effects, stacking, duration, requirements, and gameplay cues.
Explore the Unity ability system architecture by unifying effects and abilities in one assembly, detailing effect controllers, stat modifiers, persistent and stackable effects, and projectile mechanics.
Explore how gameplay effects modifiers use a node graph with a variable formula to scale by level and stats, and why scriptable objects enable serialization and differentiate damage modifiers.
Fix shared scriptural object values by implementing a calculate value function that takes a game object, enabling dynamic ability effects via node graph leaves.
Define a gameplay effect and its modifier definitions, compute health and stat modifiers (including damage and critical hits), and apply these modifiers through the gameplay effect controller.
Create a custom gameplay effect editor using Unity's UI toolkit to manage modifiers, with a context menu for selecting effects, binding paths to serialized properties, and scriptable objects.
Unity build test scaffolding for the gameplay effect system with prefabs and a gameplay effect controller, then validate a health modifier lowers the player's health from 100 to 90.
Define a gameplay persistent effect with finite or infinite duration using a duration formula that scales with ability level and player stats, managed as an active effect with stat modifiers.
Use the unity test attribute to validate gameplay persistent effects, increasing intelligence by three (one to four) and asserting reversion to one after a two-unit duration.
Define starting effect definitions and initialise events in the Unity ability system, create a custom effect type attribute, and apply starting effects after initialisation.
Develop and test a starting effects workflow by adding an infinite dexterity modifier of magnitude three to the player's starting effects and verifying the result.
Explore the Unity ability system by defining abstract ability classes, creating passive ability definitions, and applying gameplay effects through an effect controller and attribute-driven instance creation.
Create a startup test to verify that passive abilities apply correctly, using a persistent effect with a wisdom stat modifier and an ability controller to drive the test.
Learn to implement active abilities in the Unity ability system by building active and single target ability definitions, enabling asset menus, and wiring casting with try activate ability logic.
Define and test an active ability in the Unity ability system by creating a single-target damage ability that reduces enemy health from 100 to 95, verified by a passing test.
Tie abilities to animations by defining an animation name and an activated ability event, then cast a single-target shock ability with gameplay effects.
Describe implementing ability costs with a private cost gameplay effect and a public cost property, then use can activate and can apply attribute modifiers checks to validate manna.
this lecture creates an ability with cost, applies a cost effect, updates the player's state comptroller and menace attribute, and validates success and failure with tests.
Introduce granted tags and a tag controller in the Unity ability system, backed by a tag count map, add and remove events, and contains logic for requirements.
Test granted tags in Unity's ability system by applying a gameplay persistent effect with a test tag to the tank and validating removal after a one-second duration.
Implement ability cooldowns by defining a cooldown variable, applying a gameplay persistent effect via the ability controller, and validating cooldown state in can activate ability to enforce granted tags.
test the cooldown function for an ability with cooldown, using a gameplay persistent effect and two-second duration, verifying activation is blocked during cooldown and enabled after.
Learn to implement special effects in Unity by adding a visual effect mono behavior that plays and stops a particle system, handles looping, and triggers a finished event.
Create a heal ability for a Unity ability system, including cool down and cost effects, health modifier, node graphs, cast animation with heal particles activated by the W key.
Introduce periodic gameplay effects by defining a boolean is periodic and a period field with remaining period tracking, plus editor visuals and callbacks to execute the effect when period elapses.
Validate periodic gameplay effects with tests in Unity. Model a health modifier with periodic one second effects and infinite duration, and verify health changes from 100 to 95 after period.
Implement a regeneration ability in unity with periodic healing, health and mana modifiers, cooldowns, and a looping special effect activated by the e key to heal one health per second.
Introduce stackable gameplay effects with a gameplay stackable effect definition inheriting from the gameplay persistent effect, featuring an overflow effects list, a default stack limit of three, and stacking policies.
Learn to implement a poison ability in Unity's ability system, displaying one status at a time with a timer-driven cycle, cooldown, mana cost, and a 10-second health drain.
activate malediction to apply a stackable zombified status through a gameplay effect with a 12-second cooldown and a 10-point cost, turning healing into damage while zombified.
Introduce ability levels with a max level and a level property in the ability class, including a public getter, a clamped setter, and a level changed event.
Introduce ability points as a currency to raise ability levels, implement a player ability controller with an event-driven UI update, and handle level changes and save-load interactions in Unity.
Write tests for ability points by wiring the player with an ability controller and level controller. Increase experience by 100 to level up and verify points reach three.
Develop a runtime ui toolkit for Unity abilities by building an ability ui document with slots, icon, content, title, level, and an increment button, using resources for styles.
Design and implement an abilities UI to display and manage player abilities, using a UI document, panels, headers, and a content list, with ability points, max level, and increment controls.
Write and run Unity tests for the abilities UI, creating prefabs and a test class, simulating increment button clicks to validate ability points, levels, and UI updates.
Build an interactive ability tooltip in unity by creating a UI tooltip with the UI Builder, wiring a tooltip element, and updating its title, description, and icon on mouse hover.
Build and view gameplay effects with a custom editor that includes a description field bound to serialized objects, and display tool tip information for abilities, cooldowns, costs, and modifiers.
Integrate a save system with the ability system to persist ability levels and points across play sessions, using serialized data and loading logic for the ability user interface.
Develop and fire projectiles using a weapon behavior with a collider and rigid body. Use an object pool to spawn projectiles, handle collisions, and apply hit effects.
Create a cleanse ability that removes active effects by a specified tag, such as poison, by iterating effects and applying cool down duration, cost, and visuals in Unity.
Create a shield aura with a granted immunity tag to grant damage immunity, implement persistent cooldown and mana cost, and visualize the shield while testing damage block on fireball hits.
Learn to implement conditional effects in the Unity ability system by creating and binding conditional effect fields and building an inspector GUI for a burning fireball.
Explore the Unity ability system by implementing application must be present and absent tags, managing burning status, and executing combustion to consume burn and deal damage.
This lecture defines uninhibited effects using must-be-present and must-be-absent tags, serialized tag lists, and an is_inhibited flag, then demonstrates frost armor altering magical damage when the burning tag is present.
Create persist and must-be-present and must-be-absent tag logic for a frost aura in the Unity ability system, wire tag add/remove events, and implement editor-driven effects, cooldowns, and visuals.
In this course, we will implement an ability system in Unity.
Unlike the Unreal Engine, Unity does not have an ability system package.
Who is this course for?
This is an advanced course designed for those who already have a fundamental grasp of Unity, and want to learn how to implement an ability system using SOLID design principles.
Are there any course requirements?
A solid understanding of C#
Previous experience using Unity
Previously taken the stat system course
What you will learn:
How to implement ability costs
How to implement ability cooldowns
How to implement healing abilities
How to implement passive abilities
How to implement status effects
How to create ability buffs
How to create ability de-buffs
How to build a user interface to view ability data using the Unity's UI Toolkit
How to scale ability effects off of the player’s stats
How to level up abilities and scale their effects based on the ability level
How to save changes to the ability system components
How to create custom editors using Unity’s UI Toolkit
How to create custom controls using Unity's UI Toolkit
How to write Play Mode tests
How to use C# assembly definitions
How to work with Unity’s GraphView API
How to work with ParticleSystems
If all this sounds appealing to you, please join me, and I’ll see you inside the course.