4.62 out of 5
1542 reviews on Udemy

Unreal Multiplayer Master: Video Game Dev In C++

Use Unreal for Online Game Dev in C++. Tutorials Cover LAN, VPN, Steam & More. Epic Games Collaboration
Ben Tristem
28,060 students enrolled
English [Auto] More
Build multiplayer games.
Share games with a large audience.
Connect games via the Steam APIs.
Understand the challenges of computer networks.
Understand how Unreal replicates state.
Build UI with UMG and C++.

Created in collaboration with Epic Games, the course will show you how to create Epic multiplayer experiences using the world class Unreal Engine. This course hits the ground running, instantly getting you playing your own multiplayer games with other students.

As the engine underpinning many AAA games (including Fortnite), Unreal is full of tools for creating multiplayer games extremely quickly. However, knowing where to start with Unreal Engine can be intimidating

With a massive feature set and little documentation, you get stuck understanding where to begin. This course makes understanding Unreal super easy. Not only do we show you how to use the engine, but we teach you the fundamental concepts. These skills allow you to pick up new features for yourself.

This course is aimed at beginner to intermediate Unreal users with some knowledge of C++. Not too confident? Don’t worry, the course will take you through everything step by step and give you plenty of practice to build up that confidence with coding.

We don’t assume any knowledge about networking or multiplayer games. We will teach you about everything you need to know about networks from the basics of latency in networks to the advanced topics of state synchronisation.

This course will not teach you to make a massively multiplayer game. But it will teach you the fundamentals you need to understand how an MMO could be built.

Note: access to this course comes with an optional, free community site where you can share games and 3D models, as well as connect with other students.

Become a multiplayer master now, you won’t be disappointed!

Puzzle Platforms - Connecting Players

Course Promo
  • Why you should take the course.
  • We overview the journey.
  • What are the prerequisites?

(Unique Video Reference: 0_PP_UEM)

Introduction to Puzzle Platforms
  • Overview of the course structure.
  • What will we cover this section.
  • Let's get stuck in!

(Unique Video Reference: 0b_PP_UEM)

Connecting Two Players
  • In this video (objectives)…

    1. Notes on Unreal versions

    2. Creating the base project

    3. Testing with multiple players

    4. What's under the hood

    5. Finding an Unreal .gitignore

(Unique Video Reference: 1_PP_UEM)

How to Be an Active Student
  • Source control and where to get code
  • Our community site
  • Reading the slides
  • Our rich community

(Unique Video Reference: 2_PP_UEM)

Surveying the Multiplayer Space
  • Overview of multiplayer game types
  • Outlining the journey
  • Sharing our ambitions

(Unique Video Reference: 3_PP_UEM)

Meet the Client-Server Model
  • Client-Server vs Peer-to-Peer
  • Launching a game from the command-line.
  • Launching a dedicated server.
  • Join with clients.

(Unique Video Reference: 4_PP_UEM)

Tips For Not Spawning
Detecting Where Code is Running
  • Create a AStaticMeshActor subclass.
  • Adding mobility in C++.
  • Running code only on the server.

(Unique Video Reference: 5_PP_UEM)

Mid-section Quiz
Authority and Replication
  • Understand Actor "Authority"
  • Enable replication of movement
  • What happens with disagreement

(Unique Video Reference: 6_PP_UEM)

Widgets For FVector Properties
  • Adding 3D gizmos to a UPROPERTY.
  • Vector for A to B travel.
  • Moving our platform.

(Unique Video Reference: 7_PP_UEM)

Sending The Platform Back
  • What we want to achieve.
  • Continuing past the target.
  • Swapping the start and target.

(Unique Video Reference: 8_PP_UEM)

Set Up A Simple Puzzle
  • Better jump controls.
  • Layout a puzzle.

(Unique Video Reference: 9_PP_UEM)

Playing Over The Internet
  • Local vs global internet.
  • Simulating LAN with Hamachi.
  • Connecting Unreal over Hamachi.
  • Getting connected with others.

(Unique Video Reference: 9b_PP_UEM)

Set Up A Platform Trigger
  • Create the C++ class.
  • Add a box component.
  • Tweak the Blueprint.
  • Place it in the world.

(Unique Video Reference: 10_PP_UEM)

Mid-section Quiz
Handling Overlap Events In C++
  • Implement the handler function.
  • Register the event callback.
  • Reloading the map to call constructors.
  • Repeat for EndOverlap.

