A Unity ID allows you to buy and/or subscribe to Unity products and services, shop in the Asset Store and participate
in the Unity community.
Separate names with a comma.
Discussion in 'Unity Transport' started by IgreygooI, Aug 15, 2021.
The title says it all.
The reliable pipeline is part of the transport, moving to the Unity Transport forum
This feels like a really needed feature for any game with lots of players. Sending reliable data can be really important and sending it to lots of players will fill the small 32 packet window. Or I might be misunderstanding as to why it seems small?
I know that TCP could be a better solution (On the roadmap) but theres lots of network libraries that just use UDP sockets and build a usable reliability layer on top which dont have the same limitations (larger than 32 packets).
Ideally you should be able to use the fragmentation and reliable sequenced pipelines together and have no issues with many players and more than 32 packets per frame (if needed).
I understand that this limitation is frustrating, and increasing the limit is in our backlog. Unfortunately it's not as simple as it may seem and I don't know when we'll get to tackling this task.
Just to clarify, though: the limit is not shared across all connections. Each connection to a player can have up to 32 reliable packets in-flight. In fact, the limit is per-connection and per-pipeline. So if you create multiple pipelines with a reliable sequenced pipeline stage, each pipeline (for each connection) will also have its own window of 32 packets. This could be used to create different "channels" of reliable data and (somewhat) work around the limitation.
Until we get around to increasing the limit, we'd recommend handling the error returned when reaching the limit and buffering the messages on a queue on the side (I know, it kind of defeats the purpose). This is the solution that we're using on both Netcode for Entities and Netcode for GameObjects.
Ah ok, thankyou. That makes it a lot more usable.