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

This course uses the AWS Free Tier.

Have you ever wondered how you can let your players launch your game, and connect directly with a server, playing in multiplayer with other players right away?

Or perhaps how you can allow your players to create user accounts for your game, with username, password and email? How do games allow you to sign up for a new user account, receiving a 6 digit verification code in their email, allowing them verify their account for your game?

Read more

This course uses the AWS Free Tier.

Have you ever wondered how you can let your players launch your game, and connect directly with a server, playing in multiplayer with other players right away?

Or perhaps how you can allow your players to create user accounts for your game, with username, password and email? How do games allow you to sign up for a new user account, receiving a 6 digit verification code in their email, allowing them verify their account for your game?

Have you ever wondered how to save player data in databases, so they can see their achievements in the game, showing their progress, skill level, items, or stats from previous matches? Or how leaderboards are made, showing the top scoring players who play the game across the planet?

How can you run dedicated servers that players can connect to? How can you set up servers in different regions around the globe, providing access to your game to players in different countries, allowing them to enjoy gameplay with the lowest possible ping times? And how to make competitive multiplayer games fair to all players, with an authoritative server optimized to manage server operations, reduce lag and provide a consistent and performant experience for everyone?

This course is a masterclass for dedicated servers and cloud backend for unreal engine games.

By the end of this course, you will be able to:

  • Compile Unreal Engine from source, create client and server build targets, and package dedicated server and client builds of your game

  • Integrate the GameLift Server SDK into your game to connect with GameLift

  • Learn how to make API calls with the AWS (command-line interface)

  • Host dedicated servers, both on your own machine and on cloud-hosted virtual machines (and you’ll know what those are)

  • Learn how to create serverless functions (in AWS Lambda) to access cloud resources and use AWS SDKs

  • Create secure user pools, where your game's players can create their own login/password, with email verification with Amazon Cognito

  • Implement security, requiring temporary access tokens granted via user pool login in order to perform game actions

  • Create your own

    You’ll be creating an AWS account and learning how to manage it using recommended best practices for the cloud. All of the core features of this course use the free tier, aside from two optional lectures using advanced security features in AWS for custom access token scopes – which cost me less than .69 cents to implement for this course. But you can skip those two lectures if you wish to stay in the free tier.

    I’ve created and provided you with an FPS template project as a starting point, with shooter mechanics so we can have some stats to save to the cloud, but it’s not required – you can use your own game project, or a completely empty game project if you want. This course is about creating and hosting servers and setting up the cloud backend for your games.

    We’ll be downloading and compiling Unreal Engine from source – which means you will need at least 230 GB of storage for this course. You must know the basics of Unreal Engine C++. You must use an Unreal source build of at least UE5.4 or above. (You can use the latest version of the engine, everything works).

    You do NOT need any experience or knowledge of cloud architecture.

    It’s time to take your games to the next level, and learn how shipped games manage their users, data, and their game servers.

    Are you ready to upgrade your game development skills? I’ll see you in the course.

Enroll now

What's inside

Learning objectives

  • Compile unreal engine from source and package dedicated servers
  • Integrate your unreal engine game project with cloud backend services
  • Save persistent data to cloud databases from within unreal engine
  • Create secure user pools for your games so players can log in from within the game
  • Create dedicated server-hosted lobbies
  • Manage game sessions with amazon gamelift
  • Learn cloud architecture and become an aws cloud architect

Syllabus

Introduction

Welcome to the course!

We will build Unreal Engine from source, which is required to build a dedicated server packaged project. We will integrate the GameLift server SDK into our game project and compile all prerequisites.
Read more

Tap into your most valuable resource in this course!

In order to package a dedicated server build, we need Unreal Engine from source.

Important things to keep in mind!

To build a dedicated server, we must compile Unreal Engine from source.

A First-Person Shooter template project is provided for this course. The project is compatible with Unreal Engine version 5.4 and above.

We discuss the prerequisites for integrating the GameLift Server SDK with our Unreal Engine project.

To package for a dedicated server, we must create a server Build Target. We learn about build targets and create one for server builds.

