Unity Networking From Scratch for (Unity 5 to Unity 2018.2)
4.5 (935 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
9,102 students enrolled

Unity Networking From Scratch for (Unity 5 to Unity 2018.2)

An Introduction to Unity's UNET API
4.5 (935 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
9,102 students enrolled
Last updated 12/2019
English [Auto], Spanish [Auto]
Current price: $13.99 Original price: $19.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 6 hours on-demand video
  • 11 articles
  • 15 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Create multiplayer games and connect Unity created applications over a network.
  • Understand the different roles played by servers and clients in a network.
  • Be able to use remote procedure calls to synchronise player-character states in a networked game.
Course content
Expand all 43 lectures 06:15:11
+ Thing to know before you start
6 lectures 14:10

This lecture introduces students to the course, the content and how to prepare.

Preview 00:55

H3D has a bustling online student community.  Here's how to get involved.

Preview 01:15

This lecture contains a list of FAQs asked by students in my courses.


This lecture provides a quick overview of client/server applications. We discuss the role of TCP/IP and how messages are transmitted between computers.  Also examined are the different network architectures and which ones are used for certain types of games.

Preview 09:35

When testing out client and servers it is essential to be able to run two versions of your program on the same machine.  This lecture explains how this is done.

Running Multiple Versions of a Program

This lecture provides some sound advise for network programmers to reduce debugging heartache down the track.

+ Creating a Basic Client/Server Application
2 lectures 29:12

In this lecture the Network Manager is introduced.  Using a car model as the player character, you will learn how to setup a very simple client/network application on a single machine and send movement messages between client and server using the Network Transform and Network Identity Components.

The Network Manager: Part 1

In part 2 of this lecture you will complete the simple networked car driving example.

The Network Manager: Part 2
+ Dealing with Network Latency (Lag)
2 lectures 21:42

This lecture examines how slow network connects can affect the play of a game and how this is resolved through the mathematical concept of interpolation.

Preview 04:46

This lecture explains how the Network Transform component in Unity can be used to send rigid body movement messages around the network and sync player positions and rotations.

The Network Transform
+ Customising Your Player Character
9 lectures 01:14:12

This lecture explains how the starting position in UNET work to ensure player characters don't spawn in the same place.

Setting Up Different Player Starting Positions

This lecture explains how a camera can be customised to follow the players local player such that a third person camera view can be established in a networked game.

Attaching the Camera to Player's Camera

This lecture covers the matter of camera jittery that can occur when a camera is asked to follow a character around.

How to Fix a Jittery Camera

In this lecture, a label will be added to the scene and programmed to display the players name.  This allows each character in a network environment to be identified. 

Who's who? Adding Names Above the Player Characters

This lecture completes the task of adding a player name above all networked characters in the game and demonstrates how to change the name and sync it around the network.

Adding Names Part 2

Using the same concepts as adding a name to players in the networked game, this lecture adds the functionality of allowing a player to change the colour of their car's body.

Further Customisation: Changing Colours Over the Network

Because the player name is a canvas object it is separated from the network functionality of the player and as such when the player is destroyed the name is not.  This lecture shows students how to delete any objects that are still in the game environment and connected to the player but not network controlled when the player disconnects.

Player Name Fixer

This lecture covers the situation where clients have customised their look and other settings and a late coming client connects.  In this case the syncvar hooks can't be relied on and must be called manually.

Syncing Values to a Late Client Connection

This lecture reiterates the process of changing the state of a character and then sending the appropriate message around the network such that the server and other clients are updated.

A Recap of Synchronising Character States around the Network
+ Putting in Some Practice: A Simple Shooter
7 lectures 01:07:25

This lecture is the first of a 5 part series that shows how to create a shooting scenario in which bullets can be fired and do visible damage to another networked player.

Shooting Bullets Part 1

This lecture is the second of a 5 part series that shows how to create a shooting scenario in which bullets can be fired and do visible damage to another networked player.

Shooting Bullets Part 2

This lecture explains the difference between remote procedure calls that are run on the client and those run on the server.

Remote Procedure Calls

This lecture explains how remote procedure calls work with a visual walk through.

Remote Procedure Calls Demonstration

This lecture is the third of a 5 part series that shows how to create a shooting scenario in which bullets can be fired and do visible damage to another networked player.

Shooting Bullets Part 3

This lecture is the forth of a 5 part series that shows how to create a shooting scenario in which bullets can be fired and do visible damage to another networked player.

Shooting Bullets Part 4

This lecture is the fifth of a 5 part series that shows how to create a shooting scenario in which bullets can be fired and do visible damage to another networked player.

Shooting Bullets Part 5
+ Humanoids and Animations
1 lecture 18:16

This lecture demonstrates how synchronised variables can be used to communicate around a network the animation state of a character.

Synching Humanoid Animations
+ Customising the Network Manager
8 lectures 01:08:04

This lecture begins the section on creating a customised network manager to perform tasks that are not default.   In this lecture the student will be shown how players can pick different characters for their player-character.

Picking a Custom Character Player

This lecture visually steps through the custom network manager setup and explains how each method runs and affects the messaging procedure.

Registering Callback Functions

This lecture expands on the custom character selection and demonstrates how each player can select their own character before connecting.

Preview 05:09

This lecture shows how to add even more functionality to player-character selection by allowing a player to change their avatar at anytime, even while they are in the networked game.

Changing Player Characters After Connection

This lecture demonstrates how a player character can be customised during game player. In the example given the player can change the colour of their character's shirt and this is synced across the network.

Customising Across Multiple Characters Part 1

This lecture shows how custom settings applied to one player character can be maintained and applied when  the character model is changed.  In this case, when the shirt colour is changed for a female model to green and the player changes to a male model, the new model will automatically get a green shirt.

Customising Across Multiple Characters Part 2

Here you'll find some information on how to spawn an object and have it appear across all clients.

Spawning a Networked Object

This article provides the solution code for this section and discusses some changes needed to use the Network Animator component instead of writing your own code to sync character animations around the network.

Character Customiser Solution and Updates
+ Creating a Game Lobby
5 lectures 01:03:46

This lecture demonstrates how the Unity Lobby asset can be imported into an existing network game and integrated into its functionality.

Adding a Lobby to an Existing Networked Game.

This lecture demonstrates how to make a lobby hook class that can relay player settings from the lobby to the game scene.  This allows the player to set their name and colour in the lobby and have those properties automatically applied to their player-character in the game scene.

Passing Lobby Values to the Game Scene

This lecture explains how the default Unity network lobby can be customised with a different visual design.  In addition new properties are added as settings for the player that can then be used to further setup their player character.

Customising the Lobby

This lecture explains who to link the customised values added to the lobby player to the player character by following existing constructs in the lobby player class.

Coding the Custom Lobby

This lecture explains the matchmaking process and demonstrates how a game can be connected to the Unity Matchmaking Services so players of the game don't need to know the IP of the server and can choose a list of servers to connect to.

+ Helpful Things to Know
2 lectures 07:07

This lecture covers the intricacies of IP addresses and how to determine which IP address to use when trying to connect to a server. Readers of this should also be aware of issue raised with respect to Server IP Binding in the next lecture.

Finding Your IP Address

This lecture methodically works through all the settings for the Network Manager that have not been covered in the videos for this course.  They are settings that can mostly be ignored when you are starting out.

Advanced Networking Ideas
  • Before starting this course students should have experience using Unity and writing C# code.

In this course, Penny will take you from the very basics of creating a simple client/server game environment using Unity's UNET system right through to creating and managing a lobby system.  The topics covered are the ones that most frequently appear on the forums and that many people struggle in understanding.  The course is practical with many step-by-step exercises.  Students of this course will learn about the UNET Network Manager and how to use message sending to synchronise rigid body movement and animation of player characters. Overriding the Network Manager will also be covered to allow developers to create customised network functionality such as changing player characters while playing, shooting projectiles and managing player characteristics such as health.

Topics covered include:

  • network configurations

  • IP addresses

  • hosting

  • remote procedure calls

  • syncing rigidbody movement

  • syncing animation states

  • playing with different player-characters

  • changing player-characters while connected

  • setting up the Unity Lobby asset

  • syncing variable values across scenes

  • setting up Unity Match Making services

Developed in Unity 5, this course remains relevant for versions 2017 and up to 2018.2 with Unity's Networking API.

What past students of this course are achieving:

  • the development of an online educational multiuser 3d virtual environment

  • the use of mobile devices in place of game controllers

  • MMO game development

What past students are saying about this course:

  • This course is awesome. Penny explains in a pleasant calm and clear manner. The course has a steady increase in difficulty. I loved the way some topics are explained with graphics / animations.

  • I love Penny's courses. This one gave all the knowledge I need and more when it comes to Networking in Unity.

  • Penny (as always) covers all things necessary for the current section. She leaves no questions to be asked and every course from my understanding is executed without confusion being left in its aftermath. If you do however have a question it is most likely from my experience covered with in another section of the course later on. thank you penny!! you rock!!!

Who this course is for:
  • Someone familiar with Unity and C# who would like to learn about networking and creating multiplayer games.