We may earn an affiliate commission when you visit our partners.
Stephen Ulibarri

Over 64 hours of content.

Read more

Over 64 hours of content.

Learn all about Unreal Engine multiplayer in this fully comprehensive C++ course. From scratch, we create a complete multiplayer shooter game, capable of creating and joining game sessions and connecting many players across the internet. We'll create our very own custom plugin that can be added to any Unreal Engine project to easily turn it into a multiplayer game.We learn how to optimize our game for the best performance, as competitive shooters require the highest performance possible. We'll implement lag compensation techniques such as client-side prediction and server-side rewind, so the game performs smoothly even in the presence of high lag. We learn how to use the proper game classes for each multiplayer mechanic. Custom match states, warmup/cooldown match timers, Elim announcements, HUD with health, shields, ammo and grenades, and more. We keep all important functionality on the server, to prevent cheating, and learn the proper way to use the Player Controller, Game Mode, Game State, Player State, Character and Game Instance classes.We make assault rifles, pistols, submachine guns, rocket launchers, grenade launchers, sniper rifles and throwing grenades.  All functional in multiplayer, optimized for best performance.After this course, you'll be able to create any multiplayer game you want. If you can do a fast-paced shooter well, you can do any game, because fast-paced, competitive games require the best performance possible.

This course assumes that you have knowledge of C++ programming basics. Knowledge of variables, classes, inheritance, and object-oriented programming is recommended to have the best experience in this course.

Enroll now

What's inside

Syllabus

Introduction

Welcome to the Unreal Engine 5 C++ Multiplayer Shooter Course!

Jetbrains Rider is now free for non-commercial use!

Read more

We discuss important information you need to get the best out of this course

We create a plugin that we can add to any Unreal Engine project, enabling online multiplayer sessions

We learn about how multiplayer games are architected, and go over the peer-to-peer and client-server models, and learn which of these Unreal Engine uses.

We learn how to test multiplayer in the PIE

We connect two machines via a LAN connection

We learn about the Online Subsystem and how it provides an abstraction layer so we can use the same code for multiple online services

We learn about Online Sessions and how they work

We configure our project for Steam multiplayer

We learn how to access Unreal Engine's Online Subsystem from C++ code

We learn how to create an online session

We create the necessary setup for joining sessions

We discuss Steam Regions and why they can help improve our multiplayer network experience

We actually join a game session

We create our own plugin that can be added to any Unreal Engine project

We create our own custom Subsystem that is constructed alongside the Game Instance

We learn about delegates in the Session Interface

We create a Menu class

We access our own custom Subsystem

Read this important note on the OnLevelRemovedFromWorld function being replaced.

We create a multiplayer online session

We add function callbacks for our Subsystem's delegates

We create more delegates for our Subsystem

Session Settings

We implement joining sessions from our Menu

We track the number of incoming players in the Game Mode

Optional Challenge: Implement StartSession

We add a path to the Lobby level

We polish up our Menu Subsystem

A quiz on what you've learned about our Multiplayer Sessions Subsystem

We create our multiplayer project, configure it for Steam, and add our Multiplayer Sessions plugin. We create the Blaster Character class and implement basic movement functionality.
On Unreal Engine Versions

We create our Multiplayer Project

Make sure you get this part right. If you can't create sessions, come back to this and make sure your DefaultEngine.ini matches this.

We test an Online Session in our new project

We get our hands on some free assets to use for our project

Follow the link in the resources to see how to retarget animations in Unreal Engine 5!

We retarget animations to our Character from the Epic Mannequin and the Mixamo Skeleton

We create the Blaster Character class

We add a Camera and a Spring Arm to our Blaster Character

We implement the basic movement functionality for our Blaster Character

We create the Anim Instance C++ class and a new Animation Blueprint for our Blaster Character

We learn about Seamless and Non-Seamless Travel and configure our game to use Seamless Travel

We learn about the concept of Network Role and how it works in Multiplayer

Optional Challenge: Show the Player Name

A quiz on what you've learned about Network Role and Seamless Travel in this section

The Weapon

We create the Weapon class, which will be the parent for each of our specialized Weapons in the game

We create a Widget that can inform the player when they can pick up a Weapon

