i'm a proponent of server-side anticheat, but there is a few reasons games do it client side.
- server-side anticheats depend on heuristics and "checks" determining if a player is doing something "impossible".
- one example would be checking if the player somehow has perfect accuracy on every player before even shooting, or if the player moves further than is possible in a given timespan (these are very simple examples).
- this is MUCH more difficult to make accurate, since these checks are fallible to network conditions or other hiccups.
- most online games opt for client-side anticheat since it lets the devs just "trust the client" easier. it can also detect things that would be impossible server-side, like X-ray (seeing other players through walls. this is impossible to detect server side).