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.
Log in to comment