Hacker News new | ask | show | jobs
by bob1029 665 days ago
I think the real answer is to sidestep all of the direct, deterministic solutions in favor of statistical ones. I am not 100% certain of this, but I believe some there are some games, like EA's Battlefield series, that utilize a degree of statistical modeling to detect cheaters.

We reliably use statistical process control to automatically calibrate incredibly precise, nanometric-scale machinery for purposes of semiconductor engineering. Surely, with the extreme amount of data available regarding every player's minute inputs in something like a client-server shooter, you could run similar statistical models to detect outliers in performance. With enough samples you can build an extraordinarily damning case.

The only downside is that statistical models will occasionally produce false positives. But, I've personally been "falsely" banned by purely deterministic methods (VAC) for reasons similar to others noted in this thread (i.e. leaving debugging/memory tools running for a separate project while playing a game). So, in practice I feel like statistical models might even provide a better experience around the intent to cheat (i.e. if you aren't effectively causing trouble, we dont care).

2 comments

> like EA's Battlefield series, that utilize a degree of statistical modeling to detect cheaters

Battlefield started out using PunkBuster, one of the earliest kernel-level anti-cheats. With Battlefield 4, they used FairFight, a statistical server-side solution, alongside PB.

With Battlefield 1, they dropped PB, and operated with just FairFight.

And now, EA have decided to create their own kernel-level AC, called EA AntiCheat, and are implementing it on BF5 and BF1, largely because FairFight was not enough.

Was FairFight not enough because statistical methods are insufficient, or because their specific approach was flawed?
You could probably detect 90% of cheaters in Rust by detecting people who press DEL during in game non textual interactions. It probably would also have a relatively low false positive rate. It is however easy to evade once known.

But I think collecting all that data and sparingly using it is the best approach. You could combine that with headshot rate, etc. and really narrow down relatively reliably.