-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consider supporting other kinds of synchronization strategies #4
Comments
So far, I can think of the following matrix of different "strategies" for the client:
The "strategy" currently implemented in the client (contained in the horribly named Not sure if the Extrapolative is actually useful since it probably can't react to user's input immediately (but at least it crudely estimates where, say, enemies are located, allowing the player to take a somewhat accurate action. However, this one probably suffers from the most amount of jerk and teleportation). In addition to these core strategies, we can combine some of them for an enhanced player experience. In particular, one could combine Predictive and Delayed, or Predictive and Interpolative, where we use Predictive for the current player and props while we use Interpolative/Delayed for other players. It will be useful for the server to also get the corresponding display states that the client sees at any timestamp so that the server can validate hit commands correctly. There are two ways the server can handle this:
|
Have you taken a look at how GGPO/Backroll does their synchronization? It's a peer to peer system but It might be cool if you could support it somehow. |
I haven't yet, but I'll definitely read up on them when I get time for sure. Thanks for the links! |
For example, to reduce jerking movement and teleportation so that shooter games can be somewhat playable, it might be nice to display other players in the past (i.e. only render them at positions that have been confirmed by the server), potentially at the expense of lower performance or higher memory footprint.
Some initial exploratory work has started on the
abstract-simulator
branch (which may be renamed or deleted by the time you're reading this, but don't worry, I'll link to the corresponding PR when it's available).The text was updated successfully, but these errors were encountered: