Want to learn how to make your own online multiplayer adventure games?
In this course you’ll use the latest Unreal Engine 5 features and C++ to do just that.
Want to learn how to make your own online multiplayer adventure games?
In this course you’ll use the latest Unreal Engine 5 features and C++ to do just that.
The main game in this course is a two player co-op action adventure game, but you can apply the code and principles to whatever type of online multiplayer game you want to make.
Along with learning all about level design, you’ll also create different gameplay features like pressure plates, movable platforms and doors, and collectible keys.
By the end of the course you’ll have a fun co-op adventure game you can play with your friend online. Plus the tools to continue to work on it and really make it your own.
Understanding online multiplayer is difficult, this course makes it simple by giving you easy to understand explanations and step by step examples.
Even if you understand the basics of multiplayer, it’s still difficult to make a multiplayer game. This course will teach you how to put your knowledge to practical use, showing you how to make a full game.
This is an intermediate course, so if you already know a bit of Unreal and have an understanding of basic coding concepts this is the course for you.
You’ll get full lifetime access for a single one-off fee. The creators are qualified and experienced with modelling and coding, so are able to explain complex concepts clearly, as well as entertain along the way.
You’ll also gain access to a course forum where you can discuss topics on a course-wide basis, or down to the individual video. Get plugged into our communities of amazing developers on Facebook (nearly 20k), in our own TA-curated Community (17k views/day), and our student chat group (10k live at any one time).
So enrol today and create your own multiplayer game.
In this video (objectives)…
Welcome message before we start the course
In this video (objectives)…
Talking about Unreal version, text editor and creating a new project
In this video (objectives)…
We introduce the ways that you can get help, support and contribute to the community.
In this video (objectives)…
Any time we change our project during a lecture we will commit that change to a public source control repository for students to access. In this video, we show you how to access that content.
In this video (objectives)…
Talking about the topics we are going to cover in this section.
In this video (objectives)…
Overview of multiplayer concepts and Unreal’s replication system.
In this video (objectives)…
Learning what net modes are and testing them.
In this video (objectives)…
Connecting over LAN in order to test the game with multiple computers.
In this video (objectives)…
Introduction to Unreal’s replication system.
In this video (objectives)…
Understanding network roles and authority in a network multiplayer game.
In this video (objectives)…
Example of network roles in practice.
In this video (objectives)…
Learning how to designate a variable to be replicated in C++ and Blueprint.
In this video (objectives)…
Learning how to add a RepNotify function that gets called when the client receives the replicated info for a variable.
In this video (objectives)…
Diving deeper into RepNotify functions by creating a new example case.
In this video (objectives)…
Understanding how server RPCs work in theory and practice.
In this video (objectives)…
Taking our server rpc further by spawning static mesh actors on the server.
In this video (objectives)…
Validating the data sent by an RPC
In this video (objectives)…
Learning how to use multicast RPCs in Unreal using C++
In this video (objectives)…
Spawning particle effects on clients using a multicast rpc.
In this video (objectives)…
Actors and their owners play an important role in replication.
In this video (objectives)…
RPCs that are called on the server and executed on a specific client.
In this video (objectives)…
Wrapping up the section with some final advice and tips.
In this video (objectives)…
Brief intro on the section learning goals.
In this video (objectives)…
Introduction to the Online Subsystem in Unreal.
In this video (objectives)…
Creating a new project and configuring it to use Online Subsystem Steam.
In this video (objectives)…
Creating a game instance subsystem to store our multiplayer session handling code.
In this video (objectives)…
Creating the main menu level and widget blueprint.
In this video (objectives)…
Understanding the role of the session interface and accesing it in C++.
In this video (objectives)…
Learning how to write a batch script to test our game in a more efficient way.
In this video (objectives)…
Accessing MultiplayerSessionsSubsystem from the widget blueprint and calling its functions.
In this video (objectives)…
Creating a session with the CreateSession function of the session interface.
In this video (objectives)…
Learning how to use the session interface’s delegates so that we can do something after our session is created.
In this video (objectives)…
Destroying if a session with the same name exists before trying to create a new one.
In this video (objectives)…
Calling CreateServer again after we destroy the existing session, using the delegate.
In this video (objectives)…
Finding sessions that are online with FindSessions function of session interface.
In this video (objectives)…
Storing the ServerName in the session and getting it back from the search results.
In this video (objectives)…
Wee see how to join the correct session and ClientTravel into the game world.
In this video (objectives)…
Using a WidgetSwitcher to make the create server and the join server menu.
In this video (objectives)…
Programming the blueprint functionality for our two new menus.
In this video (objectives)…
Creating custom delegates so that we can disable the menu buttons when they are clicked and enable them if the call fails.
In this video (objectives)…
Wrapping up the Online Subsystem section with some final thoughts.
In this video (objectives)…
Introducing what we’re going to cover in this section.
In this video (objectives)…
Installing the asset pack that we are going to use and travel to it from the main menu.
In this video (objectives)…
Creating the pressure plate actor that we will use to activate moving platforms and doors.
In this video (objectives)…
Creating the components for the pressure plate in the constructor.
In this video (objectives)…
Creating the blueprint class for the pressure plate.
In this video (objectives)…
Implementing the Tick function for the pressure plate.
In this video (objectives)…
We create custom delegates in the pressure plate so that we can broadcast them when the pressure plate is activated and deactivated.
In this video (objectives)…
Creating the component that moves its owner from one point to the other point.
In this video (objectives)…
Working on the constructor for Transporter and creating a function to set start and end points.
In this video (objectives)…
Binding functions to the pressure plate’s delegates from the transporter component so that we can keep track of how many are activated.
In this video (objectives)…
Implementing the main functionality of the transporter component in the tick function.
In this video (objectives)…
Creating an actor class that we can reuse to create various moving actors.
In this video (objectives)…
Writing the code for the constructor of the movable actor class.
In this video (objectives)…
Creating the moving platform blueprint using the movable actor class.
In this video (objectives)…
Creating the moving door blueprint using the movable actor class.
In this video (objectives)…
Using the transporter component to animate the pressure plate when its activated.
In this video (objectives)…
A new actor class for the collectable keys we are going to place on the map.
In this video (objectives)…
Detecting when the player touches the key and collection logic.
In this video (objectives)…
Making the key look nicer by rotating the static mesh and adding a sound effect when its collected.
In this video (objectives)…
Creating a new C++ class that’s going to have a key static mesh on top of a small pillar. When the player collects a key it will appear on this object.
In this video (objectives)…
Activating the key mesh of the key holder when a player collects the associated key.
In this video (objectives)…
Using the keys as trigger actors in order to activate a transporter component by collecting them.
In this video (objectives)…
A new actor class that detects players and end the game with a victory.
In this video (objectives)…
Creating an RPC to instruct the server and the client to show the win screen.
In this video (objectives)…
Designing a widget blueprint that we are going to show when the game is won.
In this video (objectives)…
Customizing the player movement in order to create better controls.
In this video (objectives)…
Starting to design the level, we kick things off by making the first puzzle.
In this video (objectives)…
We design and test the second puzzle of our level.
In this video (objectives)…
Ending the section strong with the final puzzle of the game!
In this video (objectives)…
Wrapping up the section with some final words.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.