We learn how to mark a variable for replication, and replicate the current Overlapping Weapon

We create a Combat Component class to handle combat-related functionality, and create an EquipWeapon function so we can equip Weapons

We learn about RPCs (Remote Procedure Calls), which are functions designed to be called on one machine and executed on another

We add an equipped pose to our Animation Blueprint

We make use of the Crouch function, and take advantage of the multiplayer crouching capabilities built-in to the Character class

We add the ability to aim, and replicate the aiming state to all clients so they can see our Character in the aiming pose

We create our running Blendspace and add axis values for leaning and strafing

We calculate the necessary values to pass into our Blendspace to lean and strafe

We round out our animation Blueprint with Idle and Jumping states

We add the ability to crouch walk

We add an Aim Walking state, allowing our Character to change its speed and pose as we aim while walking

We extract animation poses from the Aim Offset animation, and convert them to additive animations

We apply our aiming poses to an Aim Offset asset and test its functionality

We discuss how rotational values are serialized and compressed before being sent across the network

We implement our aiming and hip Aim Offsets in our Animation Blueprint

We use Inverse Kinematics to place the left hand on a socket on the Weapon so our grip is always correct

We implement an algorithm for turning in place when our Yaw exceeds 90 degrees

We use a Rotate Root Bone node in our Animation Blueprint to implement turning in place

We discuss the Net Update Frequency, a variable that determines how often an Actor will be considered for replication

We add crouching capability to our Character when unequipped

We create rotated running animations for leaning

We add footstep and jump sounds to our running and jumping animations, and make sure they have sound attenuations

A quiz testing your understanding of what you've learned in the Weapon Section

Optional Challenge: Crouch Footstep Sounds
Firing Weapons

We discuss the difference between Hit Scan and Projectile Weapons, and create our first specialized weapon type: the Projectile Weapon

We create a weapon firing Animation Montage and play it in response to user input

We add Weapon firing effects so we can see and hear gunshots

We implement our fire effects in multiplayer so all machines can see when someone fires

We calculate a Hit Target vector so we can launch our projectiles precisely

We spawn projectiles when firing the weapon

We add a Projectile Movement Component to our Projectile class so it can fly through the air

We add a tracer to our projectile so we can see rapid-flying projectiles

We send the Hit Target data to the server so it knows where to launch the projectile

We bind a function to the OnHit delegate on our projectile's collision box

We create a class for bullet shells and spawn bullet shells from our weapon when we fire

We add an impulse to the crosshairs so we can launch them from the weapon, and play shells sounds with a Hit Event

A quiz on what you've learned about Firing Weapons

Weapon Aim Mechanics
Optional Challenge: Add random rotation to the bullet shells

We create a Blaster Player Controller and a Blaster HUD class for our game

We create a function for drawing the HUD textures to the screen

We add the ability to spread and shrink the crosshairs based on in-game events

We transform the right hand so our weapon always faces the direction we're shooting

We zoom in while aiming our weapon

Shrink Crosshairs when Aiming

Change Crosshairs Color

We extend the starting point of our line trace so we never hit our own Character or shoot in the wrong direction

We implement hit reactions when our projectiles hit the Blaster Character

Save this course

Save Unreal Engine 5 C++ Multiplayer Shooter to your list so you can find it easily later:
Save

Activities

Coming soon We're preparing activities for Unreal Engine 5 C++ Multiplayer Shooter. These are activities you can do either before, during, or after a course.

Career center

