Why is it not more common to implement anti-cheat on the server instead of the client? Is that not more secure? Couldn’t the server just check what vision a player should have and not provide any other information to prevent wallhacks or maphacks? Or check how fast it is possible to move to prevent speedhacks? Aimbot is a bit harder to detect I guess but what about the other ones?
Anti-cheats are typically designed so that the user can’t actually modify them at all. They install themselves deep into your system, sometimes literally in the form of a rootkit which basically runs parts of it completely invisibly from your OS, entirely.
The problem is that these measures can be bypassed
https://guidedhacking.com/threads/how-to-bypass-anticheat-start-here-beginners-guide.9882/
But it is complicated enough that most people don’t bother with it.
So is cheating, yet we still have cheaters.
The problem with the server only solution in that they can never detect the source of cheating, only the result of it.
And detecting the result is inaccurate as there are perfectly natural network latency and other issues that can generate the same result as a cheat, as that’s actually how many cheats are discovered and implemented, by noticing that network latency or weird traffic creates an exploitable condition.
You need to run it on the client side to see if the natural circumstances are happening or someone is using tools to cause the circumstances. The first isn’t cheating, the later is.
You can’t detect from the server side what the client side is doing without running anticheat on the client side.
Of course, which is why all cheating has been eradicated forever. Certainly no game with a rootkit anti-cheat has ever had a problem with cheating.