I have a code base written for UNet, how does my code need to change?We’ve tried to make the conversion as painless as possible. You’ll still be using the UNet API and most things will work exactly as you expect, but there are a few key differences. Everything mentioned here is demonstrated in the UNet example scenes so check those out to see it in action.
The most important change is to switch from using Unity’s NetworkManager to the NobleNetworkManager. In most cases this is as simple as changing the parent class of your custom NetworkManager to NobleNetworkManager.
If you are instead using the NetworkServer and NetworkClient classes without a NetworkManager, you will switch to using the provided NobleServer and NobleClient classes.
The final critical change has to do with how hosts retrieve the address and port that they will pass to clients so that they can connect. This is called the HostEndPoint in NobleConnect. You can get the HostEndPoint when it is received by overriding OnServerPrepared() on your NetworkManager or by passing in a callback method to NetworkServer.Listen().
Once a client has acquired a HostEndPoint, everything works like normal. If you are using the NetworkManager, set the networkAddress and networkPort to the values from the HostEndPoint and call StartClient() to connect to the host. If you’re using the NobleClient, call NobleClient.Connect() and pass in the address and port from the HostEndPoint.
Why do I have to wait for the HostEndPoint?Without the relays, the host would know their address and port immediately because it would be a local address on the host’s computer, but with Noble Connect the address is retrieved asynchronously from our relay servers.
I lost my game id, what do I do?Log in to your account at noblewhale.com and visit the dashboard. You can get your game ID there by clicking on the blue lock and entering your password.
I changed my password and now my game ID is wrong.Your game id is based on your password so if you change your password you will need to re-copy your game id from the dashboard on our website to the NobleConnectSettings asset in the Unity Editor.
What is CCU?CCU stands for concurrent players. It is the number of people simultaneously playing your game. We only track CCU after a host starts hosting or a client starts connecting, so if your players are just sitting in the main menu that will not count against your CCU limits. For the average game, 1 CCU corresponds to roughly 400 monthly active users.
What if I go over my CCU limit?If you are using the free plan or Starter Pack then additional players will be prevented from hosting or connecting. No existing connections will be dropped though. When your CCU falls back below the limit players will be able to host and connect again.
If you are on one of the monthly plans then you will receive an email warning the first time you go over your CCU limit. You will have 48 hours from this point to upgrade your plan. If you do not upgrade, then after 48 hours the CCU limit will go into effect. This means that when you reach the limit additional players will be prevented from hosting or connecting. No existing connections will be dropped though. When your CCU falls back below the limit players will be able to host and connect again.
What if I need more CCU?You can purchase the Starter Pack one time to get an additional 100 ccu for 5 years. When you need more than that you’ll need to purchase one of our monthly plans available on our website.
How is my bandwidth limit calculated?Each plan includes 3GB/CCU each month.
What if I go over my bandwidth limit?If you are using the free plan or the Starter Pack then you will be cut off after reaching this limit and you will no longer be able to host or connect until the end of the month, or until you purchase an upgraded plan. If you are on one of the monthly plans you will be charged for additional bandwidth used after your limit is reached. Take a look at the product page for your plan to see the exact numbers.
How do I know if a client has connected over the relays or directly?You can check NobleClient.latestConnectionType any time after connecting. It will have the value Direct, Punchthrough, or Relay. Both Direct and Punchthrough represent a direct connection between client and host, Punchthrough just means Noble Connect had to try a little harder to work out the address to connect directly to.
What about other networking systems?The low level code that is included with the plugin will (in theory) work with any peer-hosted networking system. If you download or purchase Noble Connect for use with something other than UNet we can work with you to get it up and running.
We are actively working to support other networking systems so that they will work right out of the box in the future. If there is a particular networking system you would like to see supported don’t hesitate to reach out and let us know.