Why is every player connection getting a dedicated port? Are the clients connecting directly to their Redis instance? In every CRUD app I’ve seen, access to the data store is done by a public facing intermediary that listens on one port.
> Why is every player connection getting a dedicated port?
They probably using TCP transport protocol, or something similar. A better way would be a custom UDP-based protocol. With UDP, with enough resources on the server they could have supported millions of concurrent users connected to a single server.
I don’t have recent experience with such things but at the first sight UDT and QUIC protocols look OK.
> In every CRUD app I’ve seen, access to the data store is done by a public facing intermediary that listens on one port.
I agree, but their application ain’t a CRUD app. It’s a competitive videogame.
Game developers are often cutting corners to save development and infrastructure costs. And for another reason too, to minimize network latency. While 10G/100G Ethernet is very fast in modern data centers, every network hop still adds twice the latency. CRUD apps don’t care too much as long as it’s smaller than 50-100ms. For a game you’d want as fast as possible, ideally under 16.6ms roundtrip (one video frame on a 60Hz display).
3 comments
[ 2.8 ms ] story [ 32.5 ms ] threadThey probably using TCP transport protocol, or something similar. A better way would be a custom UDP-based protocol. With UDP, with enough resources on the server they could have supported millions of concurrent users connected to a single server.
I don’t have recent experience with such things but at the first sight UDT and QUIC protocols look OK.
> In every CRUD app I’ve seen, access to the data store is done by a public facing intermediary that listens on one port.
I agree, but their application ain’t a CRUD app. It’s a competitive videogame.
Game developers are often cutting corners to save development and infrastructure costs. And for another reason too, to minimize network latency. While 10G/100G Ethernet is very fast in modern data centers, every network hop still adds twice the latency. CRUD apps don’t care too much as long as it’s smaller than 50-100ms. For a game you’d want as fast as possible, ideally under 16.6ms roundtrip (one video frame on a 60Hz display).