Multiplayer In Unreal With Gas And Aws Dedicated Servers
Published 6/2025
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 46.61 GB | Duration: 62h 28m
Published 6/2025
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 46.61 GB | Duration: 62h 28m
Create a MOBA Game with Unreal Engine Gameplay Ability System and Build the Dedicated Server infrastructure with AWS
What you'll learn
Create Multiplayer Game in Unreal Engine
Use the Gameplay Ability System
Build and Deploy Unreal Engine Dedicated Servers
Host Unreal Engine Dedicated Servers on AWS
Make a Comprehensive Inventory and Shop System
AI Perception and Behavior in Unreal Engine
Epic Online Service
Requirements
Basic Understanding of Unreal Engine
Basic Understanding of C++
Description
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 systemLobby creation and matchmakingCharacter selectionA complete game loopDedicated server deployment on AWSThe 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.
Overview
Section 1: Introduction
Lecture 1 01 Introduction
Section 2: Basic Character Movement Control and Animations
Lecture 2 02 Install Unreal Engine and Visual Studio
Lecture 3 03 Create the Project and Configure Visual Studio
Lecture 4 04 Setup Source Control with Git and GitHub
Lecture 5 05 Setup the Base Class
Lecture 6 06 Add the Basic Components of the Player Character
Lecture 7 07 Add the Jump Input Action
Lecture 8 08 Add the Look Input Action
Lecture 9 09 Add the Move Input Action
Lecture 10 10 Create the Animation Instance
Lecture 11 11 Add the Speed Attribute to Drive Ground Locomotion
Lecture 12 12 Add Jog Stop and Leaning
Lecture 13 13 Add the Jumping Animations
Lecture 14 14 Add Look Offset
Lecture 15 15 Add Foot Tracing
Lecture 16 16 Offset the Joints
Lecture 17 17 Add Foot IK
Section 3: Integrate Gameplay Ability System to the Character
Lecture 18 18 Add the Ability System Component
Lecture 19 19 Add the Health and Mana Attribute to the Attribute Set
Lecture 20 20 What is a Gameplay Effect and How to Apply Them
Lecture 21 21 Setup the Server Client Call Chain
Lecture 22 22 Apply the Gameplay Effects and Replicate the Attributes
Section 4: Setup Basic UI Widgets
Lecture 23 23 Add the Value Gauge Widget Class
Lecture 24 24 Add the Value Gauge Widget Blueprint
Lecture 25 25 Add the Gameplay Widget Blueprint
Lecture 26 26 Update the Health and Mana In the Gameplay Widget
Lecture 27 27 Add the Over Head Status Gauge
Lecture 28 28 Make the Over Head Widget Display Hidden for Local Player Character
Lecture 29 29 Setup the Visibility Control of the Overhead Stat Gauge
Section 5: Implement the Combo Gameplay Ability
Lecture 30 30 Add the Base Ability Class and the Combo Ability
Lecture 31 31 Add the Animation Montage Play for the Combo Ability
Lecture 32 32 Prevent the Combo From Firing By Using Gameplay Tags
Lecture 33 33 Play the Combo Montage on the Upper Body
Lecture 34 34 Use an Enum to Represent the Input ID for Given Abilities
Lecture 35 35 Add Input Action Binding for Abilities in the Player Character Class
Lecture 36 36 Create the Send Gameplay Event Animation Notify
Lecture 37 37 Handle the Combo Change Event in the Combo Ability
Lecture 38 38 Handle the Combo Transition in the Combo Ability Class
Lecture 39 39 Basic Idea of the Melee Target Direction
Lecture 40 40 Create the Animation Notify to Send Sweep Location Data in a Gameplay Event
Lecture 41 41 Define the Target Sockets and Configure the Target Notifies
Lecture 42 42 Implement the Sweep in the CGameplay Ability Class
Lecture 43 43 Add and Apply the Damage Effects
Lecture 44 44 Clamp the Attributes
Lecture 45 45 Add Punch VFX and Gameplay Cue
Lecture 46 46 Spawn Hit VFX with Gameplay Cue
Lecture 47 47 Add Camera Shake and Hit Reaction Animation
Section 6: Setup Death, Respawn and Teams
Lecture 48 48 Add Death Signal With durational Gameplay Effect and Death Tag
Lecture 49 49 Implement the Death Sequence
Lecture 50 50 Implement the Respawn
Lecture 51 51 Enable Ragdoll When Dead
Lecture 52 52 Refine the Ragdoll Physics
Lecture 53 53 Import Our Game Level
Lecture 54 54 Add the TeamID to the Player Controller and Player Character
Lecture 55 55 Initialize Team ID and Start Spot for Players
Lecture 56 56 Respawn Player Character At Their Start Spot
Lecture 57 57 Prevent Player From Damaging Firendly Characters
Section 7: Create the Minions with AI Perception and Behavior
Lecture 58 58 Add AI and Configure the AI TeamID and Sight Perception
Lecture 59 59 Add the Behavior Tree and Blackboard to the AI and Update the Target
Lecture 60 60 Implement the AI Forgetting to Update the Blackboard Target
Lecture 61 61 Use the AI Stimuli Source to Control AI Perception
Lecture 62 62 Make The AI Forget Dead Targets Immediately
Lecture 63 63 Basic Concept of an AI Behavior
Lecture 64 64 Implement the Chasing AI Behavior
Lecture 65 65 Make the AI Attack
Lecture 66 66 Add the Minion Assets and Configure the Animation Blueprint
Lecture 67 67 Create the Melee Combo Ability and Montage for the Minion
Lecture 68 68 Refine the Minion Health and add Damage VFX
Lecture 69 69 Implement the Death and Respawn of the AI Behavior and Perception
Lecture 70 70 Change the Skin Based on the TeamID
Lecture 71 71 Create the Minion Barrack Class and Implement Basic Minion Spawning
Lecture 72 72 Create the Peoridic Spawning of Minions
Lecture 73 73 Give a Goal to the Minions
Lecture 74 74 Improve the Behavior of the Minions
Lecture 75 75 Rfine the Ragdoll Logic and Refactor the Minion Class
Lecture 76 76 Adjust the Heath Bar Display of the Minion
Section 8: The Upper Cut Ability
Lecture 77 77 Add the Upper Cut Ability and Key Binding
Lecture 78 78 Add the Upper Cut Targetting
Lecture 79 79 Add and Trigger the Passive Launch Ability
Lecture 80 80 Add Damage Cooldown Cost and Stun Effect to Upper Cut
Lecture 81 81 Add the Stun Behavior
Lecture 82 82 Add the Stun Animations
Lecture 83 83 Add the Combo Montages
Lecture 84 84 Listen for Basic Attack Input in Upper Cut
Lecture 85 85 Add the Upper Cut Combo Damage and Air Hold
Lecture 86 86 Refine the Upper Cut Combo Damage and Push Effect
Lecture 87 87 Add Upper Cut VFX
Section 9: Implement the Ability Gauge Widget
Lecture 88 88 Create the Ability Gauge Class
Lecture 89 89 Pass The Abilities from the ASC To The GameplayWidget
Lecture 90 90 Add the Ability List View
Lecture 91 91 Use Data Table to Store Ability Icon
Lecture 92 92 Get and Display the Cooldown and Cost Values
Lecture 93 93 Implement the Countdown Logic
Lecture 94 94 Add the Count Down Radial Shading
Section 10: The Ground Blast Ability
Lecture 95 95 Add the Ground Blast Ability
Lecture 96 96 Using an Aimming Tag to Alter the Body Rotation Control
Lecture 97 97 Add the Aimming Animations
Lecture 98 98 Add the Aim Camera Lerp
Lecture 99 99 Add and Spawn the Ground Pick Target Actor
Lecture 100 100 Update the Targeting Location to the Player View and Add Trace Channels
Lecture 101 101 Find Targets With our Target Actor
Lecture 102 102 Apply Damge to Targets
Lecture 103 103 Add VFX to Ground Blast
Lecture 104 104 Add the Decal to Ground Pick Actor
Lecture 105 105 Wrap up the Ground Blast Ability
Section 11: Character Level, Stats and Stats Driven Attributes
Lecture 106 106 Add Addtional Gameplay Attributes
Lecture 107 107 Create the Stats Gauge Class
Lecture 108 108 Populate the Status Gauge
Lecture 109 109 Create the Data Table for Hero Stats
Lecture 110 110 Use the Data Table to Initialize the Attributes
Lecture 111 111 Change the Move Speed and Damage Based on the Attributes
Lecture 112 112 Add the Health and Mana Regenaration Effects
Lecture 113 113 Add the Health and Mana Full and Empty Tags
Lecture 114 114 Add and Trigger the Dead Passive Ability
Lecture 115 115 Find the Reward Targets
Lecture 116 116 Calcuate The Total Rewards
Lecture 117 117 Apply The Rewards
Lecture 118 118 Refactor the Generic Abilities and Effects to a Primary Data Asset
Lecture 119 119 Create and Read the Experience Curve Table
Lecture 120 120 Update Level and Upgrade Point Based on Experience
Lecture 121 121 Use Level to Drive Other Attributes
Lecture 122 122 Rescale Health and Mana
Lecture 123 123 Create the Level Up Widget
Lecture 124 124 Implement the Level Up Gauge
Section 12: Ability Updgrading
Lecture 125 125 Implement the Ability Upgrading Mechanics
Lecture 126 126 Create Visual Element of the Ability Level and Upgradability in the Material
Lecture 127 127 Update the Ability Gauge Based on Upgrade Point and Abilty Level
Lecture 128 128 Create Helper Functions to Find Realtime Ability Cooldown and Cost
Lecture 129 129 Define the Ability Cooldown and Cost Effects on each Level With Curve Table
Section 13: GAS Optimization
Lecture 130 130 Refactor AN_SendTargetGroup to Send Damage GameplayCue Locally
Lecture 131 131 Refactor the Ability and Game Play Cue to Ensure Cues are Triggered Locally
Lecture 132 132 Fix Variable Initialization and Camera Shake Issues When Switching Aim Mode
Section 14: The Shop System
Lecture 133 133 Create the Shop Item Primary Data Asset
Lecture 134 134 Create the Asset Manager and ShopItem Loading Functions
Lecture 135 135 Create and Test the Item Widget Class
Lecture 136 136 Implement the ShopItemWidget and the ShopWidget
Lecture 137 137 Add the Shop Widget Blueprint and Test with Some Shop Items
Lecture 138 138 Add the Shop Widget Popup Animation and Key Binding
Lecture 139 139 Toggle Mouse Cursor and Player Input Mode when Toggling the Shop
Lecture 140 140 Add Tool TIps to the Shop Items
Lecture 141 141 Setup Purchasing Logic
Section 15: The Inventory System
Lecture 142 142 Create The Inventory Item Handle
Lecture 143 143 Create and Store the New Item on Both the Client and the Server
Lecture 144 144 Apply Equip Effect and Grant Ability WIth Inventory Item
Lecture 145 145 Implement the Inventory Item Widget
Lecture 146 146 Implement the Inventory Widget
Lecture 147 147 Create the Inventory Widget Blueprint
Lecture 148 148 Add Stack Checking Functions
Lecture 149 149 Implement the Stacking Capability to the Inventory System
Lecture 150 150 Implement the Inventory Drag and Drop Operator and Drag Drop Visual
Lecture 151 151 Add Drag and Drop Logic to the Inventory Item Widget Class
Lecture 152 152 Implement the Drag and Drop Handling in the Inventory Widget
Lecture 153 153 Add Supporting Functions for Item Activation and Removal
Lecture 154 154 Add Item Activation and Cosumption Functions
Lecture 155 155 Create The Context Menu class and Implement the Spawning Logic
Lecture 156 156 Implement Toggle Context Menu
Lecture 157 157 Implement the Inventory Context Button Events and Create the Shop Items
Lecture 158 158 Implement the Combination Logic
Lecture 159 159 Create the Spline Widget
Lecture 160 160 Make the TreeNodeInterface and Implement it with ShopItemWidget
Lecture 161 161 Create the Parameters and Utility Functions of the Item Tree Widget
Lecture 162 162 The Tree Drawing Algorithm
Lecture 163 163 Implement the Recursive Draw Stream Function
Lecture 164 164 Finsh and test the Drawing Mechanic of the Tree
Lecture 165 165 Improve and Testing the Combination Mechanics
Lecture 166 166 Trigger the Cooldown Event On the Inventory Item Widget
Lecture 167 167 Implement the Cooldown Functions
Lecture 168 168 Refactor the Inventory Item to Hold the Ability System Component
Lecture 169 169 Check and Start the Cooldown when Updating the Inventory Item in the Widget
Lecture 170 170 Update the Can Cast in Realtime
Lecture 171 171 Setup Inventory Item Key Bindings
Section 16: Create a Headshot Render
Lecture 172 172 Create the Render Actor Class
Lecture 173 173 Create the Render Actor Widget Class
Lecture 174 174 Implement the Skeletal Mesh Renderer
Lecture 175 175 Setup the Headshot Render
Lecture 176 176 Setup the Lighting of the Headshot Render
Section 17: Storm Core
Lecture 177 177 Import and Configure the Storm Core Class
Lecture 178 178 Update the Team Count and Team Weight
Lecture 179 179 Move the Storm Core Based on Weight
Lecture 180 180 Add the Ground Decal to Display the Influence Range
Lecture 181 181 Implement the Core Capture Mechanics
Lecture 182 182 Configure and Test the Core Captureing Mechanics
Lecture 183 183 Create the Match Stat Widget
Lecture 184 184 Update the Progress Bar of the Match Stat
Lecture 185 185 Create a Gameplay Menu Widget Class
Lecture 186 186 Add the Gameplay Menu Toggle
Lecture 187 187 Trigger the Match Finished Events
Section 18: Another Character with Ranged Attack
Lecture 188 188 Import Another Character
Lecture 189 189 Create the Animation Blueprint for the New Character
Lecture 190 190 Create the Shoot Ability and Initial Events
Lecture 191 191 Add the Input Bindings of the Shoot Ability
Lecture 192 192 Create and Play the Animation Montage
Lecture 193 193 Create the Projectile Actor Class
Lecture 194 194 Spawn and Shoot the Projectile in the Shoot Ability
Lecture 195 195 Create the Crosshair Widget Class
Lecture 196 196 Make the Crosshair Widget Blueprint
Lecture 197 197 Implement and Test the Get Aim Target Function
Lecture 198 198 Apply the Hit Effect and Fire the Hit Effect Cue
Lecture 199 199 Implement the Lock on System
Lecture 200 200 Update the Crosshair to the Aim Target Location On Screen
Lecture 201 201 Define the Headshot Capture Local Position and Rotation
Lecture 202 202 Improve the Render Quality of the Headshot
Section 19: Lazer Ability
Lecture 203 203 Setup the Montage Play and Mana Consuption Logic of the Lazer Ability
Lecture 204 204 Create the Lazer Ability Blueprint and Test the Functionality
Lecture 205 205 Create the Lazer Target Actor
Lecture 206 206 Spawn the Lazer Target Actor
Lecture 207 207 Create the Targetting Properties and Configure the Replication
Lecture 208 208 Update the Lazer Length
Lecture 209 209 Report Lazer Targets and Apply Damage
Lecture 210 210 Adress the Ability Spec Dangling Pointer Issue in the Ability Gauge
Lecture 211 211 Fix Other Minor Issues
Section 20: Black Hole Ability
Lecture 212 212 Create the Blackhole Ability and Setup the Targetting
Lecture 213 213 Configure and Test the Blackhole Ability Implemented so Far
Lecture 214 214 Create and Setup the Component and Basic Events of the Blackhole Target Acto
Lecture 215 215 Add the Spawning Logic of the Blackhole Target Actor
Lecture 216 216 Implement the Pulling Mechanic of the Blackhole Target Actor
Lecture 217 217 Implement the Final Blow Effect of the Blackhole Ability
Lecture 218 218 Add the Focus State for the Player Character and Finalize the Blackhole Abil
Lecture 219 219 All Other Abilities
Section 21: Create the Lobby
Lecture 220 220 Create The Lobby Classes
Lecture 221 221 Create the Lobby Level and Spawn the Lobby Widget
Lecture 222 222 Create the Team Selection Slot Widget
Lecture 223 223 Create and Listen for Team Selection Slot Click Event
Lecture 224 224 Create the Player Selection Structure
Lecture 225 225 Make the CGameState class to Keep the Player Selections
Lecture 226 226 Connect the Lobby Widget with The Player Slot Selection System
Section 22: Hero Selection
Lecture 227 227 Switch To Hero Selection
Lecture 228 228 Add the Character Defination Primary Asset
Lecture 229 229 Create and Load the Character Definations with the Asset Manager
Lecture 230 230 Implement the Character Entry Widget
Lecture 231 231 Configure the Character Selection Tile View and Character Entry WBP
Lecture 232 232 Implement the Character Selection Logic in the Game State
Lecture 233 233 Add the Player Selection and Character Selection Server Functions
Lecture 234 234 Issue and Update Player Character Selection on the Lobby Widget
Lecture 235 235 Create the Character Display Class
Lecture 236 236 Handle the Spawning and Updating Logic of the Character Display
Lecture 237 237 Setup the Visuals of the Lobby Level
Lecture 238 238 Display The Abilities in the Lobby Widget
Lecture 239 239 Refine The Ability Display
Lecture 240 240 Create And Configure the Ability Tool Tip
Lecture 241 241 Spawn the Tooltip in the Ability Gauge Class
Lecture 242 242 Implement the Player Team Slot Widget
Lecture 243 243 Construct the Player Team Slot Widget Blueprint
Lecture 244 244 Implement the Player Team Layout Widget
Lecture 245 245 Compose the Payer Team Layout Widget Blueprint
Lecture 246 246 Implement the Map Loading in the CGame Instance Class
Lecture 247 247 Add the Start Match Button
Lecture 248 248 Copy The Player Selection Through the CopyProperties Function
Lecture 249 249 Configure the Character and TeamID Based on Player Selection
Section 23: Test Dedicated Server Packaging and Connecting
Lecture 250 250 Get and Build the Engine from Source
Lecture 251 251 Convert Our Game Project to Use the Source Build and Add Entry Animation
Lecture 252 252 Build the Server and Clients and Try Out Manual Connections
Lecture 253 253 Create and Configure the EOS Product
Lecture 254 254 Configure EOS in Our Project
Lecture 255 255 Read Command Line Arguments When Creating Session
Lecture 256 256 Create the Launch Scripts
Lecture 257 257 Implement Server Side Session Creation
Lecture 258 258 Load Level After Session Creation Successful or Terminate if Not
Lecture 259 259 Implement the Game Session Class and React to Player Join and Left
Lecture 260 260 Enable and Test EOS
Section 24: User Login and Session Creation Request
Lecture 261 261 Create the Main Menu Level and Classes
Lecture 262 262 Create the Login Widgets
Lecture 263 263 Implement the Login In Game Instance
Lecture 264 264 Add the Waiting Widget and Show It During Logging In
Lecture 265 265 Add the Create Lobby Widgets
Lecture 266 266 Configure and Get the Coordinator URL
Lecture 267 267 Compose and Send Session Creation Request
Section 25: Server Coordinator and Session Orchestration
Lecture 268 268 Setup Python and VS Code
Lecture 269 269 Create and Test the Coordinator HTTP Server
Lecture 270 270 Using the HTTP server to Launch and Instance of the Server Upon Request
Lecture 271 271 Setup Find Created Session Timers
Lecture 272 272 Search for Created Session
Lecture 273 273 Stop Session Search and Retrieve Session Name and Port
Lecture 274 274 Connect to the Session Server Through the Search Result
Lecture 275 275 Implement the Global Session Search
Lecture 276 276 Create and Compose the Session Entry Widget Class
Lecture 277 277 Populate the Session List in the Main Menu Widget
Lecture 278 278 Join Session with The Session Id
Lecture 279 279 Test with Multiple Player Accounts
Lecture 280 280 Add Project Icon and Splash Screen
Lecture 281 281 Add More Testing Characters
Section 26: Server and Client Packaging and Containerization
Lecture 282 282 Prep for Linux Server Build
Lecture 283 283 Build Linux Server and Windows Game Client
Lecture 284 284 Install Docker and Docker Compose Through WSL
Lecture 285 285 Containerize the Coordinator and Test Connections
Lecture 286 286 Containerize the Server and Test Connections
Lecture 287 287 Query Occupied Ports Through Docker
Lecture 288 288 Process the Port Query Result to Get the Occupied Ports
Lecture 289 289 Finish and Test the Coordinator Container
Lecture 290 290 Use Docker Compose to Define and Build Our Images
Section 27: Server Deployment on AWS
Lecture 291 291 Create the AWS Account
Lecture 292 292 Create and Login to the EC2 Instance
Lecture 293 293 Setup Docker and Docker Compose on Our EC2 and Copy The Server Over
Lecture 294 294 Deploy and Test Our Server on EC2
Section 28: Conclusion
Lecture 295 295 Conclusion and Goodbye
Game Developers Who Need to Make Solid Multiplayer Games with Unreal Engine,Game Developers Who Need to Setup Dedicated Servers,Game Developers Who Need a Complete and Deep Understanding of the Gameplay Ability System in Unreal Engine and How It Works with the Rest of the Engine,Game Developers Who Want to Improve their Code Quality & Structure with C++,Game Developers Who Need to Adapt to the Epic Online Services