As for computer games, I believe there are two ways to effectively combat any "cheating":
1. Restrict what clients see and do, server-side. Many cheats rely on the fact, client game software internally has much more information that it presents to the player (wallhacks, radars/ESPs, etc), and server trusts client-originating data more than it should (speedhacks, norecoils, spawners, etc).
I know, those're due to attempts to reduce network-induced lags and lowering server loads, but having a more powerful server-side (and have an occasional desync if network lags badly) doesn't sound like an unacceptable trade-off to not have players upset by cheaters.
2. Embrace cheats as features and raise everyone abilities to best cheater's ones. There's no need to, say, have an aimbot if you have an "official" in-game ability to have autoaim.
Maybe then we'll finally have scriptable/hackable games, where one could "legally" automate routine tasks and be on a "good" side. Oh, and that MMO grinding/farming phenomena would finally die for good.