Creating a master server for Unity game (Unity 2017)

Creating a master server for Unity game (Unity 2017)

I have a basic FPS game made in Unity. I am using the Unity NetworkManager, NetworkManagerUI and NetworkIdentity components that came with Unity.
The game is working fine on my local network when I make one pc a client-host and other a client.
It is also working great using the 'Mulitplayer' service that is free with Unity (for up to 20 max over all games/projects etc, and is supposed to be only for testing I believe)
I'm 99% sure it is possible to run a 'server version' of my app on a pc in my home, and make this into a dedicated master server, but I cannot find much at all from Unity officially regarding this (It seems to always point me to just extending my deal with them to get more players into the server they provide, for which the costs are 1000x more than the budget I have for the game)
Before Unity were offering these pricey services, there was info such as this: https://unity3d.com/master-server
But it says that is only compatible with Unity 3.x
I've asked this question 2-3 times already on the Unity Answers site, and there are no answers at all. I've also browsed it for similar questions and all those seem to be unanswered or way out-of-date.
As I stated last time I ask this, I know thatt Rust game is made with Unity. In past, I downloaded (officially from Facepunch, the devs of Rust) the 'Rust Dedicated Server' application, which I ran on my desktop PC (with fibre network connection) and then I was hosting a server in game. The server ran smooth as silk, so for my game I dont think i would need an actual modern server machine or direct internet connection (otherwise, how did Rust manage it??)
So as I say, I have the network functionality all up-n-running. But the last piece of the puzzle is that I'm using Unity's Mulitplayer Service, and this only allows 20 max concurrent players. This isn't quite enough, as I'd like to have at least 50 if possible. Also I would end up running 10-20 of these so that there is a choice of 'rooms'. Ideally I would be able to let people download and run their own just like Rust.
Before I got to this stage, I was trying to make one user become the Client-Host, but I couldn't figure out how the other clients would be able to tell what is the IP address for the host.
Please can anybody help me, I feel like I've gotten the majority of the way there but now I can't get any further by myself.
Many thanks!

Solutions/Answers:

Answer 1:

You can have as many users as you would like and scale as you grow using unity multi player services as seen here UnityMultiplayer

Unity offers a free amount of Concurrent users (CCU) for each license.

  • Personal: 20 Concurrent Users
  • Plus: 50 Concurrent Users
  • Professional: 200 Concurrent Users

If you need to increase the number of CCUs that your game supports then you can set this when you submit a live request via the multiplayer dashboard. If you do this, you will be charged $0.49/ GB of traffic that travels through the Unity infrastructure (Matchmaker, Relay Server). This means that you pay for the extra bandwidth that you use.
We also have a way to estimate your monthly bill. This can be found by scrolling to the bottom of the multiplayer page.

Answer 2:

Reality check.The Unity CCU deal is fine for novice developers. Assuming your game will be the next blockbuster game is going to be disappointing. Spending 100’s/1000s of hours setting up a cutting edge personal ‘free’ server only to have 1 or 2 players visiting daily would be soul destroying. Instead, concentrate on time-to-market and build up your player base. Use the free CCU limits. WHILE the free plan is in place AND you are actually getting people playing THEN build your personal server. Sure, you may need to spend money on CCUs above free limit for a while. However, by then you are not wasting your time on an unrealistic dream.

References