Monday, March 26, 2018

Could someone help me understand this a little better?

Hey all! So I'm a C++ programmer who has started to take an interest in networking and I'm looking for some clarity on some things.

I've been looking into different technologies and algorithms for maximum throughput of small chunks of data.

So I've decided I want to use UDP and now I'm looking into the following libraries https://github.com/real-logic/aeron (Efficient reliable UDP unicast, UDP multicast, and IPC message transport) and https://github.com/skywind3000/kcp (A Fast and Reliable ARQ Protocol).

Aeron says its designed for low latency and is well suited for large data. KCP's github is mostly in Chinese but from what I can understand it sends redundant data at a cost of more bandwidth, resulting it faster speeds?

Basically what I'm doing here is a multiplayer game with a server(or multiple) and a bunch of clients, sending a bunch of small packets of data every second. I'm targeting mobiles and desktops. I'd say the most important thing is to avoid lag from slow/delayed/corrupt data.

I'm also trying to better understand the benefits and use cases of Reed-Solomon and Simple Binary Encoding. I've also noticed huge differences in reported throughput from library to library.

I've looked into https://github.com/networkprotocol/yojimbo A small networking library designed for games by Glenn Fiedler. I've noticed he just uses straight winsocks though... can that really compare to a using the algorithims and libraries I've mentioned?

Up to this point I've used boost.asio and winsocks. If someone could please enlighten me and point me in the direction of what to look into/research, I'd appreciate it. Thanks



No comments:

Post a Comment