Search Unity

Official Boss Room Multiplayer Sample - Early Access - Is Live!

Discussion in 'Multiplayer' started by cosminunity, Apr 7, 2021.

Thread Status:
Not open for further replies.
  1. cosminunity

    cosminunity

    Joined:
    Mar 4, 2021
    Posts:
    14
    Hello Everyone!

    The small co-op sample named Boss Room that we featured at the GDC event is now available in early access to everyone! It is finally the time where you can deep dive into the source code or start extending the project, build it, and share it with your friends so that you can play together!

    For more info, please take a look at how-to-get-started by reading this article.

    Let us know your thoughts here on forums! At the same time feel free to join our official MLAPI's discord in case you didn't already!

    A bigger Unity blog post is going to follow up shortly! Stay Tuned!

    EDIT: You can access the newer and more comprehensive blog post here.

    Enjoy!
     
    Last edited: Apr 9, 2021
  2. Cranom

    Cranom

    Joined:
    Jan 31, 2018
    Posts:
    26
    Congratz on releasing something !

    Now for the critical part... communication/documentation while bare bone, already is a mess, you're linking to an article:
    - linking to another article speaking of itself;
    - then 2 links to docs-multiplayer;
    - and again 2 other identical links to the github repo.
    The docs-multiplayer and github repo each having doc for setting up the project, each one seemingly equal and different at the same time, it gets especialy bad for the setup of photon transport. Someone needs to make up his mind and consolidate everything and remove the needless spaghetti linking.
    Speaking of Photon, i have nothing against it, seems like a good product, but just why ? what about MLAPI relay service ? what about Unity matchmaking service ? Shouldn't the logical move be to make an in-house implemantation ?

    Otherwise in the changelog I see that the project has stability issues for continuous and interrupted games, once resolved, can we hope for some sort of host-migration or reconnection to an on-going game ?
     
    Alex-CG, Ruchir and Thunderik like this.
  3. Ruchir

    Ruchir

    Joined:
    May 26, 2015
    Posts:
    934
    Considering this is just an experimental release and the first one at that, I guess this is expected but I would really like to see some documentation of in-house stuff like multiplay and Vivox which Unity literally owns and is used by AAA games but I have no idea how to integrate it in my Unity project.

    Even we have Epic online services which is, in my opinion, the best option for us as an indie dev seeing that it's free and cross-platform but I remember a dev mentioning that these implementations will be done by the community and not by Unity themselves (I'm not a 100% sure), if that's the case then it would be just another product that I won't use in my main projects
     
    Last edited: Apr 8, 2021
    hippocoder likes this.
  4. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Hey, sorry to hijack your thread.
    Is there any chance you could pin the Mirror networking thread too?
    There are Mirror questions here all the time, and our thread gets buried often.
    It contains all the relevant info like documentation, discord, tutorials, etc.

    It's free & open source, and mostly used by your own UNET customers.

    If boss room is worth pinning, seems like Mirror thread would be worth a pin too :)
     
  5. CPlusSharp22

    CPlusSharp22

    Joined:
    Dec 1, 2012
    Posts:
    111
    What happened to the Unity network layer? Why is this using Photon and not that?
     
    GameSire and Ruchir like this.
  6. cosminunity

    cosminunity

    Joined:
    Mar 4, 2021
    Posts:
    14
    Hi @Cranom thank you for your honest insights, we appreciate it. I have updated the main post with a link to the bigger more comprehensive blog post that I mention was going to follow.

    In regards to the Photon Setup Guide, I can see where the misdirection was created, sorry about that. It's important to note that although the one that exists in the community repo and the one that lives in the Boss Room, are very similar - especially for the first part - the latter one is more specific to Boss Room since the project has some custom handling code for Photon Room's and Regions to automate that rather than hardcoding it.

    I will communicate that to our docs team so that we can make it more obvious which one you would need to follow for setting up Boss Room correctly. At the same time, I highly encourage you to report an issue like that through the docs website directly, by hitting "Log an issue" or you can even edit the page yourself by creating a pull request by clicking on the "Edit this page" button. All these issues can be directly tracked on the docs's GitHub repo.

    upload_2021-4-9_9-52-38.png

    Firstly, it is important to mention why these features don't exist in Boss Room today, the reason being: that MLAPI does not yet well support such scenarios out of the box, since the solution is not mature enough. I can say that the SDK team is at the moment revamping major systems that will directly impact these such as Scene Management and more, which are setting the ground for future work, and the Host Migration is not yet on the SDK roadmap. With that being said, we do expect that Boss Room will evolve alongside MLAPI and will probably showcase similar features when they are supported at the core level.

    Greetings,
    Cosmin
     
    CreativeChris likes this.
  7. lockbox

    lockbox

    Joined:
    Feb 10, 2012
    Posts:
    519
    Could someone please comment on @Cranom 's question about using the MLAPI relay for the Boss Room vice Photon. Is that an option? I have mini WAN test environment with my own servers, so using the MLAPI relay is a better option for me. Thanks.
     
  8. luke-unity

    luke-unity

    Joined:
    Sep 30, 2020
    Posts:
    306
    Boss Room is by no means limited to the Photon transport, you can hook it up to any relay transport including the Midlevel MLAPI Relay. Please keep in mind that the MLAPI Relay is not owned or maintained by us so we can't guarantee that it will work.
    Our Architecture file contains some information on how to get started using a different transport with Boss Room.
     
  9. luke-unity

    luke-unity

    Joined:
    Sep 30, 2020
    Posts:
    306
    Boss Room is using the Unity networking layer (UNet LLAPI) for direct connections via IP Address. These direct connections are usually not possible without a relay service. Our networking service is near its end of life and we don't have a new service to replace it yet.
    While we don't have a relay yet we still wanted to show you a way to use MLAPI in a listen server model where one player hosts the game. That's why we ended up using Photon Realtime to show you one way of using MLAPIs flexible transport implementation which allows you to run it with any relay service.
     
  10. CPlusSharp22

    CPlusSharp22

    Joined:
    Dec 1, 2012
    Posts:
    111
    No, I was not referring to UNet LLAPI. Apologies if that was confusing. I'm talking about the com.unity.transport package.
    This was supposed to be the new replacement, so I was informed.
     
    bluescrn likes this.
  11. luke-unity

    luke-unity

    Joined:
    Sep 30, 2020
    Posts:
    306
    Oh I see, the Unity transport package is still in development and an experimental package like MLAPI. The goal is to use the Unity transport as the transport layer for MLAPI but we weren't able to do so yet for the 0.1.0 release.
     
    Ruchir and CPlusSharp22 like this.
  12. CPlusSharp22

    CPlusSharp22

    Joined:
    Dec 1, 2012
    Posts:
    111
    Thank you, good to know the transport package has not been abandoned. I really enjoy it's simplicity! Great to hear that there are plans to include it in MLAPI in the future.
     
    Ruchir likes this.
  13. Arkitas

    Arkitas

    Joined:
    Oct 29, 2019
    Posts:
    4
    Just chiming here in here to share that I've been digging through the BossRoom project wherever possible since ya'll launched early access. As a person who only began with Unity just over a year ago, it's been absolutely invaluable for our fledgling team to see how you've opted to set up such a variety of different systems within the up-and-coming GameObject netcode solution. We're just starting our first multiplayer project so it's pretty much perfect timing.

    I'll be on the lookout for any bugs to help expedite your development in whatever way I can. Starting to get my head around this codebase ;)

    Thanks so much for putting this together!
     
    luke-unity likes this.
  14. MadMojo

    MadMojo

    Joined:
    Oct 16, 2014
    Posts:
    19
    I was excited to start digging into this, but disappointed to find it using Photon. Yes, I know, you keep telling everyone we can use something else. But really, it should be using something else (like Mirror, perhaps) instead of an expensive, extremely limited networking solution from the start.

    I do still appreciate getting some glimpses into a working MLAPI sample, though. Some of the networking functionality already there, like the built-in object pooling, is pretty cool. Thanks!

    (But yeesh...Photon? Ugh.)
     
  15. luke-unity

    luke-unity

    Joined:
    Sep 30, 2020
    Posts:
    306
    The Boss Room uses MLAPI. Photon is used only as an optional relay service. We couldn't have used something like Mirror because Mirror is a networking solution and not a relay service. A relay is needed when you want to connect clients together without the need of dedicated servers. This is the case for MLAPI, Mirror or any other networking solution

    Also you can use MLAPI with other relay services. For instance there is a transport using the Steamworks networking which is a free relay service for games launching on Steam.
     
    MadMojo likes this.
  16. MadMojo

    MadMojo

    Joined:
    Oct 16, 2014
    Posts:
    19
    So, for clarification...
    I can use MLAPI instead of Mirror? Both are networking solutions?
    And I can use MLAPI to create a server project, and a separate client project, have the server project hosted somewhere as a dedicated server, and the client project connect up to that...just using MLAPI? No Photon or other relay server needed in this situation?
    But if I wanted to have an MLAPI client+server all-in-one project (like this sample) I would in that case need a relay server in order to properly get different clients connected together, hence the use of Photon for that purpose in this sample?
     
    Gokhan23 and luke-unity like this.
  17. luke-unity

    luke-unity

    Joined:
    Sep 30, 2020
    Posts:
    306
    Yes exactly, everything you said is correct. MLAPI and Mirror are both networking libraries. MLAPI supports a model where you self host dedicated servers. There is no Photon or relay server needed if you have dedicated servers. You can connect directly to the dedicated server via IP. This does not work if you want your clients to host a game themselves unless they open ports and the firewall. So if you want a convenient way to have a client hosted game where anyone can easily host a game, you can use a relay like Photon with MLAPI.
     
    MadMojo likes this.
  18. MadMojo

    MadMojo

    Joined:
    Oct 16, 2014
    Posts:
    19
    Awesome! Thanks for the clarification. :)
     
  19. cosminunity

    cosminunity

    Joined:
    Mar 4, 2021
    Posts:
    14
    Boss Room - Early Access - 0.2.0 is here!

    We are thrilled to announce that today a new version of Boss Room has arrived! In the past month, the team has delivered new features, optimizations, and numerous fixes and changes including the following highlights:

    • Updated and introduced various hero abilities, such as Archer’s PowerShot which accounts for a duration that a key is pressed for or Rogue Dash that teleports the player to a target spot - to learn more about how to handle teleport-like abilities in a networked environment, please check out the DashAttackAction.cs - as well as Implementing a better cooldown solution and calculations.

    • Introduced static scene NetworkObjects, as well as implementing a ScriptableObject based event system to encapsulate events inside assets.

    • Increased the overall GPU performance of Boss Room by disabling GPU Skinning, enabling GPU instancing, turning off Cast Shadows for various prefabs, and more optimizations.

    • Updated the user interface in many places and refactored the Action Bar code to increase the extensibility without the need of having to manually modify the code in multiple areas.

    • Updated our GameNetPortal to properly handle Per-Connection state on client disconnect and Player connection if they experience a game-level connection failure - you can check out the ApprovalCheck function in our ServerGameNetPortal.cs.

    • Fixed various known issues from the previous release.


    For the full changelog, please take a look at https://github.com/Unity-Technologies/com.unity.multiplayer.samples.coop/releases/latest

    Let us know your thoughts on this update in this thread!


    Enjoy!
     
    Ruchir likes this.
  20. CreativeChris

    CreativeChris

    Unity Technologies

    Joined:
    Jun 7, 2010
    Posts:
    457
    Hello everyone,

    Published Boss Room release v1.0.2-pre! It can be downloaded directly here with the full release note https://github.com/Unity-Technologies/com.unity.multiplayer.samples.coop/releases/tag/v1.0.2-pre or by checking out our main branch.

    Lots of changes with this new version!

    • Added a new session manager, to allow for reconnection mid-game.
    • Added additive scene loading for different parts of the dungeon.
    • We did a bunch of optimisations to support lower-end mobile devices.
    • Updates to our connection management allowing to cancel during join and be able to disconnect mid-game.
    • Updated to latest NGO pre.5, bumped up our other dependencies
    Dependencies
    • “com.unity.services.relay”: “1.0.1-pre.4",
    • “com.unity.netcode.gameobjects”: “1.0.0-pre.5",
    • “com.unity.netcode.adapter.utp”: “1.0.0-pre.5",
    • “com.unity.multiplayer.tools”: “1.0.0-pre.2",
    • “com.unity.transport”: “1.0.0-pre.12",
    • Photon Realtime v4.1.6.0
    • Editor is 2020.3.27f1
    • Made some tweaks to our actions to make them more responsive.
    • Tons of other fixes, stabilization and goodies (like a cheat window to not be mauled down by imps and gain back some sanity while debugging)
    Let us know any feedback you may have in this thread or using our samples Discord channel.

    Thanks,
    Chris
     
    Lurking-Ninja likes this.
  21. CreativeChris

    CreativeChris

    Unity Technologies

    Joined:
    Jun 7, 2010
    Posts:
    457
    Hello all,

    The latest 1.1.0-pre release of Boss Room is out!

    It can be downloaded directly here with the full release notes https://github.com/Unity-Technologies/com.unity.multiplayer.samples.coop/releases/tag/v1.1.0-pre or by checking out our main branch.

    Quite a few changes to unpack - but here are the highlights:

    Changes
    Dependencies*
    *Note removal of Photon from our dependency list.

    Lots of fixes and known issues to be aware of as well.

    Let us know any feedback you may have in the forums or using our samples channel in the Discord Unity Multiplayer Networking server.

    Thanks,
    Chris
     
    Lurking-Ninja and cerestorm like this.
  22. CreativeChris

    CreativeChris

    Unity Technologies

    Joined:
    Jun 7, 2010
    Posts:
    457
    Hello

    The latest 1.1.2-pre release of Boss Room is out!

    It can be downloaded directly here with the full release notes https://github.com/Unity-Technologies/com.unity.multiplayer.samples.coop/releases/tag/v1.1.2-pre

    We tweaked the project Readme asset file and various pop-ups to improve the onboarding experience for setting up Unity Gaming Services Lobby and Relay.

    Let us know any feedback you may have in the forums or using our samples channel in the Discord Unity Multiplayer Networking server.

    Thanks,
    Chris
     
    nico_st_29 likes this.
  23. Binary42

    Binary42

    Joined:
    Aug 15, 2013
    Posts:
    207
    Hi, launching several instances of the built executable in order to both host and join a game triggers ConnectStatus.LoggedInAgain: "Connection Failed You have logged in elsewhere using the same account."
    Is there a workaround?
     
    sndnsosgg likes this.
  24. SamuelBellomoUnity

    SamuelBellomoUnity

    Unity Technologies

    Joined:
    Sep 24, 2020
    Posts:
    19
    With 1.2.0 you should use the -AuthProfile abcd command line arg when launching.
    With our latest version, you should use the Change Profile button in our main menu. 1.3.0 should be released pretty soon, that flow will be available then.
    Also note you can use ParrelSync to launch multiple editors to test, instead of having to build each time.
     
    Binary42 likes this.
  25. SoftwareGeezers

    SoftwareGeezers

    Joined:
    Jun 22, 2013
    Posts:
    902
    First time exploring new Unity networking and this boss room. I get "Invalid state for this operation. The player is already signing in. tip: You can still use the Direct IP connection option." This running from Editor and from Windows build.
     
  26. Binary42

    Binary42

    Joined:
    Aug 15, 2013
    Posts:
    207
    @SoftwareGeezers
    This is the same problem as above, you can use the -AuthProfile option.
     
  27. asosa118

    asosa118

    Joined:
    Feb 24, 2018
    Posts:
    1
    When I press the create button to create a lobby nothing happens. I made builds for mac and also in the editor but both just show the loading for a split second and do nothing. I downloaded the project from https://github.com/dilmerv/UnityMultiplayerPlayground and made multiple build instances and I was able to have a local server and local clients but I can't seem to get past trying to create a lobby for the Boss Room Multiplayer Sample. unity.png
     
  28. CreativeChris

    CreativeChris

    Unity Technologies

    Joined:
    Jun 7, 2010
    Posts:
    457
    Hi everyone,

    We are pleased to announce a new release of Boss Room!

    Version 1.3.0-pre

    New Features:
    • Bumping relay version to make use of the new QoS (auto-region selection)
    • Integrated the Runtime Network Stats Monitor to Boss Room
    • Now, the other players' loading bars are synchronized and they can be displayed during your loading screen
    • A new NetworkRigidbody-based toss Action, used by the new VandalImp class
    • And lots more, see the full changelog below...
    Fixed
    • Fixed breaking change from NetworkTransform in ClientNetworkTransform
    Compatibility:

    Boss Room supports the most recent LTS version of the Unity editor.

    If you choose to use it with previous editor versions, you will experience compatibility issues with some aspects of the project. If you are currently running Boss Room with 2020LTS, we recommend upgrading to 2021 LTS at the earliest opportunity via the Unity Hub.

    If you experience any issues or would like to share feedback with the development team, you can connect with us either via the Multiplayer Forum, on Discord or contribute to the project directly via Github.

    Full Release notes are available at:
    Thanks,
    Chris
     
    ChippingIn, WheelzD, coatline and 2 others like this.
  29. ChippingIn

    ChippingIn

    Joined:
    Sep 8, 2022
    Posts:
    3
    Chris, should WebGL builds of BossRoom 1.3.0-pre be able start on ips other than 127.0.0.1 (and/or be able to connect to other hosts). My Windows and Linux builds run and network together just fine, but the WebGL build I put on the server today has the aforementioned property no-connect-o. Is that expected? Also, of course, redirect and/or flame me if this is the completely wrong space for this. Thanks
     
  30. CreativeChris

    CreativeChris

    Unity Technologies

    Joined:
    Jun 7, 2010
    Posts:
    457
    @chip_hughes we do not support WebGL platform with Boss Room, but there might be ways to get it to work using a transport that supports WebSockets. Your WebGL client cannot be a server or host. Try hosting on Windows or Linux and connect with your WebGL client.
     
  31. ChippingIn

    ChippingIn

    Joined:
    Sep 8, 2022
    Posts:
    3
    Well okay then -- glad things are working as expected. Just for the record: The WEBGL builds can NOT connect as client, out-of-the-unsupported-box (even to a host on windows or Linux happily accepting non-WEBGL connections.). I haven't done any real digging, but wanted to offer that small result for anybody interested. Love the BR btw -- nice work and ty all for creating it! :)
     
  32. CodeNinja-

    CodeNinja-

    Unity Technologies

    Joined:
    Feb 22, 2023
    Posts:
    27
    We are pleased to announce a new release of Boss Room and the Utilities package!

    Boss Room Version 2.2.0 and Utilities package Version 1.6.1


    Installation Guide:
    https://docs-multiplayer.unity3d.com/netcode/current/learn/bossroom/bossroom/index.html

    New Features:
    • Updating Boss Room to Unity editor version 2022.3.0f1 LTS

    • Optimizing bandwidth usage of NetworkTransform using the compression techniques introduced in Netcode for GameObjects v1.4.0. For more information, see Netcode for GameObjects' v1.4.0 release notes.

    • Updating Unity Transport Package to version 2.0.2, and Multiplayer Tools to 2.0.0-pre.3. This gives access to the new NetworkSimulator tool

    • Adding NetworkSimulator in Boss Room. NetworkSimulator allows users to simulate network conditions such as latency, jitter, packet drop, disconnects, etc. The tool can be used through the NetworkSimulator component's inspector (see the NetworkSimulator documentation), but only in-editor. A custom in-game UI window was added to be able to use it in a build.


    Compatibility:
    Boss Room supports the most recent LTS version of the Unity editor.

    If you choose to use it with previous editor versions, you will experience compatibility issues with some aspects of the project. If you are currently running Boss Room with 2020LTS or 2021LTS, we recommend upgrading to 2022 LTS at the earliest opportunity via the Unity Hub.

    If you experience any issues or would like to share feedback with the development team, you can connect with us either via the Multiplayer Forum, on Discord or contribute to the project directly via Github.

    Full Release notes are available at:
    https://github.com/Unity-Technologies/com.unity.multiplayer.samples.coop/releases/tag/v2.2.0
     
    Last edited: Jul 13, 2023
Thread Status:
Not open for further replies.