I am working on a Rollback networking library in the style of GGPO.
The library is fully Burst compatible and because of that I would like to use the Unity Transport package as the underlying transport as its also burstable and seems to be quite simple and straightforward.
However it seems to only support Server/Client setups but has no direct Peer-To-Peer capability.
Is there a way to leverage this package (with or without Relay) to send messages directly between clients (broadcast) or do I need to take a detour to the server/host to send to all other clients?
I would rather avoid the latter as with a rollback library I only need to send the input and the roundtrip from server to client would introduce additional latency without any upside.
Yes, like practically every networking framework of the past 20+ years it implements the client-server based topology. P2P networking for games is pretty much a dead technology due to how inefficient it is bandwidth wise, and how easy it is to cheat and grieve others. Even inadvertently, it just requires one player having a bad connection and everyone suffers the same fate (there are ways to mitigate this but then you could as well do client-server).
Let alone the problem that most clients are behind a NAT (and firewall) and cannot talk directly to each other. NAT hole punching only goes some way but will not allow everyone to connect. Hence the use of servers or relay services.
Yes, you need to take the detour through the server or Relay.