(Unique Video Reference: 11_PP_UEM)

Activating Platforms From Triggers
  • The desired behaviour.
  • Creating the platform interface.
  • TArray for hooking up platforms.
  • Implementing the logic.

(Unique Video Reference: 12_PP_UEM)

When To Use A GameInstance
  • What is a GameInstance?
  • Set a custom GameInstance for you project.
  • Init vs Constructor.

(Unique Video Reference: 13_PP_UEM)

Console Commands With Exec
  • What is the console.
  • What classes support Exec functions.
  • Creating out own.
  • How to log to the screen from C++.
  • Dealing with arguments.

(Unique Video Reference: 14_PP_UEM)

Hosting Servers With ServerTravel
  • Creating a Lobby.
  • What is travelling?
  • Hosting a server with travel.
  • Testing with and without ?listen.

(Unique Video Reference: 15_PP_UEM)

Joining Servers With ClientTravel
  • ClientTravel vs ServerTravel.
  • Getting the PlayerController.
  • Implementing ClientTravel.

(Unique Video Reference: 16_PP_UEM)

Sharing Your Game On Itch.io
  • Building your game.
  • Introduction to Itch.io.
  • A note on security.
  • Sharing our game.

(Unique Video Reference: 17_PP_UEM)

Puzzle Platforms Wrap-up
  • Well done!
  • Get inspired to extend your project.
  • Make sure you're ready for the next section.

(Unique Video Reference: 99_PP_UEM)

End Of Section Quiz
The UE4 Network Compendium

Menu System - Polishing Our Game

Introduction to Menu System
  • Overview of the section.
  • Why we need to cover UI.

(Unique Video Reference: 0_MS_UEM)

Create a Menu Blueprint
  • Importing last section's project.
  • Creating a menu Blueprint.
  • Revision of layout.
  • Create a basic menu.

(Unique Video Reference: 1_MS_UEM)

Accessing UI Classes in C++
  • Using the FClassFinder.
  • Finding BP_PlatfromTrigger.
  • Accessing UMG from C++.
  • Saving our menu class.

(Unique Video Reference: 2_MS_UEM)

Load And Display UMG In C++
  • Creating an interface.
  • CreateWidget in C++.
  • Setup a MainMenu level.

(Unique Video Reference: 3_MS_UEM)

Potential Error Messages
Changing UI Input Modes
  • Using SetInputMode().
  • Configuring an input mode.
  • Displaying the cursor.
  • Repeat for yourselves.

(Unique Video Reference: 4_MS_UEM)

Advanced UMG Widget Layout
  • How container widgets work.
  • Canvas panel.
  • Horizontal/vertical boxes.
  • Size boxes as spacers.
  • Overlay.
  • Create a layout.

(Unique Video Reference: 5_MS_UEM)

Mid-section Quiz
Custom Buttons And Fonts
  • 9-slice images for buttons.
  • Box vs border vs image.
  • Using Google fonts.
  • Scale box for backgrounds.
  • Make it pretty.

(Unique Video Reference: 6_MS_UEM)

Solution: Custom Buttons And Fonts
  • We make our menu pretty.

(Unique Video Reference: 7_MS_UEM)

Connecting UMG to C++
  • Create a UUserWidget class.
  • Reparent the widget BP.
  • Add a bind widget property.
  • What do the errors mean?

(Unique Video Reference: 8_MS_UEM)

Initialisers and UButton Callbacks
  • How to Initialize a UserWidget.
  • The UButton OnClick handler.
  • Add a dynamic handler.

(Unique Video Reference: 9_MS_UEM)

Interfaces To Invert Dependencies
  • Intro to inverting dependencies.
  • How to make a interface in Unreal.
  • Using an interface for callbacks.
  • Injecting the dependency.

(Unique Video Reference: 10_MS_UEM)

Solution: Injecting Dependencies
  • We solve last lecture's challenge.

(Unique Video Reference: 11_MS_UEM)

Mid-section Quiz
Deactivating Menus
  • Refactoring our menu setup.
  • Creating a teardown stub.
  • Reversing the setup logic.

(Unique Video Reference: 12_MS_UEM)

Sub-Menus With Widget Switchers
  • What are widget switchers.
  • Creating a "Join" menu.
  • Styling the menu.

(Unique Video Reference: 13_MS_UEM)

Solution: Styling Our Sub-Menu
  • We finish styling out menu.

(Unique Video Reference: 14_MS_UEM)

Navigating Menus In C++
  • Binding the WidgetSwitcher.
  • Investigating the API.
  • Switching menus.
  • Implement a back button.

(Unique Video Reference: 15_MS_UEM)

Reading Text Fields From C++
  • Set startup level.
  • Bind the text field.
  • Call the Join() function.

(Unique Video Reference: 16_MS_UEM)

Challenge: Loading In-Game Menus
  • Create the new widget.
  • Create the layout.
  • Load on ESC key in level.
  • Create a UMenuWidget.

(Unique Video Reference: 17_MS_UEM)

Challenge: Leaving A Server
  • The challenge spec.
  • Hook up the cancel button.
  • Hook up the quit button.

(Unique Video Reference: 18_MS_UEM)

Quitting A Game From C++
  • How to quit from the console.
  • Running console commands from C++.
  • Quitting from a button press.

(Unique Video Reference: 19_MS_UEM)

End Of Section Quiz
Menu System Wrap-up
  • How to polish your menu system.
  • Share it with other students.

(Unique Video Reference: 99_MS_UEM)

Online Multiplayer

Introduction to Steam Multiplayer
  • We overview the section topic.

(Unique Video Reference: 0_SM_UEM)

Getting The Steamworks SDK
  • Introducing Steamworks.
  • Downloading the Steamworks SDK.
  • Steamworks and the Online Sub-System.

(Unique Video Reference: 1_SM_UEM)

Errors Building SpaceWar
Building SpaceWar In Visual Studio
  • Introducing the Steamworks example project.
  • Updating the project.
  • Downloading & installing DirectX SDK.
  • Fixing the build errors.

(Unique Video Reference: 2_SM_UEM)

Building SpaceWar In Xcode
  • Introducing the Steamworks example project.
  • Applying recommended settings.
  • Running with Steam.

(Unique Video Reference: 3_SM_UEM)

Testing Steam Lobbies
  • Finding a testing partner.
  • Testing servers.
  • Testing lobbies.

(Unique Video Reference: 4_SM_UEM)

The Online Sub-System
  • Importing PuzzlePlatforms.
  • Capabilities of Online Sub-Systems.
  • Including the OSS module.
  • Getting a pointer to the sub-system.

(Unique Video Reference: 5_SM_UEM)

NULL Sub-System For Testing
  • Role of the NULL sub-system.
  • Configuring the NULL service.
  • Printing the current service name.

(Unique Video Reference: 6_SM_UEM)

Memory Management In C++
  • Stack vs Heap.
  • Manual memory management.
  • Reference counting with TSharedPtr.
  • Garbage Collection of UObjects.

(Unique Video Reference: 7_SM_UEM)

Mid-section Quiz
Creating Online Sessions
  • Creating a session.
  • Asynchronous operations and delegates.
  • Creating a session on host.

(Unique Video Reference: 8_SM_UEM)

Destroying Online Sessions
  • Asynchronous destruction.
  • Checking if a session exists.
  • Destroy the session if we need to.

(Unique Video Reference: 9_SM_UEM)

Finding Online Sessions
  • FindSessions and TShareRef.
  • Handling OnFindSessionsCompleteDelegates.

(Unique Video Reference: 10_SM_UEM)

Query Parameters & Session Settings
  • Configuring Session Settings.
  • Adding query parameters.
  • Iterating over a TArray

(Unique Video Reference: 11_SM_UEM)

Lists Of Widgets With ScrollBox
  • Introduction to the ScrollBox.
  • Creating a row widget.
  • Add rows in C++.

(Unique Video Reference: 12_SM_UEM)

Populating The Server List
  • Expose the text property.
  • Setting a server list from GameInstance.
  • Clearing the previous list.
  • Requesting a refresh.

(Unique Video Reference: 13_SM_UEM)

Mid-section Quiz
Selecting A Server
  • Using TOptional values.
  • Setup the UServerRow.
  • Adding a UButton.
  • Set the selected index.

(Unique Video Reference: 14_SM_UEM)

Joining A Session
  • Passing the index to GameInstance.
  • How to JoinSession.
  • Handling OnJoinSessionComplete.
  • Getting the platform connect string.

(Unique Video Reference: 15_SM_UEM)

