diff --git a/src/game/client.cpp b/src/game/client.cpp index 3520640f1..ebf9ded9c 100644 --- a/src/game/client.cpp +++ b/src/game/client.cpp @@ -2215,7 +2215,7 @@ namespace client void c2sinfo(bool force) // send update to the server { static int lastupdate = -1000; - if(totalmillis-lastupdate < 40 && !force) return; // don't update faster than 25fps + if(totalmillis-lastupdate < 8 && !force) return; // don't update faster than 125 FPS lastupdate = totalmillis ? totalmillis : 1; sendpositions(); sendmessages(); diff --git a/src/game/server.cpp b/src/game/server.cpp index 761eecc68..7feb2090b 100644 --- a/src/game/server.cpp +++ b/src/game/server.cpp @@ -5932,9 +5932,12 @@ namespace server { if(clients.empty() || (!hasnonlocalclients() && !demorecord)) return false; enet_uint32 millis = enet_time_get()-lastsend; - if(millis < 40 && !force) return false; + // Send packets at 100 Hz. Higher update rates result in lower effective latency. + // This update rate should be slower than the one defined on the client to avoid "slipped" frames, + // which makes interpolation look worse. + if(millis < 10 && !force) return false; bool flush = buildworldstate(); - lastsend += millis - (millis%40); + lastsend += millis - (millis%10); return flush; }