Originally posted by andrebrait
View Post
So the solution is just like any untrusted-network application - don't trust the client! Modern FPS's don't keep the whole game-state updated; the server's smarter than that and only sends the state for things you can see (plus a little extra to account for latency when the player or objects are moving, but not enough to give cheaters a huge advantage).
Similarly, the client isn't authoritative about player actions; the server replays the inputs and maintains the canonical state. The client often simulates and renders things before they've been validated by the server, so you don't get network lag when you walk forward or whatever, but when the response arrives it'll align you with the server's view of the world. That's why you get that annoying effect when the network glitches and you suddenly teleport backwards.
Competitive games have some increasingly smart cheat-detection - they'll do things like guess what you reacted to, and whether you're consistently responding to things you shouldn't have been aware of.
Anyway...clients aren't trusted. They can't be trusted, ever, so opening the source doesn't make a difference.
Comment