1
\$\begingroup\$

I'm slightly annoyed with the official Unity guides here, because I have been following through some, and they have indeed helped me create a local network mulitplayer situation. However, at no point did they mention that using these methods (ie. UnityEngine.Networking // NetworkManager // NetworkManagerHUD // NetworkIdentity) will require me to pay Unity for Pro, and a monthly server usage fee, if I wanted to play via internet.

I've set up my own Rust server in the past and it was very simple. I just installed a Rust Dedicated Server on my desktop PC (which I have fibre internet connection) and ran the server. I could then have 20 people playing with me and we didn't notice any slow-down or lag or any problems with it. (Rust is made in Unity I believe)

I've tried searching lots on this matter, and there are many many differing voices of how I can do this (many out-of-date, and many explicitly stating its impossible without hiring a server) - I disagree, and think I can make my desktop run the server, BUT I haven't a clue if I'm correct and also how I would be able to make it.

Unity docs seem to be trying to hide this solution if it exists (perhaps I'm being paranoid).

I have the NetworkManagerHUD all working and can play locally as I say.

So, it appears that the NetworkManager allows a user to start my game in 'Client-host' mode, it also allows another instance elsewhere to click "Connect Client" and has a space for IP address.

Would I even need a dedicated server if a player has clicked to start as 'Client-Host'? assuming I don't, how can I then connect to this host from another machine? Does typing the client-hosts external IP allow this?

Sadly, I don't have anybody to help me test this right now.

If a dedicated server version is the preferable way to go, could anybody please help me in the direction of how to start creating this?

For info: The game at this stage is a very simple FPS shooter. The NetworkManager is assigning the 'isLocalPlayer' flag correctly to one instance of the player object. I see in the Editor Hierarchy that it is handling the game overall and has two player objects once I have logged in with two instances locally.

\$\endgroup\$
1
\$\begingroup\$

You do not need to have a paid version of unity for this.

In my multiplayergame I used a client-host-system in a simple multiplayer shooter some time ago. In Unity in the tab "Services" you can implement multiplayer, then it is easier to connect to other players game without typing the IP.

You need to create a Unity Project Id, but that costs no money. I also used a lobby manager asset here it is made by Unity staff. This tutorials may help you (I think they still work in 2017-version): this one and this one. Both tutorials are well done and helped me a lot.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.