Enabling The Steam OSS
  • Enabling the steam plugin.
  • Compiling with the steam module.
  • Configuring the DefaultEngine.ini.
  • Reading the verbose logs.

(Unique Video Reference: 16_SM_UEM)

Enabling Steam In Packaged Builds
"Presence" For Steam Lobbies
  • Enabling presence for the server.
  • Enabling presence for search.
  • Debugging our connection.

(Unique Video Reference: 17_SM_UEM)

Mid-section Quiz
Row Selection In Lists
  • Update text colour on hover.
  • Update all rows when Selected.
  • Select colors for Hovered and Selected.

(Unique Video Reference: 18_SM_UEM)

Displaying Search Result Properties
  • Disabling Steam for testing.
  • Creating a struct.
  • Populating the struct.
  • Updating the UI.

(Unique Video Reference: 19_SM_UEM)

Debugging The Search Results
  • Disabling Steam fully.
  • Getting the available connections.
  • Padding the text properly.

(Unique Video Reference: 20_SM_UEM)

Custom Session Settings
  • How to set custom settings.
  • How to retrieve custom settings.
  • Setting the server name.

(Unique Video Reference: 21_SM_UEM)

Continued: Custom Session Settings
  • We finish the challenge solution.
  • We make our menu pretty again.

(Unique Video Reference: 22_SM_UEM)

Mid-section Quiz
GameMode And Multiplayer
  • Joining into the lobby.
  • Creating a GameMode override.
  • Handling PostLogin.
  • Handle Logout and count players.

(Unique Video Reference: 23_SM_UEM)

Enabling Seamless Travel
  • Ensuring we call Super.
  • Traveling to the game.
  • What is non-seamless travel?
  • Enabling seamless travel.
  • The transition map.

(Unique Video Reference: 24_SM_UEM)

Debugging Engine Code
  • Installing editor symbols.
  • Finding the NULL subsystem code.
  • What code should be called?
  • Attaching and debugging.
  • Fixing the NULL subsystem bug.

(Unique Video Reference: 25_SM_UEM)

Bugs In Steam OSS
Starting A Session
  • Update maximum number of players.
  • Adding a session start timeout.
  • Starting the session.

(Unique Video Reference: 26_SM_UEM)

Handling Network Errors

In this video (objectives)…

  1. Sam shows us how to handle the server disconnecting from the client gracefully.

End Of Section Quiz
Steam Multiplayer Wrap-up
  • We review the topics covered this section.

(Unique Video Reference: 99_SM_UEM)

Krazy Karts - State Synchronisation And Interpolation

Introduction to Krazy Karts
  • We overview the sections topics.

(Unique Video Reference: 0_KK_UEM)

Creating A Go-Kart Pawn
  • Create the project.
  • Create a pawn.
  • Setup GameMode Spawning.
  • Setup Camera.
  • Attach throttle controls.

(Unique Video Reference: 1_KK_UEM)

Understanding Forces And Movement
  • Revision of forces in physics.
  • Calculating movement from force.
  • Providing the driving force.

(Unique Video Reference: 2_KK_UEM)

Blocking Movement Without Physics
  • Setting up collision volumes.
  • Sweeping with AddActorWorldOffset.
  • Resetting velocity on collision.
  • Refactoring the Tick function.

(Unique Video Reference: 3_KK_UEM)

Rotations With Quaternions
  • Angle axis rotations with FQuat.
  • Adding rotations actors.
  • Rotating our velocity.

(Unique Video Reference: 4_KK_UEM)

Simulating Air Resistance
  • Understanding air resistance.
  • Getting the "speed".
  • Calculating force due to air resistance.

(Unique Video Reference: 5_KK_UEM)

Mid-section Quiz
Simulating Rolling Resistance
  • What is rolling resistance?
  • Finding the gravity in Unreal.
  • Implementing rolling resistance.
  • Example rolling resistance coeffients.

(Unique Video Reference: 6_KK_UEM)

You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.6 out of 5
1542 Ratings

Detailed Rating

Stars 5
Stars 4
Stars 3
Stars 2
Stars 1
Course available for 2 days
30-Day Money-Back Guarantee


24 hours on-demand video
8 articles
Full lifetime access
Access on mobile and TV
Certificate of Completion

External Links May Contain Affiliate Links read more

Join our Telegram Channel To Get Latest Notification & Course Updates!
Join Our Telegram For FREE Courses & Canva PremiumJOIN NOW