Any Unity developer looking to implement user friendly networking over the internet or within strict networks should consider this asset.
The asset extends the functionality of Mirror with a List Server, NAT Traversal and an optional relay fallback mechanism. It's hassle-free and requires little effort to implement:
That's it. Sounds easy right?
Using our List Server is optional, you can use your own if you already have one. The sample project shows how to set things up and contains a simple UI for the List Server.
At the core we are an augmented reality company, so why make a generic networking asset? We believe the best use cases for AR require devices to work together, and thus require a form of networking. We very much like the Mirror asset since it is robust, easy and free to use. It does have limitations, linking devices on different networks or networks with strict limitations can be very hard to do. This is true especially for mobile and institutional networks where you have no control over NAT settings. This is often the case with AR devices. That's why we made this. We want you to enjoy it as well.
You can test the asset for free with a limit of two relay users. There is no limit to non-relay users. There is a NAT only option without relay requiring a onetime payment or choose from one of the relay options which require a monthly subscription.
NAT Traversal only, no relay, with a maximum of 30 simultaneous servers.
Try out the networking asset and see how it works in your network environment.
Connect a maximum of 30 users through our relay servers for your application.
Connect a maximum of 100 users through our relay servers for your application.
Have specific needs? Contact us.
With your account you can view per license statistics to get insight into the number of sessions, connected relay users and data usage over a period of time.
The List Server keeps track of the active servers for your application. Clients can easily connect to them by requesting the list. A server is added to the list when a NetworkManager is started as a server or host. A server can be set to private so it will not show up in the list. In order to connect to a private server you will need to have its connection key.
Often NAT hole-punching is done with UDP, however some networks block UDP traffic for security or performance reasons. This poses a major problem when you are part of such a network. Another issue with UDP is that it is less reliable, a package may arrive or it may not. For that reason our solution relies on Telepathy, the default TCP based Transport for Mirror. This way you can leverage the speed and reliability of Telepathy to connect to others across the globe.
The fastest connection between devices will always be a direct connection. Put a relay server in the middle and the path will be longer which means a greater delay. It also means more pressure on our servers, therefore our method tries hard to give you a direct connection.
In many cases NAT Traversal will find a direct connection. We still recommend you to try out the Free license and see if NAT Traversal works in your environment to make an educated decision on which license type is right for you.
In most cases NAT Traversal works great, but when it fails, a connection request will automatically be transformed in a relayed connection. This means the connection is relayed through one of our servers. So even on very port restricted networks you will still be able to connect or share your server with the world.
You will want the fastest relay connection possible. That's why we have servers running across the globe to provide the shortest path possible between two devices and minimise delay.
We constantly monitor the load on our servers and balance connection requests to make sure loads are evenly distributed. We fire up new servers if necessary. This way we can make sure network performance is optimal even when loads would normally max out our servers.
A relay connection is a last resort to make sure a connection can be made when NAT Traversal fails. A license may put a maximum on the number of relay connections, not on the number of connections that succeeded through NAT Traversal.
A license puts a maximum on the number of servers you can have active in the List Server. Both public and private servers count towards this number. A server is added to the List Server when you call StartServer or StartHost on a NetworkManager. It is removed from the List Server when you stop the server or the connection times out. When you max out the number of servers in the List Server your server will still run locally like you are used to from Mirror.