We lay out the game plan for integrating GameLift with our Unreal Engine project, and look at the prerequisites for compiling it. If you wish to skip these steps and download the necessary .dlls and GameLift plugin, download the OpenSSL binaries and Gamelift plugin .zip files in the resources.

We download Strawberry Perl, a prerequisite for OpenSSL. Don't worry, we won't be doing any Perl programming in this course!

We get NASM (Netwide Assembler), an assembler/disassembler for doing low-level operations - a prerequisite for OpenSSL

We build OpenSSL and get the coveted binaries we need to the GameLift SDK to implement its security measures.

We download the Amazon GameLift Server SDK

We compile the GameLift Server SDK and add its binaries to the GameLift plugin

We convert our project to use Rider as the IDE - it's now FREE for non-commercial use!

A quiz on Section 2

We will create a new AWS account and configure a billing alarm so we will be alerted of any unexpected charges.

We create our AWS Account and take a look at the AWS Console Home

We learn how to manage our billing, and set up a billing alarm to send us notification if billing ever goes above a specified threshold. Everything we do in this course will be covered under the AWS Free Tier!

We learn the difference between an IAM User and Identity Center Users. We will be following best practices recommended by AWS and creating an Identity Center, Organization, and Identity Center User for daily use, so we don't use the Root User for daily tasks.

We set up Identity Center and make our Identity Center User.

We create a permission set and grant it to our Identity Center user to give it access to AWS.

A quiz on Section 3

We integrate GameLift with our Unreal Engine project, learning how to harvest command line parameters for GameLift.

We create a Game Mode and prepare it for code to connect to GameLift

We begin to add code to our Game Mode for harvesting data from command line arguments for the GameLift connection.

We implement the callback which GameLift will call on our Game Mode in response to the creation of a GameLift Game Session

We implement the callback which GameLift will call on our Game Mode in response to the termination of a GameLift process

We implement the callback for reporting health checks from the server to GameLift

We implement code to harvest the selected port from command line arguments or select the game process default if it isn't supplied

We call ProcessReady to initialize GameLift

We package the game, both for clients and the dedicated server

We add the OpenSSL binaries to our packaged build directory

A quiz on Section 4

We will learn how to host Unreal Engine dedicated servers on our own hardware while creating GameLift game sessions.

We download the latest version of the AWS CLI (command-line interface)

We configure the CLI to retrieve our SSO credentials automatically

We learn how to create a gamelift location for our Anywhere Fleets

We create an Anywhere Fleet for hosting a dedicated server on our own compute resource (our PC)

We run the register-compute command to register our own compute resource with our Anywhere Fleet

We run get-compute-auth-token to get an authentication token for creating GameLift Game Sessions

We learn how we can test our dedicated server by connecting to it with a client build

We create a game session using the auth token we retrieved using get-compute-auth-token

We create a Player Session for our Game Session

A quiz on Section 5

We will learn what virtual machines are and how to host our dedicated servers on cloud-hosted GameLift Fleets.

We discuss what virtual machines are, why they are useful, and the benefits of hosting game servers on them rather than self-hosted hardware

We create an install batch file for virtual machines to execute upon startup, in order to install all required prerequisites to run our Unreal Engine dedicated server.

We upload our dedicated server build to GameLift so it can be run on a virtual machine

We create a GameLift-hosted fleet that can run EC2 instances with our dedicated server build

We launch our client build and connect to the cloud-hosted dedicated server, running on a virtual machine in an EC2 instance in our GameLift-hosted fleet.

We delete our fleet, ensuring that it will not use up our free EC2 hours while not in use.

A quiz on Section 6

We learn about serverless functions and how we can use AWS Lambda to execute API calls.

We discuss how Lambdas are "serverless" and what it means for a function to be serverless

We create our first Lambda function

We discuss the anatomy of a Lambda function and all of its parts

We create a test event for our first Lambda function

We learn how to log information to the console and retrieve that information in Cloudwatch

We create a ListFleets Lambda function for listing all fleets

We discuss the try/catch block and how we can use it to control what happens in the event that our Lambda throws an error

