Multiplayer In Unreal With Gas And Aws Dedicated Servers

Posted By: ELK1nG

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

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