This is an enhancement proposal.
Currently the ioq3 engine uses replication of UDP packets to ensure that the communication is reliable.
However, a more reliable, faster way and using less bandwidth than replication would be to use error correcting codes, with the only cost being a bit more CPU consumption on the server and on the client sides.
For example, this C++ library could be a good starting point (it's exactly about using error correcting codes for reliable UDP communications, but it's in CPP...): https://github.com/catid/shorthair
There are a lot of other C libraries implementing Reed-Solomon, so that reinventing the wheel should not be necessary here. But shorthair is a good example for the actual implementation for UDP packets management, even if another library is used in the end.
As stated by the shorthair project:
Advantages of using erasure codes in online games:
- 50% faster delivery over UDP than over TCP
- 50% less bandwidth used than naive redundancy
- 50% better recovery rate than parity redundancy
Also, this library shows how to compute the ecc rate to achieve the target loss rate, so that a server configurable variable could be advantageously added for servers admins to setup the loss rate they are expecting. This rate would then be sent to the clients inside the connection string along with other variables.
I do not see ECC as a replacement for the current replication scheme of UDP packet, but it could be a complement (because anyway if an UDP packet was already received, it will be discarded). This would probably allow for smoother gameplay across long distances such as EU players on a US server.