
Build a complete mobile multiplayer game in unreal engine using the gameplay ability system, with level-driven abilities, a dedicated aws server, and an integrated inventory and shop.
Install the epic games launcher and unreal engine 5.4.2, then install visual studio community edition and configure workloads (net desktop, desktop C++, game development) plus the Windows 10 SDK.
Create a clean Unreal project in the editor (version 5.4.2), generate the Visual Studio solution, and configure the IDE with console access, a minimal layout, fonts, and optional Vim navigation.
Set up source control with git and GitHub for your Unreal Engine project, initialize a repo, configure ignores for Unreal Engine, commit changes, and push to a remote repository.
Import crunch assets and set up base classes in Unreal: create game mode base, player controller, and character, then blueprint them and configure the default game mode and pawn.
Add a camera boom and view camera to the player character, attach to root, set arm length to 800, and disable mesh collisions to view from behind.
Set up the jump input in Unreal using GAS and enhanced input, creating a jump action, mapping it to the spacebar, and triggering on press.
Add and wire a look input action in Unreal using enhanced input, read a 2D mouse vector to drive yaw and pitch, and configure the camera to use controller rotation.
Configure a 2D move input action with the enhanced input component, normalize input, and drive movement using the camera's forward and right directions with rotation to movement.
Configure the crunch character with an animation blueprint for crunch skeleton, test the idle animation, and implement a c++ animation instance to drive state from the owner and movement component.
Query the owner character's velocity to derive speed. Expose it blueprint-callable and thread-safe to drive ground locomotion with idle and jogging states using sync markers and a sync group.
Add a dog stop state to ground locomotion, refine transitions to stop and back, and implement a blend space with two accesses for leaning driven by smoothed yaw speed.
Define jumping logic in the animation blueprint using is jumping and is on ground, and set up locomotion, jump, and recovery states with local space additive and IK foot planting.
Add a look offset using an additive blend space with yaw and pitch axes, fed into the animation blueprint, and compute the look rotation from the camera versus body rotation.
Master foot planting with a control rig in Unreal, using line traces and IK to place feet on surfaces and adjust pelvis. Implement in animation blueprint to drive leg movement.
Blend foot and pelvis positions with a smoothed offset via interpolation, compute left and right foot z offsets, and apply these as global transforms to the IK feet.
Add a partial body IK across the pelvis to both legs with the root pinned to input and ankle end effectors for precise foot planting.
Enable the gameplay ability system plugin, create the ability system component and attribute set, and wire them with the ability system interface to drive abilities and attributes in Unreal Engine.
Add health and mana attributes to the attribute set, explain base versus current values, and demonstrate attribute accessors and macros to auto-generate getters and setters.
Learn how gameplay effects modify attribute sets via the ability system component, using instant, infinite, or duration-based options, modifiers, curve tables, and applying initial effects with specs.
Set up a server authoritative multiplayer flow in Unreal with GAS and AWS dedicated servers, implementing server-side init and client-side init and ensuring initial effects apply only on the server.
Apply the g init effect to set max health and max mana via ability system component, then top up health and mana with an attribute-based gameplay effect for multiplayer replication.
Create a value gauge widget by extending the user widget, adding a progress bar and value text, with set value and pre construct to customize color via UMG and Slate.
Learn to build a widget blueprint value gauge in unreal, wiring a progress bar and value text, configuring a canvas panel, sizing, and colors for health and mana bars.
Create a client-side gameplay widget with health and mana bars, spawn it from the gameplay widget class in the player controller, and add it to the viewport for the UI.
Display health and mana bars in the gameplay widget. Query GAS attribute values via the ability system component and update the UI with health, max health, mana, and max mana.
Implement an overhead status gauge to display other players' health and mana above their heads in Unreal with gas, using a C++ widget, blueprint, and world-space widget component.
hide the health bar and mana bar for the locally controlled character using a local player check and is locally controlled by player across server and clients.
Configure a periodical visibility update for overhead stat gauges using a timer, distance squared checks, and a local player to hide UI elements beyond a range.
Build a base gameplay ability class and a combo ability; override activate ability, use commit ability to check cooldown and mana. Grant initial abilities via the ability system component.
Implement and play a combo animation by adding a montage task to a gameplay ability, handle server authority and prediction for multiplayer, and test with blueprint GA combo crunch.
Learn to prevent rapid combo activations in Unreal Engine with gameplay tags by marking abilities with a combo tag and blocking duplicates, using Blueprint and C++ implementations.
Learn to blend the upper body during a combo montage while running, using layer blend per bone and slots to enable full body when standing still.
Use an enum to represent input ids for abilities in Unreal Engine with GAS, bridging enhanced input and the ability system component to trigger the basic attack.
Bind input actions to GAS abilities in C++ using a tmap of input IDs. Handle pressed and released events with the enhanced input system and test with basic attack.
Create an animation notify to send a gameplay event signaling next combo during a montage. Use gameplay tags and the ability system component to drive the next combo at runtime.
Learn to handle combo change events in Unreal's GAS using a wait gameplay event task and gameplay tags to determine the next combo and end tag behavior during multiplayer play.
Implement input listening within the combo ability class to transition to the next combo. Use an ability task wait input press, re-listen after each trigger, and set next montage section.
Learn a frame-rate independent melee damage approach by sweeping through predefined arm positions, using sockets to map the swing arc and capture hit direction and impact details.
Create an animation notify to send sweep location data for a tracing mechanic, gathering socket locations into start and end points and emitting a gameplay event via the ability system.
Coordinate a damage animation notify to send target data via a target group, using left up, center, and right down sockets to drive two sweeps along the punch arc.
Learn to implement sweep-based targeting in the CGameplayAbility class on the server, processing animation notify data, and deriving hit results from a sphere sweep for damage and visuals.
Finalize damage application by preventing duplicate hits across multiple sweeps and map each combo to a specific damage effect, retrieving and applying it via gameplay effect specs.
clamp health and mana values in the unreal gas attribute set to stay within 0 and max health and max mana, using pre attribute change and post gameplay effect execute.
Add punch VFX and hit cues in Unreal: place particle jets at the exhaust sockets, and trigger a static gameplay cue for cosmetic damage effects.
Spawn a hit vfx at the exact hit location using the sweep hit result, converting the hit normal to a rotation, and apply it via a gameplay effect context.
Add camera shake and hit reaction animation using gameplay cues and cosmetic slots on a dedicated server, with montage-based hit reaction to boost realism.
Implement a durational death state in unreal using gas and aws dedicated servers. Apply a five-second harsh duration gameplay effect that grants a dead tag and auto respawns.
Implement the death sequence by playing a death montage, disabling the status gauge, movement, and collision, and overriding input handling and respawn hooks for seamless respawn in Unreal with GAS.
Implement respawn by reversing death: re-enable collision, restore health and mana via gameplay effects, stop death montages, and ensure server-authoritative status with a plan for ragdoll after death.
Enable ragdoll after the death montage finishes by timing the animation, detaching the mesh, and enabling physics and collision, then reset on respawn for seamless multiplayer death handling.
Refine ragdoll physics in Unreal by adjusting the physics asset with capsules, adding constraints, setting angular limits, and stabilizing the arms and legs for a believable fall.
Import level asset into content folder and open maps/game level to preview environment. Disable lumen global illumination to boost fps while testing two-player gameplay and planning spawns and teams.
Add a generic team agent interface on the player controller and character, with a replicated team ID to distinguish friendly, neutral, and hostile teams.
assigns temporary team ids on spawn to support testing; overrides game mode spawn logic to place players on team based start spots using player start tags.
Respawn a player at their designated start spot on the server by using the controller’s start spot, validating with authority, setting the actor transform, and testing for collision-free spawns.
Learn to prevent damage to friendly characters by using the Gameplay Ability System, team interfaces, and team attitudes to filter hits and distinguish friends from enemies in Unreal multiplayer.
Add an AI controller with a perception component and sight config to detect enemies, set radius and max age, enable 180-degree vision, and assign a generic team ID for testing.
Add a behavior tree and a blackboard to the AI system, then update the blackboard target via the perception updates so the behavior tree drives the AI's actions.
Implement the AI forgetting routine for the perception system by clearing the blackboard when a target is forgotten, selecting the next perceived actor, and ensuring robust handling of multiple targets.
Configure ai perception by turning off auto registration and adding a perception stimuli source component to selectively enable sight for specific pawns, then test with multiple players.
Learn how to make ai forget dead targets by toggling perception stimuli source, checking for a dead tag, and setting stimulus age to maximum in ai perception component.
Explore the basics of behavior trees for ai behavior, including root nodes, compositors, selectors, sequencers, tasks, and decorators, and their success, failure, and in progress states.
Implement chasing AI with a behavior tree: move to the target via blackboard key, navigate with a navmesh, rotate to face the target, and plan an attack task next.
Create a reusable behavior tree task that signals the ability system to press a specific input ID, enabling AI to execute attacks via the ability system and animation blueprint.
Add paragon minion assets, swap the skeletal mesh, and author a custom animation blueprint with layered upper and lower body; drive movement and damage via notifiers.
Create the minion melee combo by building a gameplay ability blueprint, designing an animation montage with slots and notifies, and wiring a default damage effect for ongoing combat.
Implement a configurable minion hit vfx via a base gameplay cue and inheritance. Tune minion health, mana, and speed, and enable ai pooling to avoid memory fragmentation.
Disable AI perception and sensors when dead, clear the blackboard, and toggle senses; stop and restart the behavior tree and cancel all abilities via the ability system, preventing post-death effects.
Learn how to implement team-based minion skins in Unreal using GAS and replicated team IDs, including a skin map, minion class parent refactor, and server–client considerations for spawning.
Create a minion barrack class to manage minion spawning and pooling, define a spawn spots system, and implement server-side spawning with a minion pool to reuse dead minions.
Learn to implement a server-authoritative, periodic minion spawning system in Unreal using a timer, pooling logic, and group spawns that revive and manage minions.
Learn to assign AI minions a goal at the center of the field using a behavior tree and blackboard in Unreal with GAS, wiring the goal key and spawn logic.
Enhance minion AI by restarting the behavior tree when the target changes, using a blackboard decorator to cancel move to goal and trigger immediate attack when the AI sees you.
Refine the ragdoll logic and refactor the minion class to prevent mid-process collapses by gating ragdoll physics behind the death state and server authority.
Adjust the minion health bar by tuning the value gauge's font, visibility, and size, and expand AI perception range for better sight in a multiplayer Unreal GAS AWS setup.
Create an uppercut gameplay ability in GAS, play the upper cut montage to launch and stun enemies, apply damage, and bind the ability to input one.
Learn to implement uppercut targeting in Unreal with GAS: set up gameplay tags and wait for launch event using an ability task, sweep for targets, and visualize with debug spheres.
Implement a passive launch ability in Unreal gas, triggering on the server to launch targets and the caster using a configurable velocity carried by gameplay event data.
Implement uppercut damage with a launch damage effect, add a three second stun and mana cost, and establish cooldown tagging for the dedicated server.
Add stun behavior in Unreal with GAS by updating the stun tag, disabling input, and playing a stun montage, with on stun and on recover hooks for player and AI.
Add stun and dash animations for minions and crunch characters by importing FBX files, configuring animation montages, skeletons, and slots, and testing in engine to enable seamless combat flows.
Learn to extend uppercut sequences by adding combo montages, configuring sections and tags, and handling gameplay events to chain airborne hits in Unreal with GAS.
Listen for the basic attack input to signal the uppercut, preventing premature combos; implement client server event signaling via gameplay events and a server RPC to synchronize input.
Adapt the GA combo to the upper cut, swap montages, and trigger cross‑client damage with an ability task, then tune the hold speed to keep enemies in the air.
Define for each uppercut combo the gameplay effect and the push velocity. Bundle them into a map from combo name to a structure using Unreal GAS and blueprint types.
Add uppercut visual effects in Unreal with fist-attached fire and 3D trail, then add a UI indicator above the health bar for cooldown and cost.
Create an ability gauge UI for the uppercut in Unreal engine, building a widget with icon, cooldown and cost text, using a UI texture, clock material, and blueprint setup.
Implement a getter for the ability system component to retrieve the avatar’s unique abilities and configure the gameplay widget to spawn ability gauges, via cast or plumbing approaches.
Learn to display hero abilities with an ability list view, spawn corresponding gauges, and implement a child list view class using the user object list entry interface to render entries.
Learn to decouple the user interface from gameplay by storing ability icons in a data table, retrieving them via a widget data structure, and loading textures with soft object pointers.
Populate the ability gauge by retrieving cooldown and cost values from the gameplay ability using its class default object and static ability system statics to compute and display the numbers.
Learn to implement a cooldown countdown for an ability gauge using gas, including listening for ability committed, computing remaining time, and updating a timer-driven display with formatting.
Demonstrate a countdown radial shading for an Unreal ability icon using a scalar percent parameter, texture coordinates, and a rotator, updated by cooldown logic.
Create a ground blast ability using the gameplay ability base, enable targeting to pick an area, play the casting montage, then commit and launch targets.
Enable body rotation with the camera during aiming by adding an aiming tag, updating activation behavior, and swapping control rotation settings to support aiming.
Implement aiming animations in Unreal using GAS and animation blueprints, tracking tag changes to toggle is aiming, and drive a velocity-based blend space for forward and right movement.
Shift the camera during aiming by lerping a local offset to an aim offset, fix left-right drift by negating the dot product, and add a timer-driven aim state hook.
Spawn a ground pick target actor using the GAS target data task to wait for player confirmation or cancellation, with left-click confirm and right-click cancel.
Enable ticking to update the target actor to the player's view with a 2000 unit trace, including ground fallback, and define custom trace channels target and spring arm.
Use a target actor to report targets within a configurable circle radius via sphere overlap, filter enemies with the team interface, and create GAS target data to trigger ground blast.
Visualize targeting range in Unreal with GAS by toggling a debug sphere, configuring the target area radius and trace range, and applying a gameplay effect to damage targets.
Push targets with velocity and carry hit location through target data for ground blast visuals. Trigger a ground blast gameplay cue with location, vfx size, and camera shake.
Add a ground decal to the ground pig actor by creating and attaching a decal component, syncing its size to the target radius, and using a circular gradient material.
Wraps up the ground blast by implementing cast and targeting montages, animation instances, cooldown and cost, and authority checks, while outlining attribute driven health, mana, and level from experience.
This course walks you through the complete process of building a competitive 5v5 multiplayer game using Unreal Engine, the Gameplay Ability System (GAS), and AWS for cloud deployment. You'll learn to implement core gameplay mechanics in C++, design scalable systems with a modular architecture, and deploy dedicated servers using Docker and AWS—allowing players to connect and play from anywhere in the world.
By the end of the course, you'll have a fully functional MOBA-style game with:
User login and account system
Lobby creation and matchmaking
Character selection
A complete game loop
Dedicated server deployment on AWS
The course starts with implementing the basic character components, enhanced input system and movement control. A proper IK foot will also be implemented with Control Rig. The Gameplay Ability Systems will then be utilized to implement the character attributes and abilities, ensuring multiplayer support from the beginning, and tested throughout the course. The abilities can be learned, upgraded, and their effects are level driven. The ability system also uses attribute driven algorithms to determine character health, regeneration, and many other character properties, following industry standard implementations.
Two fully playable player characters with a total of twelve abilities will be implemented in the game, a melee combo, a ranged attack, four abilities for each of the player characters, and two shared passive abilities. With GAS and a flexible OOP approach, the game can be scaled up with more players with ease.
A comprehensive AI driven minion is also implemented with the AI module of Unreal Engine. The AI has proper team id configuration, perception and forgetting routine, and can be reused for other types of games.
A Completed inventory and shop system that is fully compatible with the Gameplay Ability is also implemented. The systems support multiplayer, using server authoritative approach, and support item stacking, consumption, granting abilities, and combinations. A combination widget will be implemented to show the entire combination tree of any selected item in the shop.
Each of the components of the Game has complete UI implementation and a sophisticated animation blueprint will also be built to ensure the rich visuals of the gameplay.
There are many other systems that are created in the course, explore the course curriculum for a full breakdown of each system covered.
The course primarily uses C++ to implement the gameplay mechanics. With a modular approach, many systems are decoupled and can be repurposed for different types of games.