[Multiplayer] Fair Contested Catching of a Ball

Started by
1 comment, last by hplus0603 1 month, 1 week ago

I am in the process of making a multiplayer American football game but I'm having trouble creating a catching system that feels good and is as fair as possible, even to more latent players. I want players to have to press a button to time their catch properly, rather than the ball being caught automatically upon player collision. This creates problems for contested catches though, since if one player is more latent, they are at a severe disadvantage as their RPC to the server will arrive later than the other player's even if they pressed catch earlier. I have thought about buffering or maybe using rollbacks but I'm not sure what will feel the best. My current network architecture is a state authoritative dedicated server, for context. Any help is appreciated.

Advertisement

This is one of those cases that won't be perfect, because latency sucks.

Your options are to push prediction and rewind as hard as you can, to favor the player with lower latency, or to trust the client WRT catch timing (which will then open up for more possible cheating.)

In some shooter games, you may see this as “how did I get shot around the corner?” when the player dodges behind the corner, but already got shot by someone else on the server, and the latency is high.

Conclusion: High latency gaming sucks, and the fact that it works at all, is a testament to a wide variety of game specific hacks and compromises that game developers end up implementing.

enum Bool { True, False, FileNotFound };

This topic is closed to new replies.

Advertisement