sailchip.cc | Atom feed

FPS games will stay alive and well

2021-07-20

There have been predictions of doom and gloom lately about a new breed of aimbot. In the battle between cheats and anti-cheat, it in many ways looks like a decisive victory for cheats.

The new aimbot can do all its work on a separate machine, using a capture card to see what’s going on, a machine learning setup to identify targets, and a device that appears as a mouse to the computer running the game to apply aim corrections. Since it doesn’t need anything special on the computer running the game, it’s almost entirely invisible to today’s anti-cheat.

A new anti-cheat strategy

If the goal is simply to keep anyone from cheating, the situation really is bleak. Anti-cheat has next to nothing to go on here except for the inputs the game is given, and those inputs could become increasingly indistinguishable from those of a world-class player.

If the goal is to keep the game fun for non-cheaters, all we need is players’ inputs and things look much better:

A gameplay example

Let’s say you’re in a defensive but somewhat predictable position in a first-person shooter, in a large room watching a doorway that you expect an enemy will come through in a moment. This enemy knows you’re in the room, and may or may not be using an aimbot. This enemy has some peeker’s advantage over you, but since you know exactly where they’ll be your only delay is your reaction time to click.

Here are a few scenarios:

Taking care of just the last case leaves plenty of moral and technical ambiguity, but is enough to keep the experience fun and reasonably level.

Tactics for ambiguous players

Banning the most egregious cheats should go a long way, but we can do better without collecting better data. If a player is suspicious but not bannable, there are still options.

Doing a bit of matchmaking on more than one axis might help at lower ranks, but would have to be arranged carefully to not feel like punishment. We have to assume that more players than usual will have excellent aim via more moderately-tuned aimbots, and that we can’t separate those players from those who naturally aim that well. Players with weaker aim and stronger other skills and those with stronger aim who are weaker elsewhere may average out to similar skill levels, but both might still prefer to play against skillsets more similar to their own if the game is balanced with this somewhat in mind. What’s critical is that any separation along these lines doesn’t just turn into a cheat containment zone; someone with legitimately strong aim should find themselves in good company, not outmatched.

Another possibility is to artificially delay the damage a suspicious player deals by a few milliseconds, but this sounds tricky to balance. It could feel subtle compared to netcode issues. It may only make sense to apply this at lower overall skill levels where expectations are lower and the counterplay against excess aim skill is presumably weaker.

Input latency

Large variance in input-to-display latency between players makes a mess of this.

Say the typical player has 5 frames of latency and gets 80 fps for 62.5 milliseconds of latency, but someone who tunes the game carefully can get 4 frames of latency and 300 fps for a mere 13.3 milliseconds of latency. That 49-millisecond difference not only distorts natural skill but also is free ground for aimbots to undetectably claim.

Knowing client performance would at least make anti-aimbot tuning a bit easier, but it’s usually very tough to do in a tamper-resistant way, and you’ll still have aimbotters doing the performance tuning to give themselves more of an advantage.

Trying to raise the minimum latency annoys people (rightly) and doesn’t even work that well. Say you start from the above scenario and add a hard cap at 144 fps; the 49-millisecond difference only drops to 35 milliseconds.

There’s only one good fix: competitive games need to have lower latency on typical settings and hardware. I’d like to see 30 to 40 milliseconds as a baseline. On a game that regularly goes over 80 milliseconds, this anti-aimbot strategy may barely work.