Unity Room Server


  • brainCloud



  • Hi Chad,

    First, a reminder that Room Servers are still in Beta. It is fully working, but some Libs+Examples are missing.

    1. We do not have a custom server example for Unity yet. Only for relay servers. It is however planned. I would like to have more details on your setup. Your dedicated server is an instance of Unity you said. As a Linux, console-only application? What Network API does it use? I thought Unity killed UNET. Is your dedicated server just a .NET application then?

    2. To notify brainCloud that your server is ready, you have to use the S2S library which we do not have a C# implementation currently, but it is planned. You can still do the calls yourself with any HTTP library. This is also how you will request the Lobby from brainCloud for your room server. You can look at our other libraries implement S2S calls for details: https://github.com/getbraincloud?utf8=✓&q=s2s&type=&language=

    3. Your docker repo does not have to be public. I am currently researching for you how to make this work. If I recall we have a brainCloud docker user you have to allow on your repository. I will come back to you on this.

    Another very useful example is our Web(Javascript) WarStone example: https://github.com/getbraincloud/examples-javascript/blob/master/warstone/readme.md

    David



  • @David-St-Louis-0 @Paul-Winterhalder Hello again, I hope everyone at Braincloud is alright regarding the current situation. I wanted to check in and see if there was any progress on the C# S2S library. Completely understandable if it is not ready, but I wanted to ask and hear from you guys. Again, hope you are all healthy and look forward to hearing from you.



  • Hi Chad,

    It is being released this week for 4.5
    It is already in the develop branch here: https://github.com/getbraincloud/brainclouds2s-csharp/tree/develop



  • @David-St-Louis-0 Thank you David, I got up and running with a room server in no time. I wanted to let you know your "Custom Multiplayer Server with Unity" tutorial was very helpful. Thanks for the update and the help 🙂



  • @David-St-Louis-0 Hi brainCloud. I am trying to follow this guidance. I'm new to Docker and containers.

    "From docker hud, you need to give read access to this user: braincloudhost"
    Did you mean dockerhub online web app? I have not found "permissions" on there. Only a Collaborators option, which gives read and write access.

    This guidance
    http://help.getbraincloud.com/en/articles/3942761-custom-multiplayer-server-with-unity
    has a step "2. Install docker daemon"
    On the Docker site I found the option to install a Docker Desktop app (for Windows). Is that what you mean?
    Or is there really just a daemon to download? I cannot find such a thing by searching the Docker site. Do you have a link?

    If I bother with the whole desktop app, is that where I can find the read-only permissions options?

    Thanks!


  • brainCloud

    Hi @Carson-Herrick ,

    You set the permissions in Dockerhub - it's the repository we will retrieve your custom image from.

    In summary, you need to do the following in Dockerhub:

    1. Create a team, called "brainCloud" probably, that you are going to use to give us access.
    2. Invite our user, braincloudhost to your repo, and place us on that brainCloud Team. (Note - this user still has no permissions in your repo)
    3. Go to the image that you want to share, then the permissions tab, and give the "brainCloud" team read-only access to that image.

    If you do this properly, our braincloudhost user will have read-only access to that image, and nothing else.

    I hope that helps!

    Paul.

    Edit - fixed step 2 with the correct user name, braincloudhost... (I had mistakenly said "bchosting")



  • @Paul-Winterhalder
    Thanks.
    Note, I think you meant username "braincloudhost", as posted above. ("bchosting" doesn't exist)


  • brainCloud

    Ah - indeed @Carson-Herrick , you are correct.

    Turns out "bchosting" is the name of the group we use in our repo example. braincloudhost is indeed the correct user name.

    Apologies for the confusion!

    Paul.



  • For any other small developers out there, just trying to test things out.
    Looking through Docker Hub menus and their documentation, it appears you can either create 1 free private repo on your User account (which doesn't allow teams), or you can create a team on an Organization account, which does not offer 1 free private repo. To add private repos to an Organization account, you are looking at a minimum cost of $35/month.



  • @David-St-Louis-0 @Paul-Winterhalder
    Hi again.
    I would like to debug my server locally, in Unity. I have the _S2S stuff all hooked up as described in the walk through.
    But then I tried to do the following (actual numbers redacted)

    #if UNITY_EDITOR
                var appId = "00000";
                var serverName = "MyServerName";
                var secret = "00000000-0000-0000-0000-000000000000";
                _lobbyId = "00000:myLobbyTypeId:00";
    #else
                // Load environment variables passed in by brainCloud to our container
                var appId = Environment.GetEnvironmentVariable("APP_ID");
                var serverName = Environment.GetEnvironmentVariable("SERVER_NAME");
                var secret = Environment.GetEnvironmentVariable("SERVER_SECRET");
                _lobbyId = Environment.GetEnvironmentVariable("LOBBY_ID");
    #endif
    

    However, I am getting a perpetual error:
    #S2S S2S Failed: {"packetId":1,"messageResponses":[{"reason_code":40613,"status_message":"Processing exception: Unrecognized lobby: 00000:myLobbyTypeId:00","status":400}]}

    I even signed up for a Dev+ subscription, just in case that was the problem, per this thread. No luck.

    How can I test my server code locally, while still planning for the full-on S2S Docker container deployment?
    Thanks