There will be two buttons now at the start, one to start the server and another to refresh the host list. Private void JoinServer(HostData hostData)īy extending the GUI with some additional buttons, the functions we just created can be called. We will extend this function at a later point. The OnConnectedToServer() is called after we actually joined the server. To join a server, all we need is one entry of the host list. If (msEvent = MasterServerEvent.HostListReceived) Void OnMasterServerEvent(MasterServerEvent msEvent) If this is the case, we can store the host list. This function is called for several events, so we need to add a check to see if the message equals MasterServerEvent.HostListReceived. Once the host list is received, a message is sent to the game which triggers OnMasterServerEvent(). This contains all data required to join a server. To achieve this, we need to send a request to the master server to get a list of HostData. We now have the functionality to create a server, but can not yet search for existing servers or join one of them. Thanks to jeff77k for this addition! Joining a server You can download and run your own MasterServer locally. This MasterServer is run by Unity and could be down due to maintenance. Afterwards the button should disappear (1B). If you press this button, a message should be shown in the console indicating you just initialized a server. When starting the project, all you should see now is a start server button (1A). Now it is time to test what we developed so far. If (!Network.isClient & !Network.isServer) We only want to see these buttons if we have not started a server or joined one, so the button will show itself if the user is neither a client nor a server. To test it out we create buttons using the Unity GUI. For now, we are happy to get feedback telling us the server is actually initialized.Īll we need now is some form of input to let us actually start the server when we want to. If the server is successfully initialized, OnServerInitialized() will be called. MasterServer.RegisterHost(typeName, gameName) Network.InitializeServer(4, 25000, !Network.HavePublicAddress()) Private const string gameName = "RoomName" Private const string typeName = "UniqueGameName" Add these lines to the NetworkManager script. The room name can be any name, and in our case we eventually used the player name. For the server registration the name of the game should be unique, otherwise you might get in trouble with others projects using the same name. The initialization requires a maximum amount of players (in this case 4) and a port number (25000). To create a server, we need to initialize it on the network and register it to the master server. It will handle hosting a server or connecting to an existing server. Add this empty script to an object in the scene, either the camera or an empty game object. So let’s get started! In the new Unity project, create a new C# script named “NetworkManager”. It’s explained in Javascript, but covers the same content as the first three paragraphs. Networking was a new topic for us and I found this video tutorial very useful to start with. Interpolating and predicting values between data packages.Network communication using State Synchronization and Remote Procedure Calls.Spawning as a player and how objects can be created on the network.Implement server creation and joining an existing host. These are the things we are going to talk about: In the end this saved us a lot of time, because implementing it at a later stage would probably result in changing a lot of code. To follow this tutorial, a basic understanding of Unity and C# is required. For each new feature we made sure it worked over the network. The video below is from the Kickstarter-demo we have made and shows the gameplay and multiplayer functionality which we are going to talk about.Īn important decision we made at the start of the project was to implement networking first and all other code later. In this tutorial I explain how to create a online multiplayer game using Photon Unity Networking (PUN), instead of the standard Unity networking. Players will be working together by combining their abilities to defeat their enemies and complete quests. This is a four person co-op game where each player controls one of the characters from the LFG comic. We didn’t work on an online multiplayer game before, and here will we describe how we designed the implementation for LFG: The Fork of Truth. This tutorial will explain how multiplayer can be implemented using Unity’s networking functionality. September 6, 2016: We are looking for a Unity C# Developer and Node.js/Back-end Developer to join our team.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |