50 Milliseconds

I have been thinking how would i set up an animation between server and client and there are two ways, one is to let server command and another is to run it on client an then check by server. Letting server control it is way easiler but creates a 50 ms lag … however most people seem to choose second way and i wonder if this lag is realy all that important because from what i know humans should not be able to notice … so why?

This article should have what you need.

http://www.gamedonia.com/blog/lag-compensation-techniques-for-multiplayer-games-in-realtime

1 Like

No

That’s assuming an ideal connection though. You won’t always have an ideal connection with the server. My connection is about the number you stated on a good day, but on a bad day my connection easily soars into a couple hundred or more milliseconds.

If people can notice the difference between 30, 60, 144, and even higher refresh rates I wouldn’t be surprised if they could notice 50ms in at least some situations.

2 Likes

When players are really in the zone, lag can break the immersion. I definitely would assume players would notice 50ms of lag. Serious players can tell the difference between 30, 60, and 144 FPS. Remember, 30 FPS is 33 milliseconds per frame, 60 FPS is 16 milliseconds per frame, and 144 FPS is 7 milliseconds per frame. If you have a 50 millisecond lag on an animation, that would be similar to having a 20 FPS framerate for that animation.

4 Likes

worth noting the problem with 50ms lag is that the spikes will often go much much higher. kind of like 30fps isn’t really that bad if consistent, but if you can’t run beyond 30, the spikes will wreck game play.

(Although yes, gamers (and everyone else) can tell the difference between 30fps and 60fps, especially when dealing with higher resolution and less blur than old tv.)

But really, it’s the spikes and gaps that are the problem.

If you are running anim on server than any spike or lag will make the game entirely unresponsive.

Many highly polished games go in the other direction and do extensive work on faking local animation to appear to be hyper responsive locally, with the server assuring actual synchronization. You know this is happening because when the lag clears your character might teleport or warp.

They do that to keep things feeling responsive even through inconsistent connection.

In sum, it’s not the 50ms that’s the main problem - it’s what happens when someone plays on an moderately bad connection and has ping spikes going to 220 every 10 seconds or so. The game would be absolutely unplayable unless turnbased.

2 Likes

Okey but if you go play top games like Owervatch and you get lag 200 ms you will notice it anyway.
And yes client side animation seem smart but also not easy to a point where you may even need to hire extra people and do you think that is a good idea for indie projects?

Handling visual stuff like animations is easier on the client and is the only correct/good way to do it. Why would it be easier to put additional logic on the server to handle things that the client already inherently knows? You are already synchronizing data about the core action that triggers the animation.

The only way I can see your view of it being easier from the server is if you are using the approach of just synchronizing almost everything via the network. You should move to the paradigm of the server synchronizes only what it needs to. It’s not inherently more difficult to do that, you are just moving logic from server to client. So instead of on the server if player did action A fire animation, it’s when the client receives action A fire animation. Or if player was the one initiating action A alternatively fire animation before sending request to server.

Idea was to synhro all characters as same. You dont play alone you know… so you have to synhro other players… so you already leting server do that and what i ask is if its a good idea to do that extra work on client side.