|
|
|
|
|
by jayd16
357 days ago
|
|
Client side hit detection (with server side validity confirmation) is the standard for competitive games these days. It just feels the best. You're also fundamentally misunderstanding the design. > 1. Client input is either dropped or the input is applied but in an unexpected position (because when the user input occurred the client visible state was wrong) The system is built around rewarding the player for making good inputs and tracking the state in which they made those inputs. It's not as far as "all perspectives are valid" but it's close. - Player A moves in to make a hit. The character starts the hit react.
- <lag>
- Player B see's the telegraph and makes a valid block.
- <lag>
- Player A receives the rollback and the character moves into the block animation instead of the hit react. Ideally this is unnoticeable.
Cheating is handled by console DRM and root kits. Similar for Overwatch, similar for Valorant. Such is the state of the art. |
|
Player A fires at B at time 0
Player B moves at time 0, causing A to miss
Due to lag, player A receives B movement at time 3
So player A fired at a still target, and hit. Player B moved, and dodged. Rollback would apply to player A.
Does the hit register or no?
If player A receives the rollback, and now witnesses B dodge, but the hit registers anyways, then I don’t see how there can be a server validity check — from the perspective of the server, the state of the game in which A landed the hit never existed
My understanding of AAA fps games is they show the hit animation as a prediction, but it’s still up to the server whether the hit registers. Eg, if I lag in overwatch and everyone stands still, nothing I shoot lands (except by accident). When my inputs finally reach the server, reconciled and replayed on my machine, it turns out I was shooting at a wall.