#Help Shape a New Peer-to-Peer Networking Plugin for Unity - Survey

1 messages · Page 1 of 1 (latest)

clear hazel
#

Hey everyone 👋

We’re exploring the idea of building a peer-to-peer networking plugin for Unity — something that makes it easier to connect players directly over a local network without always relying on Unity Relay or another server-based solution.

If you’ve ever worked with Unity networking (e.g., NGO, Relay, Lobby, etc.), we’d love your input 🙏

👉 Survey Link: https://forms.gle/9kPSyXbVxG6xJjSq5

The survey takes less than 5 minutes and will help us understand:

  • How important P2P is (or could be) for your projects
  • The biggest frustrations with the current Unity networking options
  • Which features do you value most
  • Whether you’d consider paying for a plugin like this

Your feedback will directly shape what we build. As a thank-you, we’ll share a summary of results with the community so everyone can benefit.

Thanks for your time and support!

Blaine Bell

trim harness
#

By local network do you mean LAN? Or are you talking about one client connecting directly to another when both are on different networks?

#

If you mean the latter, you may not want to use the term "local network".

#

and if you mean the former, it is already quite easy to connect two clients over LAN.

alpine scarab
clear hazel
#

@trim harness @alpine scarab , thanks for your responses! It seems like this Network Discovery tool is focused on discovering game servers on a LAN. Are you implying that each node in a P2P environment should start their own server, and that each node should stay in discovery mode, so that each node can discover every other node (and its fall off) in the system?

trim harness
alpine scarab
#

Well, in a normal Client Host topology, there only needs to be one host/server that the other clients need to connect to.

If this is forgoing NGO completely and is a new networking stack, then that is a different thing.

#

I would go as far to say that very few games need a true Peer to Peer setup

clear hazel
#

ah, yes. a new network stack. My plugin aims to connect clients on the same network, typically accessible through multicast or UDP Broadcast, so that a server is not needed.

I am interested to know if there is a need for applications and games to have this local connectivity, so that many users can just login and interact without connecting to the server. I would think VR/AR would want to be able to do this, but as you mention, there is obviously a need to connect to the server in most cases.

alpine scarab
#

That would really be limited to like location based VR arena type games.

#

There are not many occasions where a group is on the same LAN

#

maybe conventions like PAX or DreamHack

clear hazel
#

Yes. I am curious to know how many developers are building VR arena type games, and how many want to connect devices for other types of use-cases.

I think the most notable issue with the existing networking topology that this P2P plugin will solve is the Host Migration, where it freezes the game, and takes a while to recover (is there a way to avoid this?). Network bandwidth is also an issue, since by using a node as a Server, if it is local, such as using NGO, the amount of bandwidth in a wireless network is double what it should be, since messages from one client to another go to the server, then back to another client. This extra bandwidth can be limiting and not scalable. Unless I am missing something?

alpine scarab
#

Host migration will always be a bit tricky. Distributed Authority is one way around the issue.
Bandwidth is not an issue on LAN in any case. Even on wifi. Network saturation in P2P would actually be worse since all clients are communicating with every other client.

clear hazel
#

Yes, I believe that host migration is the pain point that a Peer-to-Peer topology will help the most, at least in the short term. Keeping the distributed data model simple so that migration can be avoided completely is the way to avoid unwanted freezes in the game. It also allows more control over where computations can be done, instead of either the client or server.

As far as bandwidth, there is only slightly more traffic for having a Server (i.e., the first message from the client to the server). All other messages will have the same bandwidth (i.e., one message from the source to all clients). This can also be avoided by using other protocols, like UDP Broadcast (or Multicast when available), which our plugin supports, and can send one message to all devices. This will decrease bandwidth drastically, especially for streaming data.

#

I am curious to know how many users are actually implementing host migration. I know it's not easy, and the side effect of freezing games might not be acceptable for production/publishing. Is anyone releasing this logic in products?

trim harness
clear hazel
#

Ah, so do you mean having a dedicated server will avoid the need to use host migration at all? Do you mean a dedicated server on the local network, or is this the reasoning/requirements that inevitably push systems to mainly use the relay/a cloud server?

alpine scarab
#

Host migration should be a rare event. If it's common for the host to crash or otherwise drop the network then you might have larger issues.

For any competitive genre, they won't be using player hosts out of cheating concerns. I'm not familiar with any games that are LAN only. Dedicated Servers solve many of those problems at the cost of money.

clear hazel
#

yes, games are short collaborative experiences that typically include a set number of players. I would think that host migration would not be good for situations, like VR/AR, that have people coming in and out of the experience on the fly. In these cases, host migration is not practical, since it freezes the application.

#

I am trying to figure out if P2P would have a greater interest in the community, or if it is specialized. I also think there could be interest for a small number of games that just want to work on a few devices and do not necessarily want to connect to a server.

alpine scarab
#

It would definitely be niche. I have a hard enough time getting my IRL friends together in one place. Any location running an event like this would have their own server and even client devices on the network already. You would only need P2P in an Ad Hoc situation. If players are bringing their own devices like mobile phones then maybe. But those would be using cellular data in most cases.

clear hazel
#

Yes, for sure using cellular, including connecting to a server. However, I would think there is a Peer-to-Peer component in all systems like this, where devices could take advantage of a direct connection for performance and increasing responsiveness.

Currently, it is difficult to manage and connect directly to many devices on the network. This is where my P2P plugin could help applications (and games) make this easier to do, so developers won't have a barrier to these optimizations.

trim harness
alpine scarab
#

I'd be interested to see what performance metrics you end up with. If everything is already on LAN then I don't see much difference in P2P vs Client/Host

clear hazel
#

Just for example, If you are streaming 5+ live videos from different devices, to some or all of the Clients, then using Client/Host vs. P2P has a drastic effect on the performance. Since all streams would need to go through the Host, the streams would be unnecessarily using as much as double the bandwidth than they should. This could be said about any streaming data. In many of the use-cases for games, the streaming data typically gets streamed to all N Clients, so the degradation might not seem as bad as it is.

#

When I say "double", if a message is sent from one client to another, if it is sent directly, there are two legs, one to the router, and one from the router to the other client. In a Client-Server setup, it has to go to the router, then to the host, then back to the router, then to the other client (4 legs). This is double the bandwidth.

alpine scarab
#

Ok, yea, streaming media would be a very different use case from games. I would use Webrtc for that.

clear hazel
#

It's not just media, but streaming data in general, specifically with data coming from Clients. It seems like multiplayer games typically have a limited amount of streaming data, and it's typically not a bottleneck.

trim harness
#

General data transfer rates between clients and a server for a multiplayer game is in the tens of KBs per second.

#

Which any LAN setup can handle ten times over. That's why we're saying there's not really any room for optimization when it comes to games specifically.