We may earn an affiliate commission when you visit our partners.
Course image
Dobromir Ivanov

I will be completely honest with you.

In the past, I have been struggling for months to find good information on internet on how to create and host real dedicated game server. There is hardly any well structured information on this topic. Now that I have a decent understanding on the topic I've decided to share it with you. I really hope this course will help you lay the foundation on your journey in the world of online multiplayer games.

Here is what you should expect in the course:

Read more

I will be completely honest with you.

In the past, I have been struggling for months to find good information on internet on how to create and host real dedicated game server. There is hardly any well structured information on this topic. Now that I have a decent understanding on the topic I've decided to share it with you. I really hope this course will help you lay the foundation on your journey in the world of online multiplayer games.

Here is what you should expect in the course:

1. In the first section we are creating very minimal setup of our client-server communication using Unity3D, .NET 6 and the networking library LiteNetLib.

2. After we are done with the proof of concept, or as a like to call it "walking-skeleton" project, we will continue by laying the foundation of a strongly typed client to server communication. We will implement packet serialization and deserialization and will make it so the logic that handles different packets is separate in different packet handlers and it will use strongly typed C# structs.

3. Once the networking layer is done, we will work on two core scenes that are essential for any multiplayer game. Login and Lobby scenes.

4. In the login scene, we will allow the players to identify themselves and register in our server. We will handle user input validation and we will give the user visual feedback in the form of loading animation.

5. In the lobby scene we will create a sorted list of the top 10 players and will show their statuses (online or offline). We will also show the current total players count on the server. In addition to that we will update the list on all clients when a new player joins or an existing one turns offline.

6. After we are done with that, we will enable the players to register in our matchmaking pool and search for opponents by pressing the "Find Opponent" button.

7. Once a match is found, we will redirect the players to the actual game scene, where they will be able to play the classic game of Tic Tac Toe.

8. We will implement beautiful animations and handle corner cases on both server and client-side.

9. After one game session is complete we will allow the players to request to play again and then of course give them the ability to accept or reject the offer.

10. And last but not least, once we are ready with the game client and server, we will deploy our server to a cloud provider and will connect to it from the client.

11. If there is interest in the course I will expand it with additional bonus sections, depending on the needs of the students.

Since this is my first course in Udemy, my presentation skills are far from perfect and I apologize for that, but I still believe that there is valuable information that you can benefit from. I really hope you enjoy it.

Are there any course requirements or prerequisites?

Basic understanding of Unity3D and .NET

A passion and desire to learn more about how to create online multiplayer game.

Who this course is for:

This course is intended for anyone that is interested on creating a custom dedicated server using low-level networking. The course itself is not for complete beginners as do not cover very basic concepts like for example: How to install software or the very basics of C# programming. But I still believe that even if you are beginner you will be able to follow up, because the course is basically a step-by-step guide.

Enroll now

What's inside

Learning objectives

  • Create a low-level dedicated game server using litenetlib and .net core 6.
  • Host the server on digital ocean, azure, aws or any other cloud platform using docker and azure container instances.
  • Create a simple tictactoe game client that will communicate with the authoritative server.
  • Create a gameplay lobby to help with matchmaking.
  • Create a strongly typed networking layer that can be reused for any future game.

Syllabus

Introduction
In this section we will lay the foundations of good server architecture where each message will be handled by separate handler. This will allow for easy extensibility and separation of concerns.
Read more

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Activities

Coming soon We're preparing activities for Unity Multiplayer: Create and host dedicated game server.. These are activities you can do either before, during, or after a course.

Career center

