Search Unity

Noble Connect - Relays and Punchthrough

Discussion in 'Assets and Asset Store' started by thegreatzebadiah, Mar 15, 2019.

  1. thegreatzebadiah

    thegreatzebadiah

    Joined:
    Nov 22, 2012
    Posts:
    769
    Adds Relays and Punchthrough to UNet and Mirror

    Asset | Docs | API | FAQ | Website
    Introducing Noble Connect, a brand new solution designed to add relays and punchthrough to UNet and Mirror.


    The relays provide a guaranteed connection while punchthrough reduces latency and saves you money by connecting players directly whenever possible.

    The free version comes with 8 CCU and 24GB / mo of bandwidth over the relays, which should be sufficient for some substantial testing.

    We also have a paid Starter Pack that comes with 100 CCU/mo for 5 years, and includes our Match Up plugin for free.

    Additional monthly plans are also available on our website.

    Ease of Use
    Just drop it in and go. Your code could change as little as a few lines. Let us worry about the back end while you make your game as great as it can be!

    Competitive Pricing
    By including punchthrough with our relays, we are able to reduce bandwidth costs. This allows us to be less expensive than our competitors and pass the savings on to you.

    Direct Connect Whenever Possible
    Why waste your hard earned money using bandwidth on the relay servers if you don't have to? A direct connection means less lag and a better player experience.

    Guaranteed Connection
    Thanks to the Noble Connect Relays, your players will always be able to host and connect. Even when behind a very strict router or on a mobile network.

    Powered by Proven Technology
    Noble Connect implements ICE, STUN, and TURN. These technologies are industry standards for real-time data transfer applications like gaming, voip, and video messaging.

    Worldwide Automatic Region Selection
    We have servers worldwide to maintain the lowest ping possible. By default the best geographic region is selected automatically based on proximity. You can also manually choose which region to use.

    Load Balancing
    We automatically balance the load between all relay servers in a region so your players always have the smoothest experience possible. If your game hits a huge spike in popularity, we’ve got you covered.

    Cross-platform Support
    Build for Windows, OSX, Linux, Android, or iOS and connect across any combination of platforms.

    Example Scenes
    Example scenes are included with detailed comments that demonstrate using Noble Connect with the NetworkManager, lobbies, and running your own custom solution.

    Professional Support
    We have a consistent 5 star record of prompt and effective support. Contact us via email, forums, or Discord any time and we will work with you to resolve any issue.

    Right now only UNet and Mirror are supported out of the box but we will be looking to continue expanding. Let us know if there is a specific networking system you would like to see supported.

    Note: Web builds are not supported.
     
    Last edited: Apr 10, 2019
  2. thegreatzebadiah

    thegreatzebadiah

    Joined:
    Nov 22, 2012
    Posts:
    769
    Last edited: Mar 15, 2019
  3. thegreatzebadiah

    thegreatzebadiah

    Joined:
    Nov 22, 2012
    Posts:
    769
    Last edited: Mar 24, 2019
  4. thegreatzebadiah

    thegreatzebadiah

    Joined:
    Nov 22, 2012
    Posts:
    769
    Noble Connect 1.01 Released
    • Fixed broken scenes.
    • Reworked NobleServer to be static like NetworkServer.
    • Better explanations in Example scenes.
    • Improved README and docs.
    Nothing too exciting in this release. The NobleServer is a little easier to use now as it has been reworked to function more like the NetworkServer from UNet.

    Keep an eye out for our next release which should include Mirror support. The LiteNetLib and Ignorance transports are working, just need some clean up and testing and it will be ready to go.
     
  5. elasto

    elasto

    Joined:
    Mar 20, 2014
    Posts:
    18
    This looks brilliant!

    Rough ETA for Mirror support? Closer to a week or closer to a month?
     
    thegreatzebadiah likes this.
  6. thegreatzebadiah

    thegreatzebadiah

    Joined:
    Nov 22, 2012
    Posts:
    769
    @elasto We literally just submitted a new release to the Asset store with Mirror support. So it should just be a few days to a week.
     
    elasto likes this.
  7. thegreatzebadiah

    thegreatzebadiah

    Joined:
    Nov 22, 2012
    Posts:
    769
    Last edited: Mar 24, 2019
  8. elasto

    elasto

    Joined:
    Mar 20, 2014
    Posts:
    18
    Thanks!

    I opted to go with Ignorance for transport since I've seen its name thrown about on Discord, and I have the sample Mirror Network Manager example working locally, so all systems go so far..!
     
    thegreatzebadiah likes this.
  9. thegreatzebadiah

    thegreatzebadiah

    Joined:
    Nov 22, 2012
    Posts:
    769
    Noble Connect 1.02 Released
    • Mirror support is live! More networking systems coming soon as well.
    • Added support for Unity Engine 5.6, 2017.1, 2017.2 and 2017.3
    I'm really happy about the Mirror support, and it will only be improving in the future as I work with the transport devs to improve support. Thanks to the whole Mirror team and the LiteNetLib and Ignorance transport devs specifically who helped me out with a ton of questions.
     
  10. Fuestrine

    Fuestrine

    Joined:
    Feb 13, 2013
    Posts:
    417
    We've got a video! I'll be making a more detailed overview / tutorial video next so let me know if anyone wants to see anything specifically.

     
    Last edited: Apr 10, 2019
  11. thegreatzebadiah

    thegreatzebadiah

    Joined:
    Nov 22, 2012
    Posts:
    769
    Noble Connect 1.03 Released
    • Updated to support Mirror 3.4.9
    Sorry, kind of a boring release, but we are up date with latest Mirror now. More substantial updates are coming soon including support for additional network systems and a brand new landing page for the website.
     
  12. Martho42

    Martho42

    Joined:
    Oct 1, 2015
    Posts:
    8
    Looks great so far! Just what my game needs. A couple questions I have:

    If Noble Connect makes a direct or punchthrough connection, are the users still counted towards CCU?

    When using noble network managers, is it possible to do a regular LAN connection still? When running two instances on my computer, typing in 127.0.0.1 on the client gives errors. If I type in the external address and port provided by the host it does make a direct connection between the two instances, but typing them in every time will be pretty annoying for testing my game.
     
  13. Fuestrine

    Fuestrine

    Joined:
    Feb 13, 2013
    Posts:
    417
    @Martho42
    Yes, CCU counts when directly connecting. Some clarification though is that our punchthrough and servers are what's going to be the main reason for being able to direct connect in the first place. Which means that we work hard to provide a direct connection when possible, which is always going to be a lower latency connection for your players.

    For the local connection, setting up a matchmaking service is probably the best way to make it easy to connect. Any matchmaking solution will do, but we have Match Up which also comes free with the Noble Connect Starter Pack or any paid plan.

    Let me know if you have any other questions.
     
  14. Martho42

    Martho42

    Joined:
    Oct 1, 2015
    Posts:
    8
    @Fuestrine
    Thanks for the reply! It's fair, can't complain considering the great prices. I'll likely purchase the starter pack soon.

    In addition to the LAN testing convenience, I'm planning to make my game free for LAN use but with a small price for match making, so I do want my game to work over LAN still without adding to Noble Connect CCUs. Probably I will just make my code work polymorphically so I can use either a normal unet network manager for LAN or a Noble Connect manager for matchmaking. I expect it will be pretty easy to do.

    Another question: Is Noble Connect more likely to be able to create a direct connection than the NAT traversal asset, or are they practically the same? I'll probably go for Noble Connect either way, but I like to asses all options properly before deciding.
     
  15. Fuestrine

    Fuestrine

    Joined:
    Feb 13, 2013
    Posts:
    417
    @Martho42
    Noble Connect has better punchthrough and will be able to make more direct connections than the NAT Traversal Asset. We rewrote the entire punchthrough from the ground up with all that we learned from writing NAT Traversal and supporting it over the years. NAT Traversal is also based on RakNet which has limitations, while Noble Connect is custom built.
     
  16. Bonkahe

    Bonkahe

    Joined:
    Jul 11, 2013
    Posts:
    10
    Hey @Fuestrine I was wondering about your support for later versions of unity, what is the most current version of unity you support?
     
  17. Fuestrine

    Fuestrine

    Joined:
    Feb 13, 2013
    Posts:
    417
    @Bonkahe
    Any 2018 version is our latest. I think 2019 came out a couple days ago. We haven't gotten around to it yet but I think it should support it. We'll be putting out an official version for it soon.

    You can check out the "Supported Unity Versions" on the Asset Store page to see the full list of current supported versions.
     
    Last edited: Apr 19, 2019
  18. greenbraygames

    greenbraygames

    Joined:
    Apr 24, 2019
    Posts:
    2
    Hi I was wondering if using player's as a host would still incur costs such as the CCU and Data Limit like how the NAT Traversal Punch through would allow us smaller developers to avoid costs with using Unity's Servers

    Also how do we go about using this or removing just this plugin and code for our game on Xbox One and other consoles?
     
    Last edited: Apr 24, 2019
  19. Fuestrine

    Fuestrine

    Joined:
    Feb 13, 2013
    Posts:
    417
    @greenbraygames
    Players are always hosts in any scenario unless you are using a dedicated server (with or without Noble Connect).

    Punchthrough / direction connection adds to CCU with Noble Connect but it only uses a small amount of data when connecting because it uses our servers to facilitate the punchthrough / direct connection. We work very hard to make it so you always have the best connection possible. That means making our punchthrough as good as it can be so that you end up with a direct connection a vast majority of the time (85-95% according to the scientific papers of the standards we implemented).

    For removing it for consoles, not too much of your code should be tied into Noble Connect as it's just used for connecting and disconnecting. So hopefully it's not too much of a pain to have pre-processor directives that you can set to switch between the two ways to connect / disconnect.

    Let me know if you have anymore questions.
     
    Last edited: Apr 24, 2019
  20. greenbraygames

    greenbraygames

    Joined:
    Apr 24, 2019
    Posts:
    2
    So since we're using your severs does that mean we won't have to worry about players dropping or being unable to connect to the host user? Also do we still need the NAT Traversal Plugin too?
     
  21. thegreatzebadiah

    thegreatzebadiah

    Joined:
    Nov 22, 2012
    Posts:
    769
    Yep, that's the idea.

    Nope. Noble Connect completely replaces NAT Traversal.
     
  22. Martho42

    Martho42

    Joined:
    Oct 1, 2015
    Posts:
    8
    I've purchased the starter pack and almost finished integrating Matchup in my game. So far so good. Is there a way to change the log frequency? All of the "Received bytes" messages and other messages are making it a little difficult to debug my game. It's not as bad when they're collapsed, but sometimes I need to un-collapse to see the order that my debug messages are coming in.
     
  23. thegreatzebadiah

    thegreatzebadiah

    Joined:
    Nov 22, 2012
    Posts:
    769
    @Martho42 You can set the LevelLevel on the NetworkManager.
    upload_2019-5-3_7-57-36.png

    You can also set the Log level in code:

    Code (CSharp):
    1. NobleConnect.Logger.logLevel = logLevel;
     
  24. anthonyk

    anthonyk

    Joined:
    Apr 26, 2018
    Posts:
    12
    Hi,
    I have a question regarding a specific use case and want to know if Noble connect can help.

    I want to connect multiple Android devices on a same local network without having them to type in manually the local ip address of the player hosting the game and without having to open any port on the router.

    - Is this possible with Noble Connect ? (using internet I guess)
    - Is this possible without an internet connection ? like each client search in the background for the host inside the local network and connect to it automatically.

    Thanks for your reply :)
     
  25. thegreatzebadiah

    thegreatzebadiah

    Joined:
    Nov 22, 2012
    Posts:
    769
  26. kexar66

    kexar66

    Joined:
    Feb 27, 2013
    Posts:
    33
    Hi, I was trying to implement Noble Connect with Match Up, but I am getting this exception on server, after client is trying to connect (also in Example Match Up scene):
    Noble Connect: No channel for peer: 81.92.254.xyz:4570
    UnityEngine.Debug:LogError(Object)
    NobleConnect.Logger:Log(String, Level) (at C:/Users/Selena/Documents/NobleRelayDLL/Noble Connect/Logger.cs:37)
    NobleConnect.Turn.TurnExtension:SendChannelMessage(PoolBuffer, Int32, IPEndPoint, Action) (at C:/Users/Selena/Documents/NobleRelayDLL/Noble Connect/Turn/TurnExtension.cs:642)
    NobleConnect.Peer:SendOutgoing(Bridge, Int32, PoolBuffer) (at C:/Users/Selena/Documents/NobleRelayDLL/Noble Connect/Peer.cs:208)
    NobleConnect.Peer:HandleOutgoingData(IAsyncResult) (at C:/Users/Selena/Documents/NobleRelayDLL/Noble Connect/Peer.cs:187)
    System.Net.Sockets.Worker:ReceiveFrom()


    I registered on your website and entered Game ID into settings.
     
  27. thegreatzebadiah

    thegreatzebadiah

    Joined:
    Nov 22, 2012
    Posts:
    769
    @kexar66 are you by any chance getting this error on Android or IOS or connecting to / from a cellular network?
     
  28. kexar66

    kexar66

    Joined:
    Feb 27, 2013
    Posts:
    33
    No, it is from unity windows to unity windows. Unity 2018.3.10.
     
  29. thegreatzebadiah

    thegreatzebadiah

    Joined:
    Nov 22, 2012
    Posts:
    769
    I am in contact with kexar66 on discord and working through the issue. Didn't want it to look like I just left him hanging here :)
     
    Last edited: May 23, 2019
    kexar66 likes this.
  30. Oscar-Tsang

    Oscar-Tsang

    Joined:
    Nov 7, 2012
    Posts:
    70
    Can you provide a service call "Direct connect only", you only provide "match making" service, all connection require direct connect/NAT connect. So, no CCU limit count.
     
  31. thegreatzebadiah

    thegreatzebadiah

    Joined:
    Nov 22, 2012
    Posts:
    769
  32. Oscar-Tsang

    Oscar-Tsang

    Joined:
    Nov 7, 2012
    Posts:
    70
    Actually what I want is your "Match up" and "NAT Traversal", but your "NAT Traversal" not support iOS and Android. Also, it no information about support "Mirror" or not. Seen "UNet" is no future, switch to "Mirror" is only choose. And support mobile is a must, do not support mobile is not use.
     
  33. thegreatzebadiah

    thegreatzebadiah

    Joined:
    Nov 22, 2012
    Posts:
    769
    @Oscar-Tsang Noble Connect is the closest you're going to get, and if you're aiming for mobile you're almost certainly going to need the relays anyway. Punchthrough is not very effective on mobile networks.
     
  34. thegreatzebadiah

    thegreatzebadiah

    Joined:
    Nov 22, 2012
    Posts:
    769
    Yeah sorry, I've got nothing for that. Not sure what you would use for Bluetooth.
     
    NeatWolf likes this.