OpenArena Message Boards

OpenArena Contributions => Development => Topic started by: GrosBedo on March 07, 2017, 04:17:28 PM



Title: More reliable long distance transfers (aka EU-US servers with minimal lag)
Post by: GrosBedo on March 07, 2017, 04:17:28 PM
Hey there,

I made a proof of concept code to provide more reliable UDP transfers by using error correction codes (Reed-Solomon): https://github.com/lrq3000/ioq3/tree/network-ecc

This patch is not yet ready and probably does not work as I did not even test it, if anybody is experienced with ioq3 networking and want to contribute, please help review the code!

All the functions are already implemented, and I commented extensively, so the intent should be clear even if the code is wrong. I just need someone experienced with networking to review and fix absurd lines of code :) (particularly to implement for fragmented packets in order to stay below the MAX_PACKETLEN).

In the end, the patch should provide very reliable UDP transfer, enhancing greatly the gaming experience for long distance communications such as US players playing on EU servers, and inversely. The idea is that instead of sending duplicated packets, we try to error correct packets. For more info about this idea that stems from research, see https://github.com/ioquake/ioq3/issues/124


Title: Re: More reliable long distance transfers (aka EU-US servers with minimal lag)
Post by: Gig on April 26, 2017, 12:06:45 AM
Sounds interesting... too bad I'm not able to help you at all with this...  :(


Title: Re: More reliable long distance transfers (aka EU-US servers with minimal lag)
Post by: sago007 on April 26, 2017, 02:19:53 PM
I am not sure about how that would improve the situation.

It is not immanently obvious to me how it would play nicely with the delta snapshots.

Also many messages from the client can properly fit in a single package and I guess that it mostly makes sense for messages that uses a lot of packets.