Setting up the Master Server
Although Unity provide their own default Master Server and Facilitator (which is connected automatically if you do not specify your own), it is not recommended to use this for production. We'll be using our own Master Server, so you know how to connect to one you've hosted yourself.
Firstly, go to the following page:
http://unity3d.com/master-server/
We're going to download two of the listed server components: the Master Server and the Facilitator as shown in the following screenshot:
The servers are provided in full source, zipped. If you are on Windows using Visual Studio Express, open up the Visual Studio .sln solution and compile in the Release mode. Navigate to the Release
folder and run the EXE (MasterServer.exe
or Facilitator.exe
). If you are on a Mac, you can either use the included XCode project, or simply run the Makefile (the Makefile works under both Linux and Mac OS X).
The Master Server, as previously mentioned, enables our game to show a server lobby to players. The Facilitator is used to help clients connect to each other by performing an operation known as NAT punch-through. NAT is used when multiple computers are part of the same network, and all use the same public IP address. NAT will essentially translate public and private IPs, but in order for one machine to connect to another, NAT punch-through is necessary. You can read more about it here:
http://www.raknet.net/raknet/manual/natpunchthrough.html
The default port for the Master Server is 23466
, and for the Facilitator is 50005
. You'll need these later in order to configure Unity to connect to the local Master Server and Facilitator instead of the default Unity-hosted servers.
Now that we've set up our own servers, let's take a look at the Unity Networking API itself.