Learners who complete Unreal Engine 5 C++ Multiplayer Shooter will develop knowledge and skills that may be useful to these careers:
Game Developer
A game developer brings video game concepts to life, writing code and designing gameplay mechanics. This course helps game developers, especially those focused on multiplayer games, learn to architect online interactions using Unreal Engine 5 and C++. By creating a multiplayer shooter from scratch, the course provides practical experience in developing game sessions, optimizing performance, and implementing lag compensation techniques. The knowledge gained here will help a game developer build networking capabilities, handle player interactions, and prevent cheating, all essential for creating engaging multiplayer experiences. This course offers valuable skills for creating competitive and high-performance games.
Unreal Engine Developer
An Unreal Engine developer specializes in using the Unreal Engine to create interactive experiences, ranging from games to simulations. This course is invaluable for an Unreal Engine developer who wants to master multiplayer functionality. It offers a deep dive into Unreal Engine's C++ capabilities, showing how to create online sessions, manage player connections, and optimize performance. The course's focus on building a multiplayer shooter provides hands-on experience with essential networking concepts, such as lag compensation and server-side authority, while also teaching the use of crucial game classes like Player Controller, Game Mode, and Game State.
Multiplayer Programmer
A multiplayer programmer focuses on the design, development, and implementation of networked gameplay features. This course will enable a multiplayer programmer to create robust and scalable online experiences using Unreal Engine 5. It covers essential topics such as creating and joining game sessions, optimizing game performance, and implementing lag compensation techniques like client-side prediction. By creating a complete multiplayer shooter, the course offers hands-on experience with the tools and techniques necessary to build engaging and cheat-resistant multiplayer games. The focus on server-side authority and proper game class usage are especially useful.
Network Programmer
A network programmer specializes in the technical aspects of connecting players in online games. This course helps a network programmer develop expertise in Unreal Engine 5's networking capabilities. By creating a complete multiplayer shooter from the ground up, the course offers practical experience in managing online sessions, optimizing network performance, and implementing lag compensation techniques. The course's emphasis on server-side authority, client-side prediction, and proper game class usage will help a network programmer build robust and cheat-resistant multiplayer systems. This course may serve as a solid foundation for understanding the intricacies of building networked games.
Gameplay Programmer
A gameplay programmer is responsible for implementing the rules, mechanics, and interactions that define a video game's experience. This course provides gameplay programmers with the tools and knowledge to create compelling multiplayer experiences in Unreal Engine 5. By creating a complete multiplayer shooter, the course offers hands-on experience with implementing game mechanics, managing player interactions, and optimizing performance for online play. The course's focus on weapons, HUDs, and game states is particularly relevant, as is learning how to prevent cheating. This is useful for those who wish to learn how to translate game design concepts into functional, engaging gameplay.
Software Engineer
A software engineer designs, develops, and tests software applications. This course will benefit any software engineer looking to apply their skills to game development, specifically in the realm of multiplayer games. The course provides practical experience in C++ programming within the Unreal Engine 5, covering topics such as online session management, network optimization, and cheat prevention. The project-based approach, where a multiplayer shooter is built from scratch, allows software engineers to gain hands-on experience with game development concepts and best practices. This course can help any engineer develop a strong foundation in building networked applications.
Tools Programmer
A tools programmer develops software that helps game developers streamline their workflow. This course may be helpful to tools programmers who want to enhance their understanding of Unreal Engine 5's multiplayer capabilities. The course demonstrates how to create custom plugins and subsystems, which a tools programmer can adapt to build tools that automate tasks such as session management, network debugging, or cheat detection. The course's practical approach and focus on optimizing performance are valuable for creating efficient and effective development tools. The knowledge of Unreal's Online Subsystem may also be particularly beneficial.
Simulation Developer
A simulation developer creates software that models real-world systems or environments for training, research, or entertainment purposes. This course may be useful for a simulation developer who wants to leverage Unreal Engine 5's capabilities to create realistic and interactive simulations with multiplayer components. The course's focus on network optimization, lag compensation, and server-side authority is relevant for building simulations that accurately represent complex interactions between multiple users or entities. This course may help simulation developers to build a strong foundation for creating networked simulation environments.
Technical Artist
A technical artist serves as a bridge between art and programming, optimizing art assets for performance and implementing visual effects. This course may benefit technical artists working on multiplayer games in Unreal Engine 5. Specifically, the focus on performance optimization and the networking of visual elements, such as weapon effects and character animations, could expand the skillset of a technical artist. Understanding how to balance visual fidelity with network efficiency contributes to creating compelling and smooth online experiences. Gaining insight into how visual elements interact within a networked environment may prove advantageous.
Quality Assurance Tester
A quality assurance tester identifies and documents software defects to ensure product quality. This course may be useful for a quality assurance tester specializing in multiplayer games because it provides insights into the complexities of networking and game architecture. Understanding the underlying systems like online session management and replication facilitates the creation of more effective test plans and bug reports. This course may prove useful in helping a tester to identify and communicate issues related to network performance and gameplay synchronization.
Animator
An animator creates the movement and visual behavior of characters and objects in games. This course may be relevant to an animator working on a multiplayer game in Unreal Engine 5, as it delves into how animations are replicated and synchronized across a network. Understanding how character movement and weapon animations are handled in a multiplayer context can help animators optimize their work for online play, ensuring smooth and accurate visual representation of player actions. This course may provide insight into the technical aspects of network animation.
Level Designer
A level designer crafts the environments and layouts in which gameplay takes place. While this course is heavily focused on programming, a level designer may find some value in understanding how multiplayer games function on a technical level. This understanding may help a level designer to create environments that are optimized for network performance and facilitate engaging multiplayer interactions. A level designer could find that understanding the gameplay environment can further enhance their designs. This course may prove helpful for designers who want to create more compelling multiplayer maps.
Project Manager
A project manager is responsible for planning, executing, and closing projects. This course may be useful for a project manager overseeing the development of a multiplayer game in Unreal Engine 5. Although the course is technical, understanding the underlying complexities of multiplayer game development might help a project manager to create realistic schedules, allocate resources effectively, and communicate better with the development team. Familiarity with concepts like network optimization and cheat prevention may also help in making informed decisions about project scope and priorities.
Technical Writer
A technical writer creates documentation such as help guides and manuals. This course may be relevant to a technical writer who is documenting a game or game engine. The ability to grasp the intricacies of online session creation, and other complex tasks will help a technical writer produce high-quality documentation. This course may be helpful for improving a technical writer's breadth of knowledge.
Localization Specialist
A localization specialist adapts a game for different regional markets, translating text and adapting cultural elements. This course may be relevant to a localization specialist because it can better equip them to understand the multiplayer systems. Understanding the framework of the game will help a localization specialist to be more informed. This course may prove useful for expanding their overall breadth of knowledge of game development.

