I have read in my lecture notes in a game dev class that in a server-client-architecture multiplayer game, it is common practice to have the server running at a lower frame rate than the client (20 fps compared to 60 fps for example)

No reason was given in the notes so I want to ask if anyone has a solid explanation for this?

My guess is that the server "waits" a little for all clients to send some packets before making its calculation. But this seems to be a different technique (bucket synchronization) altogether

  • 1
    \$\begingroup\$ Im assuming that a server is only concerned with sending and receiving packets.And doing a full 60fps is wasteful? \$\endgroup\$ – Sidar May 6 '18 at 9:04
  • \$\begingroup\$ "It is common practice to have the server running at lower frame rate than the client". AFAIK, if the server is also a player, it will have a higher computational load, but it isn't acceptable to run the game with a lower fps rate; on the other hand, if the server is a dedicated one, it doesn't even need to render anything, allowing all its resources to be used for computation and networking. \$\endgroup\$ – liggiorgio May 6 '18 at 15:13
  • \$\begingroup\$ The comments echo the essence of the answer I've selected below. Thank you \$\endgroup\$ – resnet May 8 '18 at 14:31
  1. It's not necessary. The reason why you need 60 FPS on the client is because you want the animations and movements to look fluent. But when it comes to just the game mechanics, 20 FPS is more than enough.
  2. It saves money. A third of the framerate means you can run three times as many game instances on the same amount of server hardware.
  3. It lowers the chance that the server fails to fulfill it's target framerate and skips frames. This can cause all kinds of gameplay and synchronization problems (which exactly depends on implementation details of you mechanics and netcode)
| improve this answer | |
  • 2
    \$\begingroup\$ 4. The server must typically do more work, simulating physics and movement for all players and AI; the client just needs to handle one player. \$\endgroup\$ – Maximus Minimus May 6 '18 at 10:32
  • \$\begingroup\$ @MaximusMinimus could you elaborate on why that leads to lower frame rate please? Thanks \$\endgroup\$ – resnet May 8 '18 at 14:30
  • \$\begingroup\$ @user1393777 - I should clarify, that's not actually what I'm saying. What I'm saying is that it's a reason why you might deliberately choose to run a server at a lower framerate. Nonetheless, it should be self-evident that doing more work is going to be slower than doing less work, shouldn't it? \$\endgroup\$ – Maximus Minimus May 8 '18 at 14:53
  • \$\begingroup\$ Having just too much to calculate if simulating the game at 60 FPS might be a concern for a few games, but in the majority of games, the CPU load required for calculating the game mechanics is dwarfed by the CPU load required for graphics (even though most of the graphics load is usually on the GPU). \$\endgroup\$ – Philipp May 8 '18 at 14:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.