Quiz on Section 7

We will create our own REST APIs with endpoints that we can trigger from within our Unreal Engine project.

We discuss our plan for setting up API Gateway to create API endpoints to trigger our lambdas via HTTP requests

We create a REST API in API Gateway

We create a module in our Unreal Engine project to encapsulate all of our dedicated server code

We create the Game Mode class for our dedicated servers module

We create a Test HUD for displaying widgets for sending and receiving HTTP requests

We create a List Fleets widget for our ListFleets API endpoint

We create an HTTP Request Manager class to handle sending HTTP requests, receiving HTTP responses, and parsing the data

We create a Data Asset to store the API endpoints for our APIs

We create an HTTP Request in our HTTP Request Manager class

We parse the HTTP Response to get its data

We parse the Metadata in our HTTP Response into a struct

We parse the payload for the ListFleets response

We parse errors and handle them when they occur

We create a ListFleets callback function for when we parse the response so we can display listed fleets to our HUD

We add Fleet Id widgets to our ListFleetsBox in the HUD

Quiz on Section 8


We learn how to create game sessions from within our Unreal Engine project and create a Portal for our game.

We set up the classes for our game Portal

We create callbacks for joining games

We create the code for describing fleet attributes

We loop over the fleets we found when describing fleet attributes

We call describe game sessions to find all game sessions running on our fleets

We create a game session if it does not already exist

We create an endpoint in our REST API for finding or creating a game session

We make the HTTP request for finding or creating a game session

We create the struct for holding information for the game session

We parse the HTTP response to store the data in our game session struct

Quiz on Section 9

We will learn how to create GameLift player sessions for players joining games.

We create a Lambda function for creating a player session

We create an endpoint to trigger our Create Player Session lambda

We handle the game session status to determine whether or not we can create a player session yet

We learn how to serialize content for our HTTP requests to pass data into the lambda's event object

We create the player session struct to hold player session data

We parse the HTTP response into a player session struct

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Requires compiling Unreal Engine from source, which allows for deep customization and optimization of the engine for dedicated server builds, giving developers greater control
Uses AWS Free Tier for core features, which allows developers to experiment and deploy dedicated servers without incurring significant costs, making it accessible for indie developers
Integrates GameLift Server SDK, which is essential for managing game sessions, player sessions, and server health, providing a robust solution for multiplayer game infrastructure
Requires at least 230 GB of storage, which may pose a challenge for developers with limited storage capacity, requiring them to manage their resources effectively
Requires knowledge of Unreal Engine C++, which may be a barrier for beginners without prior programming experience, necessitating additional learning resources
Uses Unreal Engine 5.4 or above, which may exclude developers using older versions of the engine, potentially requiring them to upgrade their projects

Save this course

Save Unreal Engine 5 Dedicated Servers with AWS and GameLift to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Unreal Engine 5 Dedicated Servers with AWS and GameLift with these activities:
Review AWS Fundamentals
Familiarize yourself with basic AWS concepts and services to better understand the course material.
Browse courses on AWS
Show steps
  • Read the AWS documentation on core services like EC2, S3, and Lambda.
  • Watch introductory videos on AWS cloud computing.
  • Complete a basic AWS tutorial, such as launching an EC2 instance.
Brush Up on C++ Fundamentals
Strengthen your C++ skills to effectively work with Unreal Engine's scripting and dedicated server logic.
Browse courses on C++
Show steps
  • Review C++ syntax, data structures, and object-oriented programming concepts.
  • Practice writing simple C++ programs.
  • Study Unreal Engine's C++ API documentation.
Read 'AWS Certified Cloud Practitioner Study Guide'
Gain a broader understanding of AWS cloud services and architecture.
Show steps
  • Read the book cover to cover.
  • Take notes on key concepts and services.
  • Complete the practice questions at the end of each chapter.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Deploy a Simple Game Server
Apply the course concepts by deploying a basic game server using AWS EC2 and connecting to it from an Unreal Engine client.
Show steps
  • Set up an AWS EC2 instance.
  • Configure the instance to run a simple game server (e.g., a basic TCP server).
  • Create an Unreal Engine client that connects to the server.
  • Test the connection and basic gameplay functionality.
