[QUOTE=Kendle;416635]The server sends game world updates to each client periodically (many times a second usually). The client uses this information to draw other players on your screen, so you know where they are, what team they’re on, what gun they’re holding etc., and to ensure a smooth experience for you the client extrapolates (i.e. “fills in”) any gaps in it’s data so it appears to you everything’s happening in real time.
For example, the server might tell the client that at timestamp 1 player A was at X:Y:Z, and at timestamp 2 player A was at X+2:Y+3:Z-1 etc., the client then plays an animation appropriate to player A moving between these 2 co-ordinates.
I guess cheat software on the client PC could use this information to calculate approximate targeting / accuracy statistics for other players, however it would still only be an approximation, it wouldn’t “know”, and what’s more I doubt the data received from the server is specific enough to be relied on for anti-cheat purposes.[/QUOTE]
In ET it was possible to record the hole match - ETTV, and spec afterwards each player. So I suppose all movement is recorded by server.
Client side its not possible to detect cheats for sure. There are ways to bypass any anticheat running on the client. So the anticheat should run on the server. Now you cannot detect software on the client by the server, but you can analyze every player action.
http://libra.msra.cn/Publication/2947183/detecting-cheaters-for-multiplayer-games-theory-design-and-implementation-1
The methodology is based on the dynamic Bayesian network approach. The detection framework relies solely on the game states and runs in the game server only. Therefore it is invulnerable to hacks and it is a much more deployable solution. To demonstrate the effectiveness of the propose method, we implement a prototype multiplayer game system and to detect whether a player is using the “aiming robot” for cheating or not. Experiments show that not only we can effectively detect cheaters, but the false positive rate is extremely low.