What are the best practices for ensuring players don't cheat in games? One example would be places in a racing game: How can we ensure that the actual placings are rewarded properly, and how would we actually do the rewarding? Anything done locally is easily crackable and hackers can even change incoming / outgoing data from / to a server, so does it matter anyway? Is there a way to keep track of places server-side instead of sending data from a player to the server?
Answer by Brendan · Nov 22, 2017 at 02:58 AM
As you can imagine, cheating in games is a persistent issue that comes up a lot. I've posted on the approaches to combating this a few times in the forums - here's one of the most recent posts on this topic: https://community.playfab.com/questions/12831/methods-to-reduce-the-likelihood-of-cheating.html.
In short, correct - you cannot trust the client. So you need to determine what the things are that you must accept from the client, and decide how best to make sure the server is checking those values. Are they within reasonable ranges, do they result in the player doing something impossible, etc.