Valve has already implemented an AI which can detect cheaters in CS:GO with near-perfect accuracy.
Valve has 1,700 CPUs working non-stop to bust CS:GO cheaters
if you've played the FPS, you may have noticed a couple years ago that things were beginning to get dramatically better. Not only did Reddit complaints and frustrated replay clips of cheaters seem to circulate less frequently, but the perception of cheating—as hazardous as anything to a competitive game's health—seemed to dissipate. We published stories of high-profile bans, along with news of thousands of cheaters getting banned in single waves. How was Valve purging most of these jerks?
In one of the only in-depth moments of transparency on this topic, Valve programmer John McDonald spoke at the Game Developers Conference last week in San Francisco about how he and Valve used deep learning techniques to address CS:GO's cheating problem. This approach has been so effective that Valve is now using deep learning on "a bunch of problems," from anti-fraud to aspects of Dota 2, and Valve is actively looking for other studios to work with on implementing their deep learning anti-cheat solution in other games on Steam.
To combat the issue, Valve and McDonald looked to deep learning, a solution that had the potential to operate and adapt over time to new cheating techniques—attractive traits to Valve, which has historically elected to automate aspects of Steam rather than hire hundreds of new employees to tackle issues like curation. What Valve created is known as VACnet, a project that represents about a year of work.
VACnet works alongside Overwatch, CS:GO's player-operated replay tool for evaluating players who have been reported for bad behavior. VACnet isn't a new form of VAC, the client and server-side tech that Valve's used for years to identify, say, when someone's running a malicious program alongside a game. VACnet is a new, additional system that uses deep learning to analyze players' in-game behavior, learn what cheats look like, and then spot and ban hackers based on a dynamic criteria.
McDonald says that "subtle" cheats remain difficult to solve, but in building VACnet, Valve decided to target aimbots first because they present themselves at specific, easily-definable points during rounds of CS:GO: when you're shooting. This allowed Valve to build a system that captured the changes in pitch (Y-axis) and yaw (X-axis)—degree measurements in a player's perspective—a half a second before a shot, and a quarter second after. This data, along with other pieces of information like what weapon the player is using, their distance, the result of the shot (hit, miss, headshot?) are the individual 'data particles' that together form what Valve calls "atoms," essentially a data package that describes each shot.
VACnet can't necessarily spot a cheater based on one atom, though. "We need a sequence of them, what we actually want is 140 of them, or at least that's what the model uses right now … We just take the 140 out of an eight round window and we stuff those into the model, and we're like, 'Hey, if you were to present this sequence of 140 shots to a [human] juror, what is the likelihood you would get a conviction?'"
Pretty good, as it turns out. Both players and VACnet report players for judgment in Overwatch. But when VACnet reports a suspected cheater, they're almost always a cheater.
McDonald adds that when VACnet has been recently retrained with player data to spot a new cheat, the conviction rate might be nearly 100 percent for a short period before cheaters adapt to it. When Valve quietly rolled out VACnet to CS:GO's 2v2 competitive mode earlier this month, McDonald says "the conviction rate for that mode was 99 percent for a while, it was great. Cheaters didn't get the memo we were doing it, and players were super happy and we were just busting cheaters left and right. It felt so good."
To bring VACnet to life, a server farm had to be built that could handle CS:GO's millions of players, loads of data, and grow as CS:GO grew. Right now there are about 600,000 5v5 CS:GO matches per day, and to evaluate all players in those matches Valve needed about four minutes of computation, amounting to 2.4 million minutes of CPU effort per day. You need about 1,700 CPUs to do that daily work.
So Valve bought 1,700 CPUs. And 1,700 more, "so we'll have room to expand," McDonald says, hinting at Valve's intention to bring VACnet to other games. Conservatively, Valve had to have spent at least a few million dollars on that hardware: 64 server blades with 54 CPU cores each and 128GB of RAM per blade. That's a drop in the bucket compared to the estimated $120M CS:GO brought in off of game copy sales alone in 2017, but it probably represents one of the beefiest anti-cheating farms built for a single game.