Reading list

We haven't picked any books for this reading list yet.
Focuses on AI and machine learning in Unreal Engine 5, providing a comprehensive look at the tools and techniques used to create intelligent systems.
This comprehensive guide covers all aspects of Unreal Engine 5, from installation and setup to advanced topics such as virtual reality and augmented reality.
Covers virtual reality and augmented reality in Unreal Engine 5, providing a deep dive into the topic.
Covers effects and simulations in Unreal Engine 5, providing a deep dive into the topic.
Provides a collection of 42 specific guidelines for writing effective modern C++ code. These guidelines cover a wide range of topics, from basic coding practices to advanced design techniques.
Provides a comprehensive overview of C++ concurrency, covering everything from the basics to advanced topics such as thread synchronization and parallelism. It great resource for both beginners and experienced C++ programmers who want to learn more about concurrency.
Provides a comprehensive overview of C++ templates, covering everything from the basics to advanced topics such as metaprogramming. It great resource for both beginners and experienced C++ programmers who want to learn more about templates.
Provides a collection of 55 specific guidelines for writing effective C++ code. These guidelines cover a wide range of topics, from basic coding practices to advanced design techniques.
Provides a comprehensive overview of C++ templates, covering everything from the basics to advanced topics such as metaprogramming. It great resource for both beginners and experienced C++ programmers who want to learn more about templates.
Provides a comprehensive overview of the C++ programming language, covering everything from basic syntax to advanced topics such as templates and the Standard Template Library (STL). It great resource for both beginners and experienced C++ programmers.
Provides a comprehensive overview of modern C++ design, covering topics such as generic programming, design patterns, and metaprogramming. It great resource for both beginners and experienced C++ programmers who want to learn more about modern C++ design.
Great introduction to game programming for beginners. It uses a simple programming language called Game Maker Language (GML) to teach the basics of game development.
Practical guide to writing efficient and maintainable game code. It's a great resource for anyone who wants to improve their programming skills.
Classic in the field of game design, and it's a must-read for anyone who wants to learn more about the art and science of creating great games.
Provides a comprehensive overview of the game development process, covering everything from game design to programming to art and sound design. It's a great starting point for anyone who wants to learn more about game development.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

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.

Affiliate disclosure

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.

© 2016 - 2025 OpenCourser