Learners who complete Unity Multiplayer: Create and host dedicated game server. will develop knowledge and skills that may be useful to these careers:
Multiplayer Game Developer
This role involves designing, implementing, and optimizing the systems that allow players to interact in real-time within a game. A Multiplayer Game Developer works on both client-side and server-side logic to ensure seamless online experiences, handling aspects like synchronization, latency, and security. This course provides a robust foundation for becoming a Multiplayer Game Developer, offering deep insights into creating and hosting dedicated game servers. Learners apply Unity3D for client development, integrate it with a custom .NET 6 server, and master low-level networking with LiteNetLib. The practical experience of building login and lobby scenes, implementing matchmaking, and deploying a server to cloud platforms such as Digital Ocean, Azure, or AWS, directly translates to the core responsibilities of this demanding and exciting career.
Game Server Engineer
As a Game Server Engineer, you are responsible for building, maintaining, and scaling the backend infrastructure that powers online games. This includes developing server-side logic for authentication, player data management, matchmaking, and ensuring the stability and performance of the game. This course is an excellent pathway for those aspiring to become a Game Server Engineer, as its central theme is the creation and hosting of dedicated game servers. It details the process of establishing robust server architecture, implementing strongly typed client-server communication using .NET 6 and LiteNetLib, and managing user data through a UsersRepository. Furthermore, the practical skills gained in deploying servers to cloud providers like Azure and AWS using Docker are directly applicable to the operational demands of this specialized engineering role.
Network Programmer Game Industry
A Network Programmer Game Industry professional specializes in the intricate communication systems that underpin multiplayer games, focusing on optimizing data flow, minimizing latency, and ensuring reliable connectivity between clients and servers. This role demands expertise in network protocols, serialization, and handling real-time data. This course is exceptionally well-suited for individuals aiming to become a Network Programmer Game Industry specialist, as it delves deeply into low-level networking. You will gain hands-on experience by creating a strongly typed networking layer with LiteNetLib, implementing packet serialization and deserialization, and designing robust client-server communication. The attention to detail in handling network events and ensuring data integrity between Unity clients and the .NET 6 server directly addresses the core competencies required for success in this technical field.
Backend Developer Game Industry
A Backend Developer Game Industry expert designs and implements the server-side components that support game functionality, including player accounts, leaderboards, in-game economies, and persistent world data. This role requires strong programming skills and an understanding of scalable system architecture. This course offers a significant advantage for those pursuing a career as a Backend Developer Game Industry. It provides comprehensive training in establishing a dedicated game server using .NET 6, covering essential backend elements such as user authentication, login scene implementation, and player data management through a UsersRepository to store scores and statuses. The practical experience with matchmaking systems and deploying server applications to cloud environments further solidifies the skills needed to build robust and scalable game backend services.
Game Programmer
A Game Programmer translates game design into functional code, working on various aspects of a game, including gameplay mechanics, AI, user interfaces, or system architecture. This course is an excellent resource for aspiring Game Programmers, particularly those interested in online experiences, as it covers fundamental concepts for developing a complete multiplayer game. Learners gain practical experience by creating a Unity client and integrating it with a custom .NET 6 server. From implementing core game scenes like Login and Lobby to developing the Tic Tac Toe gameplay logic, handling win conditions, and managing post-game interactions, the course provides a holistic understanding of game development within a networked environment. This broad exposure helps build a versatile skill set suitable for a generalist Game Programmer role.
Unity Software Engineer
A Unity Software Engineer leverages the Unity3D engine to develop interactive applications, games, and simulations, often focusing on client-side logic, user interfaces, and integration with various services. This course helps build a foundation for an aspiring Unity Software Engineer by focusing on integrating Unity game clients with custom .NET 6 servers for multiplayer functionality. Learners develop core scenes like Login and Lobby, create user interfaces with loading animations, and implement client-side game logic for the Tic Tac Toe game. The course's emphasis on seamless client-server communication, handling user input validation, and rendering dynamic game states within Unity provides crucial skills for developing engaging and robust multiplayer experiences using the Unity engine, enhancing one's profile for this diverse role.
Software Engineer - Backend
A Software Engineer Backend focuses on building server-side logic, databases, APIs, and the overall architecture that powers applications, ensuring systems are robust, scalable, and secure. This role is foundational to most modern software. This course lays a strong foundation for an aspiring Software Engineer Backend by immersing learners in the creation of a dedicated server using .NET 6. It covers critical backend development aspects such as establishing a scalable server architecture with dependency injection and separate packet handlers, handling user authentication and registration, and managing user data in a UsersRepository. The practical skills in building client-server communication, implementing matchmaking logic, and deploying a server to the cloud are directly transferable to developing high-performance and reliable backend services across various industries.
.NET Developer
A .NET Developer specializes in building applications using Microsoft's .NET framework and C# language, creating a wide range of software from web services to desktop applications and backend systems. This course offers substantial hands-on experience for a future .NET Developer by focusing extensively on server-side development using .NET 6. Learners will design and implement a dedicated game server, utilizing C# structs for strongly typed communication, registering handlers using Dependency Injection, and managing user data within a UsersRepository. The practical application of .NET 6 for building robust server logic, handling network communication via LiteNetLib, and preparing server applications for cloud deployment provides highly relevant skills applicable to diverse backend development roles within the broader .NET ecosystem.
Cloud Solutions Architect
A Cloud Solutions Architect designs and oversees the implementation of an organization's cloud computing strategy, selecting appropriate services, ensuring scalability, security, and cost-effectiveness. This role requires a deep understanding of various cloud platforms and deployment methodologies. This course may be helpful for those interested in becoming a Cloud Solutions Architect, as it provides direct experience with deploying server applications to major cloud providers. Learners gain practical skills in preparing a server for cloud hosting using Docker and deploying it to platforms like Digital Ocean, Azure, or AWS. This hands-on experience with containerization and cloud infrastructure, though within the context of game servers, offers valuable insights into scalable deployment practices and the operational considerations vital for designing robust cloud solutions. A master's degree is often beneficial for this role.
Distributed Systems Engineer
A Distributed Systems Engineer designs, builds, and maintains complex systems composed of multiple interconnected components that operate across different machines, focusing on concurrency, fault tolerance, and data consistency. This course may be useful for individuals pursuing a career as a Distributed Systems Engineer. It centers on creating a client-server architecture where multiple clients interact with a dedicated server, necessitating careful communication protocols and state management. Learners establish a strongly typed networking layer, handle separate packet handlers for extensibility and separation of concerns, and manage user connections and game states across a distributed environment. The experience of deploying a server to the cloud further showcases the practical application of building and operating distributed systems, providing a tangible example of these complex interactions.
DevOps Engineer
A DevOps Engineer bridges development and operations, focusing on automating software delivery, infrastructure management, and ensuring system reliability, performance, and scalability. This role involves continuous integration, continuous deployment, and monitoring. This course may be helpful for an aspiring DevOps Engineer, as it includes practical experience that aligns with DevOps principles. You will learn to build standalone server executables and utilize Docker to create and push images. The subsequent deployment of the dedicated game server to cloud platforms such as Digital Ocean, Azure, or AWS directly involves configuring and managing infrastructure. This exposure to containerization, cloud deployment, and managing a live server environment provides foundational knowledge in automating and maintaining robust distributed systems, which are key aspects of a DevOps Engineer's responsibilities.
Solutions Architect
A Solutions Architect bridges business requirements and technical solutions, designing high-level system architectures and selecting technologies to meet organizational needs. This role often involves integrating various components into a cohesive, scalable system. This course may be helpful for those aiming to become a Solutions Architect by offering a holistic view of designing and implementing a complete distributed system. Learners develop a full client-server solution for multiplayer gaming, encompassing network protocols, server-side logic for authentication and matchmaking, and cloud deployment strategies. The emphasis on creating a strongly typed and extensible networking layer, along with practical deployment to platforms like Digital Ocean, Azure, or AWS, demonstrates the capacity to architect robust, scalable, and maintainable technical solutions from end-to-end, a core skill for this role. An advanced degree is often preferred.
Technical Lead Game Development
A Technical Lead Game Development professional guides engineering teams, makes critical architectural decisions, and ensures the technical quality and feasibility of game projects. This role requires extensive technical expertise and leadership skills. This course may be useful for someone aspiring to become a Technical Lead Game Development expert by providing a deep, hands-on understanding of the complex technical challenges inherent in multiplayer game development. By learning to design server architecture, implement low-level networking with LiteNetLib, manage client-server communication, and deploy robust backend systems to the cloud, learners gain insights into the entire pipeline. This comprehensive technical foundation is invaluable for making informed decisions, mentoring junior developers, and overseeing the successful execution of multiplayer game projects. Requires significant prior professional experience.
Site Reliability Engineer
A Site Reliability Engineer (SRE) ensures the reliability, availability, performance, and efficiency of large-scale systems by applying software engineering principles to operations. This involves automating processes, monitoring system health, and responding to incidents. This course may be helpful for those pursuing a career as a Site Reliability Engineer by providing practical experience relevant to maintaining highly available distributed systems. Learners build and deploy a dedicated game server using Docker to cloud platforms like Digital Ocean, Azure, or AWS. This process involves understanding server stability, ensuring connectivity, and preparing for operational challenges. Although the course focuses on initial deployment rather than ongoing monitoring or incident response, the hands-on experience with containerization and cloud infrastructure for a live service provides foundational knowledge crucial for designing and operating reliable online services.
Data Engineer
A Data Engineer designs, builds, and maintains data pipelines and infrastructure, ensuring data is collected, stored, processed, and made accessible for analysis and application use. This role involves working with large datasets and various data technologies. This course may be useful for an aspiring Data Engineer by offering practical exposure to data storage and retrieval within a live application context. Learners implement a UsersRepository to store user data and scores, and then retrieve and display a sorted list of top players in the lobby scene. While not a dedicated data engineering curriculum, this experience with structured data management, including storing, updating, and displaying player information from a server, provides a tangible example of handling application-specific data. This exposure to database interaction and data presentation can be a relevant starting point for understanding data flows in complex systems.

