On anti-cheat

Unlike DRM software, anti-cheat software serves a purpose that is useful to the player. Most people don’t like to encounter cheaters in their multiplayer game, no matter what side they are on. Even in cooperative games, a cheater can make the game too easy and thus less fun for the other players. However, anti-cheat software brings some performance and security issues, especially the kernel level ones.

To be fair, there is nothing inherently wrong with a program running with such high privileges. Sometimes, it is the only way. However, in case of anti-cheat software, this is not really necessary and while any program can potentially be malicious, a program with kernel level access can do way more bad things to your computer and data. That is why we should be very restrictive in what we allow to run with such privileges. But even if security was not a concern, when an anti-cheat software is installed on the cheater’s computer, they can spend as much time as they want trying to break it. And unless the anti-cheat has no flaws, they will eventually succeed.

So, does that mean there is no good way to get rid of cheating? I don’t think so. Kernel level anti-cheat installed on the client computer is the lazy option. A better implementation is anti-cheat installed on the server. This way the anti-cheat software libraries are not accessible to the cheater, so they can’t try to mess with them and they can’t completely bypass it either. Server anti-cheat can’t detect RAM modifications, neither it can detect suspicious processes on cheater’s computer, but it can analyze player behavior and detect things which are not possible to do in game, like moving or aiming too fast, not losing health etc. Cheats can be still used, but the cheater could only get to the limits of what is possible, which makes them appear better than they are but still very possible to defeat.

There is another, very cheap option of how to get rid of cheating in games with low amount of players in a match. Instead of playing with random people, join a group of people who play together. Cheating is way less likely to happen when players know each other well. Or just give up and ship your game with cheat tools – make cheating the intended way of playing.

signature