this post was submitted on 24 Aug 2023
122 points (94.2% liked)
Linux Gaming
15842 readers
18 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
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Anti-cheat as a concept is fine but invasive client-side anti cheat just aren't it.
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.