Skip to content

Instantly share code, notes, and snippets.

@nsporillo
Created April 27, 2016 22:32
Show Gist options
  • Save nsporillo/a4e81c04b2465e6759b8780b7acae2ec to your computer and use it in GitHub Desktop.
Save nsporillo/a4e81c04b2465e6759b8780b7acae2ec to your computer and use it in GitHub Desktop.
Never trust the client
I’ve come to think that the position that the client should never, ever be trusted on the ground that it doesn’t allow to achieve logically perfect security, while true, is too extremist.
It can be a difficult business case to build and maintain heavy dedicated servers (especially for such a not quite “Massive” MMO game as the division), whereas (in my experience as a gameplay programmer on another “mmo” using p2p networking) there are a lots of ways to make client side hacking by memory editing and code injection too difficult to figure out for most hackers.
Combine it with silently detecting and reporting what you can’t outright prevent and delayed response to those red flags so they have no idea how you found them, and you can have a pretty good (even if imperfect) effect against cheating.
People who hack games aren’t in my experience as insanely bright as you may first think by looking at what they do. Expert cheat engine users, for instance, often seem very knowledgeable because they have notions of assembly and can follow a bunch of pointers through memory to locate a specific gameplay value. And yet, they may turn out to otherwise know next to nothing about programming.
The people who are really good at reverse engineering probably have better use of their time than cheating in online games. Of course, the more people playing a given game, the more likely it is that there is a good hacker among them, but overall I really believe that a pragmatic approach is more realistic.
For the division, I believe there is a lot that they can do to fend off trivial cheat engine based cheats, even if it isn’t that geekily satisfying “only true way” solution.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment