Right now it is hard to send a lot of data as fast as possible to the server due to limitations of TCP. In addition, Roblox has recently made it harder to use RemoteEvents by adding some “spam” checks which means that delivery of remote events is no longer guaranteed (RemoteEvents do not guarantee delivery).
UDP, or some variation that guarantees data correctness, but not order nor delivery, would replace our current rapid-firing of remote events and reduce network traffic, and remove the potential for TCP meltdown and make a better experience for our players with less reliable mobile connections.
Yeah that would be really cool. I think that the most common use case will be guaranteed validity, but I can definitely see where people would want to guarantee order given a specific channel or guarantee delivery separately.
I’m also down for doing my own correction, but only in really specific cases, and also only if we can send binary strings.
I’ve been messing around with some very high rate of fire raycast guns.
To sync bullet streaks it would be handy to have a lossy high throughput low latency channel that didn’t choke out all the other network traffic my game wants to send.
It would be really sweet if it wasn’t locked at 20Hz like the other network updates. 20Hz basically guarantees everyone in my game will have at least 100 ping.
I really can’t express the importance of having something to more accurately and precisely measure and manage traffic in games. Having UDP is surely something to manage data that really isn’t a high priority and can wait. I can only reiterate previous comments made before about physics data because that’s likely to be my biggest use case.
You can easily multiply that ping figure for players outside the US. Ping figures at least x4 creating a significant disadvantage - especially if you are creating a high pace PVP environment game as you’ve also stated. 20hz is pretty painful to deal with in connected gaming environments.
Extra yes, please and thanks to this. I can set non-important data to low priority and set an extended or shortened timeliness duration for them if I need to (depending on the individual use case) whilst still keeping vital information at a high priority state.