What if online games used fewer frames of animation compared to their rate?

Avatar image for l3igl3oss
#1 Edited by l3igl3oss (50 posts) -

What it means is that the game runs at 60 FPS, for example, but the characters are only 50 frames worth of animation, and there could be a few spare ones to increase its flow when the game drops in rate, that is to chop what would have run smoother otherwise for the appearance of constant FPS. Let me give you an example:

  1. The game runs at unlocked 60 FPS in different monitors.
  2. It drops to 90% percent at 54 FPS with 45 frames of animation.
  3. The game adds 5 more frames of animation to have the same flow.
  4. It animates with 55 or 56 frames at the regular rate to who doesn't lag.
  5. The look is 1.08 times faster than normal and it gets corrected by sync tech.

Is it possible? The game would remain the same for someone having trouble keeping up.

Avatar image for pyro1245
#2 Edited by pyro1245 (5150 posts) -

Adjusting animation frames is already done in lots of games.

Usually for things that are far away.

Dark Souls comes to mind, moving objects far away have significantly reduced animations - looks like shit TBH. I think in this case specifically frames are just being halved or quartered.

In general, yes you can write code to do what you have described. I am a firm believer that engine code should never consider frame rate when making decisions. Everything should be time-based and therefore frame rate agnostic. So instead thinking of it as frames - think interpolated animations where you are delivering the correct position at the correct time. At time=0, animation is at position=0, then at time=1 you are at position=1, completely regardless of how many frames it took you to get from time=0 to time=1. In this case your animation source has infinity frames (either interpolated from motion capture, or just a whole lot of frames such that it's greater than a high refresh rate monitors HZ - so like 300 or something).

This is really the mark of a competent developer.

To apply this to your MP example, both clients have the animation data, so all you need from the server is the position and state of the other players and the clients should be able to smooth it out - unless the other players are really really laggy.

This is one of the things that intrigues me about Google Stadia - MP clients and server could be the same computer, which should eliminate lots of weird issues MP games typically have with sending data back and forth and syncing up.

Avatar image for l3igl3oss
#3 Posted by l3igl3oss (50 posts) -

@pyro1245 I may have used the word frame in two separate cases, the one where it's about the rate and the other about the animation, but I can see that you got what I said, suggested something nice and gave an example of it in use, although I'm not sure about time versus framerate (what it means).

I know that when Sonic went to Europe, he was slower, because time (and framerate) was based on clock ticks (refresh rate/50Hz in this case). When a frames engine is developed to show as many in one region as in another, then you can deduce time by measuring how much it took between them, and correct them for the display refresh rate.

However, I'm talking about drawings (or model stances) like in 2D animation, when a game drops its framerate. In this case, time would be based on how many of them were used to give the impression of similar FPS, by storing them in some number that is higher than the regular count. They would have to be pre-baked, but interpolation could help when the game lags really hard, at the player's own fault.

Avatar image for Valkeerie
#4 Edited by Valkeerie (309 posts) -

You mean a constant "content rate" defining the unlocked framerate for a given monitor's refresh rate. Hertz would have to define how many sprites, drawings and model stances before the FPS for a given time, so that it showed a selection of them. Good for artists who know the look of their game and not the performance.

Avatar image for pyro1245
#5 Edited by pyro1245 (5150 posts) -

@l3igl3oss:

Do you mean updating the scene even when the rest of the application is hung up on something?

In MP games a common way to handle lag on the client side is to keep the lagged-out players character moving in the last known trajectory. You'll often notice it because the player's movement goes from erratic to a straight line.

Avatar image for Valkeerie
#7 Posted by Valkeerie (309 posts) -

He means to use different content rates, like 12 sprites and 8 backgrounds per second, for example, all under unlocked 24 FPS to target 60Hz. Should the framerate increase to 30, the game will fetch 3 more sprites and 2 more backgrounds from the disc, but force the monitor to refresh at 75Hz through sync technology. That's only an example.