Valve's Battle Against Cheaters
wjousts writes "IEEE Spectrum takes a look behind the scenes at Valve's on-going efforts to battle cheaters in online games: 'Cheating is a superserious threat,' says [Steam's lead engineer, John] Cook. 'Cheating is more of a serious threat than piracy.' The company combats this with its own Valve Anti-Cheat System, which a user consents to install in the Steam subscriber agreement. Cook says the software gets around anti-virus programs by handling all the operations that require administrator access to the user's machine. So, how important is preventing cheating? How much privacy are you willing to sacrifice in the interests of a level playing field? 'Valve also looks for changes within the player's computer processor's memory, which might indicate that cheat code is running.'"
Team Fortress is overrun with cheaters and Valve seems completely unable to do anything about it.
Women are like electronics: you don't know how damaged they are until you try to turn them on.
Which part of this infers a threat to privacy? You need to think of this too- The system is running Windows, which is a black box and they could be doing whatever they want and you wouldn't know about it.
I don't know that doing anything client-side will work, for the same reason that DRM doesn't work. I guess it might deter the casual cheater, but then there's also the possibility that raising the bar will entice people to break the anti-cheating code just for the challenge.
The long-term solution I think is to design the game in such a way that the server can verify clients are playing by the rules. If wallhacks are a problem, the server could send fake data to the client telling it there's an enemy hidden behind a wall (when it's really not). Legitimate players won't be aware of this, but it would alter the behaviour of cheaters and thus they could be found out. Aimbots could perhaps be detected by supplying an invisible model that a legitimate player wouldn't be shooting at. Essentially, give the client bogus data that won't affect the experience of legit players, but will out cheaters.
Maybe it's easier to keep changing the client-side checks fast enough that it's not worth the time to work around, but I don't know if that kind of strategy is working in practice. Who will pay for the constant development?
Then you made a poor platform choice.
The PC in general is an open platform because you can easily and trivially run whatever code on it you want and peak and poke the memory as you see fit, even if the OS itself is closed.
If you want a gaming platform where cheating is not an issue, you need a closed platform, like a console, where it is much easier for the developers to detect and prevent cheating, if there is even any in the first place. Despite being 5 years old this year, whilst it has suffered some game logic cheats which are easily patched, the Xbox 360 has yet to be prone to a single aimbot or radar cheat for example.
PC's are great for general usage and single player/cooperative gaming, but not for competitive gaming where cheating is largely an unsolveable problem without closing the platform, which goes against what PCs are great at. Even assuming in a few years you move everything server side and just pass images to the client there's still the possibility that people will write pattern recognition apps, to recognise enemies and send control messages to aim at them like any other aimbot.
Despite what the league players would have you think Valve's games are not generally played with (or designed for) less than 16-24 people, and 32 is not remotely uncommon. What your suggesting effectively doubles the load on the server AND each affected player.
Plus most cheaters would not readily be detectable this way. Aimbots tend to be activated by the player right before firing after the player manually gets pretty close to the target on their own, and wallhacks are generally used as an advantage in information rather than open combat.
A bullet may have your name on it but splash damage is addressed "To whom it may concern."
"Hardware failures and software bugs."
What hardware "failure" looks like a wire grid and wallhack on screenshots? And why should I as a server admin care if you unknowingly or willfully used this bug?
What software "bugs" will have a detection signature like the latest aimbot? Which software bug will produce a registry entry and ..\system32-fallout like a wallhack?
We know how likely an md5 hash collision is with hack X and legitimate program Y. Not very. With an increasing number of wallhacks and legitimate programs, we will see hash collisions sooner or later, but I'm not really convinced unless you have dozens of very very rare but innocent programs on your system that no one else has AND anyone else having them is also banned.
Think of the online arena like a dance club: you paid for entry and yet the bouncers can throw you out at the first hint of trouble. And all other guests are cheering and complimenting them for doing so. A few dimwits, idjits and griefers can just cause so much fallout in such a short time that even drastic and unwarranted measures are usually applauded by the audience.
Face it: bouncers and anti-cheat admins don't have the resources to assess every single case pondering over preponderance of evidence. It would twentyfold the cost of operating a dance club or game server and most customers are not willing not pay for a Constitution-class jury system.
If the choice is having "1 collateral damage for 50 cheaters banned" or "0 collateral damage for 25 cheaters banned" - or a huge increase in paralegal costs for the server admin, I will opt for the collateral damage. War is not fair anyway.