Search Unity

My own Unity Master Server? (Probably a noob question)

Discussion in 'Multiplayer' started by csofranz, Jun 11, 2018.

  1. csofranz

    csofranz

    Joined:
    Apr 29, 2017
    Posts:
    1,556
    Hi All,


    my apologies if I'm asking something stupid or trivial, I have the distinct impression that I'm missing something essential, and hence my question.


    Here's the setup:
    We have built a multiplayer game where 2 players can go head-to-head using standard UNet (networkmanager) and Unity Matchmaking (matchmaker). As I understand how this works is that this enables any two players world-wide, without knowing anything about each other to match up and play (using the matchmaker api where one player starts a game, and the other joins that game). In such a set-up one player acts as a 'Host', the other joins as a 'Client' (quotes because strictly speaking they are both clients to the matchmaking host, but logically they are for the purpose of game authority). Unity (the Company) is matching the game via software on their servers, and then provides a (hardware) middle-man that forwards (relays) the network packages between the two connected player machines, meaning that the two player computers are never connected directly to each other: their game traffic is routed through a Unity (company) owned computer until the game ends. Any number of games are matched/relayed on the Unity (company) server at any given time, with no game having server authority on those Unity (company) servers.

    Is that correct so far?


    Question:
    Now, if above is correct, here's my question: is there a simple way to move the part of the middle-man (matchmaking and relaying) to our own server infrastructure? We don't mind paying the service fees during the start-up phase of our game right now, but if our game becomes successful, we probably would want to build our own infrastructure. Is there special software required to do this? Is there some standard software we can download/license to achieve this? I read that some people recommend that I simply create a Unity empty scene and run this as a headless server, but that seems wrong in above context (with an arbitrary amount of players matching up in pairs, no authority on matchmaker server).

    Ideally, what we want is a plug-in replacement for Unity's service where all we need to do is: 1. Install the server software on our servers 2. change the IP-Address for the Matchmaker to our server and be done with. Where can we obtain this?

    How difficult would be doing this, does Unity (company) support this, and does anyone have experience with doing this and can tell me what the typical pitfalls are? I've looked at 'server.dll' but (at first blush) that seems to be something different.

    Again, my apologies if I got the basics wrong, Something is telling me that this is so obvious a question that it must have been answered over and over. But I'm rather new to UNet, and have interpreted the manuals as best I can (doesn't help that English isn't my mother's tongue) without finding an answer to this question.

    Thanks for any pointers,
    -ch
     
    Last edited: Jun 11, 2018
  2. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847
    A drop in replacement for Unity's services has not been made by Unity. You'd have to create it yourself. You'd use the server.dll if you were going to create these services outside of Unity.

    @TwoTen is working on a replacement for the relay service, you could ask how that is going.