Document Your Server Deployment Process
Reinforce your understanding by creating a detailed guide on how to deploy a dedicated server using AWS and GameLift.
Show steps
  • Outline the steps involved in deploying a dedicated server.
  • Document each step with clear instructions and screenshots.
  • Share your guide with other students for feedback.
Read 'Mastering Game Development with Unreal Engine 5'
Deepen your understanding of Unreal Engine 5's features and workflows.
Show steps
  • Read the book cover to cover.
  • Experiment with the examples provided in the book.
  • Apply the concepts learned to your own game projects.
Contribute to an Open-Source Unreal Engine Project
Apply your knowledge and collaborate with others by contributing to an open-source Unreal Engine project related to networking or server management.
Show steps
  • Find an open-source Unreal Engine project on GitHub or GitLab.
  • Identify a bug or feature to work on.
  • Submit a pull request with your changes.
  • Respond to feedback from the project maintainers.

Career center

Learners who complete Unreal Engine 5 Dedicated Servers with AWS and GameLift will develop knowledge and skills that may be useful to these careers:
Game Server Engineer
A Game Server Engineer designs, develops, and maintains the backend systems that power multiplayer games. This includes setting up dedicated servers, managing game sessions, optimizing server performance, and ensuring a smooth and fair player experience. This course helps build a foundation in dedicated server architecture, using Unreal Engine, and integrating cloud services like AWS. A game server engineer will utilize the skills learned in this course, such as compiling Unreal Engine from source, connecting to GameLift, and setting up virtual machines for game server hosting.
Game Programmer
Game Programmers are responsible for writing code that makes video games work. This includes implementing gameplay mechanics, AI, and user interfaces. This course is useful because it has a deep focus on how to use Unreal Engine to implement a game's multiplayer component, which many game programmers will need to do. The course's focus on building from source, deploying dedicated servers, connecting to GameLift, and implementing cloud APIs are all necessary skills for a game programmer who wants to work on multiplayer titles. A game programmer might find this course particularly helpful as it uses Unreal Engine, which many games use.
Software Developer
A Software Developer develops and maintains computer applications, working with programming languages and development tools. This course may be useful to a Software Developer who would like to work on developing games with multiplayer capabilities. The course introduces using Unreal Engine, building from source, and connecting to a cloud backend using AWS. A Software Developer will utilize skills from this course setting up dedicated servers, implementing APIs, and managing user data in a game backend.
Cloud Solutions Architect
Cloud solutions architects design and implement cloud-based solutions for organizations. They possess specific expertise in cloud technologies and can build reliable, scalable, secure, and cost-effective solutions. This course is especially helpful as it provides practical experience with AWS GameLift and other cloud services within the context of hosting multiplayer games, which is a unique niche. This course helps a cloud solutions architect build familiarity with AWS services and virtual machines using Unreal Engine. A Cloud Solutions Architect may want to specialize on game server infrastructure within the cloud.
Cloud Engineer
Cloud Engineers are responsible for designing, building, and managing cloud-based systems. They work with cloud platforms such as AWS, Microsoft Azure, and Google Cloud, implementing scalable solutions for various applications. This course may be particularly helpful to a cloud engineer as it provides hands-on experience with AWS, particularly in the context of game server hosting with GameLift and serverless functions with Lambda. The course's focus on compiling Unreal Engine from source and packaging dedicated servers gives practical experience with deploying applications to a cloud environment.
Backend Developer
A Backend Developer builds the server-side logic and databases that support applications, ensuring data integrity and responsiveness. This course may be useful for a backend developer as it provides practical experience with cloud databases, RESTful APIs, and serverless functions. The course uses AWS to implement user pools, manage data, and implement security for applications, all of which are useful skills for backend developers. Using Unreal Engine, the course also allows a backend developer to see their code in production inside a game.
DevOps Engineer
A DevOps Engineer automates and streamlines software development and deployment processes, working closely with development and operations teams to ensure applications are deployed efficiently. This course may be useful to a DevOps Engineer looking to implement those practices for game development. It provides experience working with a continuous integration and continuous deployment pipeline including building with Unreal Engine from source, packaging dedicated servers, working with game servers, implementing backend API's, and deploying virtual machines.
Systems Administrator
A Systems Administrator manages and maintains computer systems, ensuring their stability, performance, and security. Often this work is done on servers. This course may be useful to a Systems Administrator as it provides experience with server management within the context of game development. The course helps build a foundation in working with virtual machines and cloud-based server infrastructure using AWS. It also introduces the command line and using it to manage server configuration. A Systems Administrator should understand how game servers work, as they are similar to other servers.
Solutions Architect
A Solutions Architect designs and oversees the implementation of technical solutions for business problems, often involving cloud technologies. This course may be useful as it provides experience with designing cloud-based backend systems for games using AWS. The course will help a Solutions Architect when planning a cloud deployment for game servers, user authentication, and data management. Many solutions architects must provide documentation about the architecture they design, and this course provides hands-on experience with these systems.
Network Engineer
Network Engineers design, implement, and maintain computer networks and ensure they are stable, secure, and provide the necessary bandwidth for applications to run smoothly. While this course does not directly discuss network infrastructure, the course may be useful to a Network Engineer interested in what goes on behind the scenes of online games. Understanding how the game connects to servers in the cloud and how it manages game sessions, and player connections might give insights into the types of network load to expect from these systems. This course provides useful context to how online games are hosted, deployed, and managed.
Technical Project Manager
A Technical Project Manager leads and coordinates technical projects, ensuring they are completed on time. This course may be useful to a Technical Project Manager in the game development industry. This course focuses on the backend of a game, and learning about the processes to build, deploy, and manage server infrastructure in the cloud should give a project manager a better understanding of the processes. It may be useful for them to have hands-on experience compiling game engines from source, and using cloud infrastructure.
Database Administrator
A Database Administrator manages and maintains databases, ensuring their performance, security, and availability. This course may be helpful as it works with databases in the context of game development. Specifically, it discusses saving player data to cloud databases from within Unreal Engine. Although it does not go deep into database administration practices, the course is useful in understanding how game data can be stored and managed. It will also be helpful for understanding the structure of game data, and how it is typically used.
Game Designer
Game Designers create the vision and experience for a game, often working closely with programmers and artists. This course may be useful for a Game Designer to understand the technical constraints involved in implementing multiplayer functionality. This is helpful to the game designer because they are the ones who decide the parameters of the game. Learning about dedicated servers, user authentication, and player data management can better inform the scope of a game design.
Mobile Application Developer
A Mobile Application Developer creates applications for mobile devices. They work with a variety of tools and programming languages. This course may be useful for a Mobile Application Developer interested in implementing a backend for their application. While the course uses Unreal Engine, the principles of creating backends in the cloud, implementing serverless functions, and creating user pools all apply to mobile applications. By the end of this course, you will be able to understand how a mobile application might interface with cloud services.
Web Developer
A Web Developer builds and maintains websites and web applications, making use of programming languages such as HTML, CSS, and JavaScript. This course may be helpful to a Web Developer who is interested in exploring serverless functions, and API integration. This course implements API endpoints and makes use of HTTP requests, all of which are fundamental principles in web development. However, the course focuses more on game development, not web development, so a Web Developer may or may not find it helpful.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Unreal Engine 5 Dedicated Servers with AWS and GameLift.
Provides in-depth knowledge of Unreal Engine 5 features and workflows. It is particularly useful for understanding advanced topics related to dedicated servers and networking. While the course covers the essentials, this book offers additional depth and practical examples. It valuable resource for both beginners and experienced Unreal Engine developers.
Provides a comprehensive overview of AWS cloud services and concepts. It is particularly useful for understanding the cloud architecture and AWS services used in the course. While not strictly required, it offers valuable background knowledge and is commonly used as a reference for the AWS Certified Cloud Practitioner exam. It adds breadth to the course by covering a wider range of AWS services.

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