Sunday, November 24, 2019

ideas for battling FPS cheaters

A constant plague on First Person Shooter games is cheaters. In particular, ESP cheats, which allow players to see enemies through walls, and aimhacks, which allow players to auto-aim or auto-headshot enemies.

These cheats make these games very unpleasant to play, because over time a significant fraction, possibly as many as 30% of online players, end up cheating.

I've spent lots of time thinking about how to combat cheaters, and it's a very tough problem. Some have talked about game-streaming as a possible solution, but the latency and latency variability of game-streaming is currently horrible.

Another possibility is some kind of protected execution, but this would require not only support from the operating system, but also potentially support from the GPU, to prevent nefarious hacks from being injected into the process and/or GPU shaders.

Here are two ideas which could be deployed today, to fight FPS cheaters...
  • Aim-Captcha challenge - have the game challenge players with very good aim, with some kind of server-rendered video "aim test". if they can't score a decent level on it, then put the recent games into an aimhack review queue.
  • ESP "ghosts" - Have the game server inject a fairly decent number of "fake", but (mostly) fully occluded players. So ESP hackers are chasing ghosts.
Here is some more detail about each idea... They are published here to be free for all to use.

Aim-Captcha challenge - If a player registers above a certain percentage of headshots and/or hits, when shooting generally towards targets (ignoring random shots into nowhere), after the game is over, give them some kind of captcha-inspired aim-challenge, which is somehow not bottable.. Perhaps by sending a 360VR video, where they have to dispatch targets with reasonable precision. If they don't hit some reasonable precision target, then they're put into a queue for recent game replays to be evaluated for aim-hacking.

This is inspired by how https://play.typeracer.com (an online typing speed test) fights OCR cheaters. On that site, if you score above 100wpm, they give you another typing test which is a fully paragraph of captcha text, asking you to type that fast. This tries to assure a human is reading and doing the typing, isntead of an OCR bot. (I know it seems hard to believe someone would cheat an online typing test with OCR, but if there is a game online, people will cheat)


ESP "ghosts" -  Basically, the game could inject a bunch of noisy fake players, fully occluded by walls, that only ESP hackers would see. Effectively, this would make them chase ghosts. At worst, this would make their ESP unreliable, because they would never know what markers were real enemies, and what markers were fake enemies. At best, an algorithm might be able to determine when players are consistently chasing after fake occluded enemies, and automatically ban them.

Of course it's important that the fake enemies not confuse non-cheating players. So these fake enemies should not make sounds. The only sign of their existance should be the draw commands to the GPU to render a character, and in this respect they should be indistinguishable from real players. It's also important not to give them easily detectable patterns. For example, they shouldn't be in the same exact spots. They shouldn't be exactly stationary.

Perhaps a decent method would be to mark indoor locations that are invisible or nearly invisible from ranges of 10-1000m, and record real player behavior in these locations. In later games, that player behavior could be "replayed" as an ESP ghost.

In order for this technology to work, the game must have some kind of partial visibility from the server. Otherwise the "sudden appearance" of an ESP ghost would be a telltale sign it's not a real player. This could be simply range-based partial visibility, or it could be something more complex.


No comments:

Post a Comment