Unity Networking From Scratch
4.4 (71 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
560 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Unity Networking From Scratch to your Wishlist.

Add to Wishlist

Unity Networking From Scratch

An Introduction to Unity's UNET System
4.4 (71 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
560 students enrolled
Created by Penny de Byl
Last updated 3/2017
English
Curiosity Sale
Current price: $10 Original price: $100 Discount: 90% off
30-Day Money-Back Guarantee
Includes:
  • 6 hours on-demand video
  • 9 Articles
  • 8 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I 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.
View Curriculum
Requirements
  • Before starting this course students should have experience using Unity and writing C# code.
Description

This course 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
Who is the target audience?
  • Someone familiar with Unity and C# who would like to learn about networking and creating multiplayer games.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
39 Lectures
06:00:57
+
Thing to know before you start
5 Lectures 13:18

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

Preview 00:57

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

FAQs
00:46

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
01:10

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

WARNING! WARNING!
00:50
+
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
15:51

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

The Network Manager: Part 2
13:21
+
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
16:56
+
Customising Your Player Character
9 Lectures 01:14:19

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
07:33

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
05:48

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
00:17

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
19:20

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
19:59

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
11:16

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
01:31

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
06:24

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
02:11
+
Putting in Some Practice: A Simple Shooter
7 Lectures 01:07:27

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
13:40

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
12:26

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

Remote Procedure Calls
00:44

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

Remote Procedure Calls Demonstration
01:27

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
07:23

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
19:54

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
11:53
+
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
18:16
+
Customising the Network Manager
6 Lectures 01:06:02

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
17:44

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

Registering Callback Functions
01:39

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
06:58

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
17:52

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
16:40
+
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.
13:59

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
09:37

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
18:29

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
14:20

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.

Matchmaking
07:21
+
Helpful Things to Know
2 Lectures 07:10

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
02:50

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
04:20
About the Instructor
Penny de Byl
4.6 Average rating
304 Reviews
1,694 Students
3 Courses
Professor of Computer Science, Games and Procedural Art

Hi, I'm Dr Penny de Byl.  I'm a full stack developer of most things computer sciency and academic with a true passion for teaching.  I've been teaching others about games development, programming, computer graphics, animation and web design for over 25 years in Australia and Europe. My best selling textbooks including Holistic Game Development with Unity are used in over 100 institutions world-wide.  My graduates work at companies like Apple, Ubisoft, LinkedIn and Deloitte Digital.

I've won numerous awards for teaching excellence at the state, national and international levels including the Australian Learning and Teaching Council's Excellence in Teaching Award and the Unity Mobile Game Curriculum Competition. My approach to teaching computer science and related fields is project-based giving you hands-on workshops you can immediately get your teeth into.

I want you to leave my virtual classroom fully armed with a toolkit of skills for life-long learning.  I'm excited to now be focussing my efforts full-time on Udemy to bring my years of knowledge and experience to those eager to learn about technology.