I’ve tried many times in the past to make an effective anti-cheat only to find myself disabling it for one reason or another. I’ve looked over almost every big anti-cheat related thread on the DevForum over the past year or so. I generally understand the big problems with making an anti-cheat. I have yet to find something conclusive and something that wraps all of it together so I can know what to do.
The major issue I’m mainly trying to tackle with this post is movement related cheats (the most common and hard to patch).
One of the most annoying parts is I’ve seen some effective anti-cheats, but not how they work. The two underlying principles I see in an effective anti-cheat is the ability to successfully stop cheaters and to not mess with the normal player’s experience. Just to name a game, Outlaster has, from what I’ve seen, a great anti-cheat. For those who don’t know, the minigames/challenges in that game are mostly movement based, so this is a big thing to have. I got flung one time and got teleported back from moving too quickly. Before this, I hadn’t noticed there was an anti-cheat at all. Pretty smooth. Along with that, I hadn’t seen any cheaters either.
From that experience and everything else I’ve learned, I have quite a few questions:
What value do they source the player’s speed/velocity from? How optimized are these checks so you aren’t using a significant amount of server resources on something the normal player wouldn’t run into? What’s the maximum movement threshold where it starts to teleport you back? How does the system account for ping to not make laggy players unhappy?