Unreal Multiplayer Master: Video Game Dev In C++
- Description
- Curriculum
- FAQ
- Reviews
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!
-
1Course PromoVideo lesson
- Why you should take the course.
- We overview the journey.
- What are the prerequisites?
(Unique Video Reference: 0_PP_UEM)
-
2Introduction to Puzzle PlatformsVideo lesson
- Overview of the course structure.
- What will we cover this section.
- Let's get stuck in!
(Unique Video Reference: 0b_PP_UEM)
-
3Connecting Two PlayersVideo lesson
In this video (objectives)…
Notes on Unreal versions
Creating the base project
Testing with multiple players
What's under the hood
Finding an Unreal .gitignore
(Unique Video Reference: 1_PP_UEM)
-
4How to Be an Active StudentVideo lesson
- Source control and where to get code
- Our community site
- Reading the slides
- Our rich community
(Unique Video Reference: 2_PP_UEM)
-
5Surveying the Multiplayer SpaceVideo lesson
- Overview of multiplayer game types
- Outlining the journey
- Sharing our ambitions
(Unique Video Reference: 3_PP_UEM)
-
6Meet the Client-Server ModelVideo lesson
- 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)
-
7Tips For Not SpawningText lesson
-
8Detecting Where Code is RunningVideo lesson
- Create a
AStaticMeshActor
subclass. - Adding mobility in C++.
- Running code only on the server.
(Unique Video Reference: 5_PP_UEM)
- Create a
-
9Mid-section QuizQuiz
-
10Authority and ReplicationVideo lesson
- Understand Actor "Authority"
- Enable replication of movement
- What happens with disagreement
(Unique Video Reference: 6_PP_UEM)
-
11Widgets For FVector PropertiesVideo lesson
- Adding 3D gizmos to a UPROPERTY.
- Vector for A to B travel.
- Moving our platform.
(Unique Video Reference: 7_PP_UEM)
-
12Sending The Platform BackVideo lesson
- What we want to achieve.
- Continuing past the target.
- Swapping the start and target.
(Unique Video Reference: 8_PP_UEM)
-
13Set Up A Simple PuzzleVideo lesson
- Better jump controls.
- Layout a puzzle.
(Unique Video Reference: 9_PP_UEM)
-
14Playing Over The InternetVideo lesson
- Local vs global internet.
- Simulating LAN with Hamachi.
- Connecting Unreal over Hamachi.
- Getting connected with others.
(Unique Video Reference: 9b_PP_UEM)
-
15Set Up A Platform TriggerVideo lesson
- Create the C++ class.
- Add a box component.
- Tweak the Blueprint.
- Place it in the world.
(Unique Video Reference: 10_PP_UEM)
-
16Mid-section QuizQuiz
-
17Handling Overlap Events In C++Video lesson
- Implement the handler function.
- Register the event callback.
- Reloading the map to call constructors.
- Repeat for
EndOverlap
.
(Unique Video Reference: 11_PP_UEM)
-
18Activating Platforms From TriggersVideo lesson
- The desired behaviour.
- Creating the platform interface.
- TArray for hooking up platforms.
- Implementing the logic.
(Unique Video Reference: 12_PP_UEM)
-
19When To Use A GameInstanceVideo lesson
- What is a
GameInstance
? - Set a custom
GameInstance
for you project. - Init vs Constructor.
(Unique Video Reference: 13_PP_UEM)
- What is a
-
20Console Commands With ExecVideo lesson
- 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)
-
21Hosting Servers With ServerTravelVideo lesson
- Creating a Lobby.
- What is travelling?
- Hosting a server with travel.
- Testing with and without
?listen
.
(Unique Video Reference: 15_PP_UEM)
-
22Joining Servers With ClientTravelVideo lesson
ClientTravel
vsServerTravel
.- Getting the
PlayerController
. - Implementing
ClientTravel
.
(Unique Video Reference: 16_PP_UEM)
-
23Sharing Your Game On Itch.ioVideo lesson
- Building your game.
- Introduction to Itch.io.
- A note on security.
- Sharing our game.
(Unique Video Reference: 17_PP_UEM)
-
24Puzzle Platforms Wrap-upVideo lesson
- Well done!
- Get inspired to extend your project.
- Make sure you're ready for the next section.
(Unique Video Reference: 99_PP_UEM)
-
25End Of Section QuizQuiz
-
26The UE4 Network CompendiumText lesson
-
27Introduction to Menu SystemVideo lesson
- Overview of the section.
- Why we need to cover UI.
(Unique Video Reference: 0_MS_UEM)
-
28Create a Menu BlueprintVideo lesson
- Importing last section's project.
- Creating a menu Blueprint.
- Revision of layout.
- Create a basic menu.
(Unique Video Reference: 1_MS_UEM)
-
29Accessing UI Classes in C++Video lesson
- Using the
FClassFinder
. - Finding
BP_PlatfromTrigger
. - Accessing UMG from C++.
- Saving our menu class.
(Unique Video Reference: 2_MS_UEM)
- Using the
-
30Load And Display UMG In C++Video lesson
- Creating an interface.
CreateWidget
in C++.- Setup a MainMenu level.
(Unique Video Reference: 3_MS_UEM)
-
31Potential Error MessagesText lesson
-
32Changing UI Input ModesVideo lesson
- Using
SetInputMode()
. - Configuring an input mode.
- Displaying the cursor.
- Repeat for yourselves.
(Unique Video Reference: 4_MS_UEM)
- Using
-
33Advanced UMG Widget LayoutVideo lesson
- How container widgets work.
- Canvas panel.
- Horizontal/vertical boxes.
- Size boxes as spacers.
- Overlay.
- Create a layout.
(Unique Video Reference: 5_MS_UEM)
-
34Mid-section QuizQuiz
-
35Custom Buttons And FontsVideo lesson
- 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)
-
36Solution: Custom Buttons And FontsVideo lesson
- We make our menu pretty.
(Unique Video Reference: 7_MS_UEM)
-
37Connecting UMG to C++Video lesson
- Create a
UUserWidget
class. - Reparent the widget BP.
- Add a bind widget property.
- What do the errors mean?
(Unique Video Reference: 8_MS_UEM)
- Create a
-
38Initialisers and UButton CallbacksVideo lesson
- How to
Initialize
a UserWidget. - The UButton OnClick handler.
- Add a dynamic handler.
(Unique Video Reference: 9_MS_UEM)
- How to
-
39Interfaces To Invert DependenciesVideo lesson
- 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)
-
40Solution: Injecting DependenciesVideo lesson
- We solve last lecture's challenge.
(Unique Video Reference: 11_MS_UEM)
-
41Mid-section QuizQuiz
-
42Deactivating MenusVideo lesson
- Refactoring our menu setup.
- Creating a teardown stub.
- Reversing the setup logic.
(Unique Video Reference: 12_MS_UEM)
-
43Sub-Menus With Widget SwitchersVideo lesson
- What are widget switchers.
- Creating a "Join" menu.
- Styling the menu.
(Unique Video Reference: 13_MS_UEM)
-
44Solution: Styling Our Sub-MenuVideo lesson
- We finish styling out menu.
(Unique Video Reference: 14_MS_UEM)
-
45Navigating Menus In C++Video lesson
- Binding the WidgetSwitcher.
- Investigating the API.
- Switching menus.
- Implement a back button.
(Unique Video Reference: 15_MS_UEM)
-
46Reading Text Fields From C++Video lesson
- Set startup level.
- Bind the text field.
- Call the
Join()
function.
(Unique Video Reference: 16_MS_UEM)
-
47Challenge: Loading In-Game MenusVideo lesson
- Create the new widget.
- Create the layout.
- Load on
ESC
key in level. - Create a
UMenuWidget
.
(Unique Video Reference: 17_MS_UEM)
-
48Challenge: Leaving A ServerVideo lesson
- The challenge spec.
- Hook up the cancel button.
- Hook up the quit button.
(Unique Video Reference: 18_MS_UEM)
-
49Quitting A Game From C++Video lesson
- How to quit from the console.
- Running console commands from C++.
- Quitting from a button press.
(Unique Video Reference: 19_MS_UEM)
-
50End Of Section QuizQuiz
-
51Menu System Wrap-upVideo lesson
- How to polish your menu system.
- Share it with other students.
(Unique Video Reference: 99_MS_UEM)
-
52Introduction to Steam MultiplayerVideo lesson
- We overview the section topic.
(Unique Video Reference: 0_SM_UEM)
-
53Getting The Steamworks SDKVideo lesson
- Introducing Steamworks.
- Downloading the Steamworks SDK.
- Steamworks and the Online Sub-System.
(Unique Video Reference: 1_SM_UEM)
-
54Errors Building SpaceWarText lesson
-
55Building SpaceWar In Visual StudioVideo lesson
- Introducing the Steamworks example project.
- Updating the project.
- Downloading & installing DirectX SDK.
- Fixing the build errors.
(Unique Video Reference: 2_SM_UEM)
-
56Building SpaceWar In XcodeVideo lesson
- Introducing the Steamworks example project.
- Applying recommended settings.
- Running with Steam.
(Unique Video Reference: 3_SM_UEM)
-
57Testing Steam LobbiesVideo lesson
- Finding a testing partner.
- Testing servers.
- Testing lobbies.
(Unique Video Reference: 4_SM_UEM)
-
58The Online Sub-SystemVideo lesson
- Importing PuzzlePlatforms.
- Capabilities of Online Sub-Systems.
- Including the OSS module.
- Getting a pointer to the sub-system.
(Unique Video Reference: 5_SM_UEM)
-
59NULL Sub-System For TestingVideo lesson
- Role of the NULL sub-system.
- Configuring the NULL service.
- Printing the current service name.
(Unique Video Reference: 6_SM_UEM)
-
60Memory Management In C++Video lesson
- Stack vs Heap.
- Manual memory management.
- Reference counting with
TSharedPtr
. - Garbage Collection of UObjects.
(Unique Video Reference: 7_SM_UEM)
-
61Mid-section QuizQuiz
-
62Creating Online SessionsVideo lesson
- Creating a session.
- Asynchronous operations and delegates.
- Creating a session on host.
(Unique Video Reference: 8_SM_UEM)
-
63Destroying Online SessionsVideo lesson
- Asynchronous destruction.
- Checking if a session exists.
- Destroy the session if we need to.
(Unique Video Reference: 9_SM_UEM)
-
64Finding Online SessionsVideo lesson
FindSessions
andTShareRef
.- Handling
OnFindSessionsCompleteDelegates
.
(Unique Video Reference: 10_SM_UEM)
-
65Query Parameters & Session SettingsVideo lesson
- Configuring Session Settings.
- Adding query parameters.
- Iterating over a
TArray
(Unique Video Reference: 11_SM_UEM)
-
66Lists Of Widgets With ScrollBoxVideo lesson
- Introduction to the
ScrollBox
. - Creating a row widget.
- Add rows in C++.
(Unique Video Reference: 12_SM_UEM)
- Introduction to the
-
67Populating The Server ListVideo lesson
- Expose the text property.
- Setting a server list from GameInstance.
- Clearing the previous list.
- Requesting a refresh.
(Unique Video Reference: 13_SM_UEM)
-
68Mid-section QuizQuiz
-
69Selecting A ServerVideo lesson
- Using
TOptional
values. - Setup the
UServerRow
. - Adding a
UButton
. - Set the selected index.
(Unique Video Reference: 14_SM_UEM)
- Using
-
70Joining A SessionVideo lesson
- Passing the index to
GameInstance
. - How to
JoinSession
. - Handling
OnJoinSessionComplete
. - Getting the platform connect string.
(Unique Video Reference: 15_SM_UEM)
- Passing the index to
-
71Enabling The Steam OSSVideo lesson
- Enabling the steam plugin.
- Compiling with the steam module.
- Configuring the
DefaultEngine.ini
. - Reading the verbose logs.
(Unique Video Reference: 16_SM_UEM)
-
72Enabling Steam In Packaged BuildsText lesson
-
73"Presence" For Steam LobbiesVideo lesson
- Enabling presence for the server.
- Enabling presence for search.
- Debugging our connection.
(Unique Video Reference: 17_SM_UEM)
-
74Mid-section QuizQuiz
-
75Row Selection In ListsVideo lesson
- Update text colour on hover.
- Update all rows when
Selected
. - Select colors for
Hovered
andSelected
.
(Unique Video Reference: 18_SM_UEM)
-
76Displaying Search Result PropertiesVideo lesson
- Disabling Steam for testing.
- Creating a struct.
- Populating the struct.
- Updating the UI.
(Unique Video Reference: 19_SM_UEM)
-
77Debugging The Search ResultsVideo lesson
- Disabling Steam fully.
- Getting the available connections.
- Padding the text properly.
(Unique Video Reference: 20_SM_UEM)
-
78Custom Session SettingsVideo lesson
- How to set custom settings.
- How to retrieve custom settings.
- Setting the server name.
(Unique Video Reference: 21_SM_UEM)
-
79Continued: Custom Session SettingsVideo lesson
- We finish the challenge solution.
- We make our menu pretty again.
(Unique Video Reference: 22_SM_UEM)
-
80Mid-section QuizQuiz
-
81GameMode And MultiplayerVideo lesson
- Joining into the lobby.
- Creating a GameMode override.
- Handling
PostLogin
. - Handle
Logout
and count players.
(Unique Video Reference: 23_SM_UEM)
-
82Enabling Seamless TravelVideo lesson
- 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)
- Ensuring we call
-
83Debugging Engine CodeVideo lesson
- 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)
-
84Bugs In Steam OSSText lesson
-
85Starting A SessionVideo lesson
- Update maximum number of players.
- Adding a session start timeout.
- Starting the session.
(Unique Video Reference: 26_SM_UEM)
-
86Handling Network ErrorsVideo lesson
In this video (objectives)…
Sam shows us how to handle the server disconnecting from the client gracefully.
-
87End Of Section QuizQuiz
-
88Steam Multiplayer Wrap-upVideo lesson
- We review the topics covered this section.
(Unique Video Reference: 99_SM_UEM)
External Links May Contain Affiliate Links read more