Reading list

We haven't picked any books for this reading list yet.
Guide to developing augmented reality games with Unity 3D, covering the basics of AR development and how to create AR games.
Beginner-friendly guide to Unity 3D game development, covering the basics of the engine and how to use it to create games.
Revised and expanded version of the original Unity 3D Game Development Cookbook, with even more recipes for creating games with Unity.
Guide to using Unity 3D for programmers, covering the basics of the engine and how to use it to create games.
Collection of blueprints for creating games with Unity 3D, covering a wide range of genres and styles.
Comprehensive guide to Unity 3D game development, covering everything from the basics of the engine to advanced techniques.
Guide to developing virtual reality games with Unity 3D, covering the basics of VR development and how to create VR games.
Provides a comprehensive overview of the architecture of open source applications. It covers topics such as the different types of open source licenses, the principles of open source development, and the challenges of managing open source projects. It is an excellent resource for developers who want to learn how to contribute to open source projects or build their own open source applications.
Provides a comprehensive guide to dependency injection in .NET. It covers topics such as the principles of dependency injection, different patterns, and how to use dependency injection in .NET applications. It is an excellent resource for developers who want to learn how to use dependency injection to build more maintainable and testable applications.
Provides a comprehensive overview of .NET 5 and C# 9. It covers topics such as the new features in .NET 5, C# 9, and the .NET ecosystem. It is an excellent resource for developers who want to learn about the latest versions of .NET and C#.
Provides a comprehensive guide to cloud-native development with .NET. It covers topics such as containerization, microservices, and serverless computing. It is an excellent resource for developers who want to learn how to use .NET to build cloud-native applications.
Definitive guide to the Common Language Runtime (CLR), the heart of the .NET Framework. Understanding the CLR is crucial for writing high-performance and efficient .NET applications. While it's a challenging read, it provides foundational knowledge that is essential for advanced .NET development and performance optimization. It's considered a classic for a reason.
Provides a comprehensive guide to Entity Framework Core, a popular ORM for .NET. It covers topics such as data modeling, querying, and performance tuning. It is an excellent resource for developers who want to learn how to use Entity Framework Core to build data-driven applications.
Classic in the software development community and provides a comprehensive overview of design patterns. It covers topics such as the different types of design patterns, the benefits of using design patterns, and how to apply design patterns in .NET applications. It is an excellent resource for developers who want to learn how to use design patterns to build more maintainable and reusable code.
Offers a comprehensive and detailed exploration of the C# language, suitable for those who want to move beyond the basics. It delves into language features and programming paradigms, providing a solid foundation for writing robust and efficient C# code. It serves as a strong reference for intermediate learners and can be used to deepen understanding after a foundational text.
Using a visually rich and engaging format, this book is ideal for learners who prefer a more interactive approach. It covers core C# and .NET concepts in a way that aids understanding and retention. While not an exhaustive reference, it's a great supplementary read for beginners and can help make the initial learning process more enjoyable.
Is an excellent starting point for anyone new to .NET and C#. It provides a broad introduction to the fundamentals of C# programming and the .NET ecosystem, covering topics essential for beginners. It is often used as a foundational text in introductory programming courses and valuable resource for solidifying basic concepts before moving to more advanced areas. Its focus on modern .NET versions makes it highly relevant.
Considered a classic and a must-read for serious .NET developers, 'C# in Depth' provides unparalleled insights into the nuances and evolution of the C# language. It's not a beginner's book but is invaluable for deepening understanding and appreciating the design decisions behind the language. It's a reference that developers will revisit throughout their careers.
Provides comprehensive coverage of the latest version of C# and .NET Core, including new features such as async/await, LINQ, and Entity Framework Core. It is an excellent resource for developers who want to learn or update their skills in .NET 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