this post was submitted on 24 Aug 2023
120 points (94.1% liked)

Linux Gaming

15906 readers
32 users here now

Gaming on the GNU/Linux operating system.

Recommended news sources:

Related chat:

Related Communities:

Please be nice to other members. Anyone not being nice will be banned. Keep it fun, respectful and just be awesome to each other.

founded 4 years ago
MODERATORS
 

Recently, i had to move from nixos to windows against my will simpy because of anti cheats. While i dont game that much, the few games i enjoy playing are all online with some kind of anti cheat. I used to dual boot but i was tired of having to wait for my slow hdd to load windows (i only have one ssd). I literally used linux for everything else but because of anti cheats i am forced to move to windows. I managed to make it a little better by using wsl2 and removing bloatware but it will never be the same as linux

you are viewing a single comment's thread
view the rest of the comments
[–] MJBrune@beehaw.org 1 points 1 year ago* (last edited 1 year ago)

Client-side anti-cheat is the way to go for this. You need to, at some level, trust the client to get good feeling gameplay. Otherwise, you'll end up with the Counter-Strike style missing. Where bullets on the client hit the head, the head shows blood but the target doesn't get damaged. If you don't trust the client, you are going to get pop-tarting where someone jumps over a wall/hill/etc. and shoots, and because the only physics that matters is server side, they are already down under the thing they shot over. There are strong reasons why Six Siege, Valorant, Overwatch, Squad, and almost any modern shooter trust the client but put anti-cheat on it. Server-side checking can only do so much.

Overall what runs on the client is going to be 1 frame behind at least of what runs on the server. Usually far more due to latency. So the only answer is client-side anti-cheat. Now let's talk about the "invasive" part. The only way to securely ensure there are no third-party applications affecting your play is to tie into the kernel and a definitive process list. Otherwise, anyone could just prevent the process list from being accurate. So you then need kernel-level modules to report and secure the client.

There is another method that is rarely enacted. Hysterics, simply if you do too well on a game, you get banned. Have 99% Headshots? Banned. Have higher reaction times than most people? Banned. It's a real big brother solution. That's what you really should be fighting against. Banning people from games without solid proof but just statistical evidence that they shouldn't be that good. This is mainly been the focus on combating those controller automation cheat systems. It also means people who use macros can get banned.

All in all though, if you aren't doing client-side kernel-level anti-cheat then your game at this point is filled with cheaters. It's exactly why Counter-Strike has ESEA and Faceit which both require kernel-level anti-cheat to replace VAC which doesn't have kernel-level hooks and is easily by-passed. Thus CSGO's matchmaking is filled with cheaters where anyone using EAC has a relatively cheater-free game.