Online gaming is big business and has been growing in recent years. This phenomenon has created lots of publicity about people cheating at these games. Some industry figures have even said that it is impossible to eliminate this cheating. Is it possible to cheat? Can it be stopped? This article examines how cheating in games works (and what can be done to prevent it).
Computers Playing Games
It is very easy for a computer to win some games. As a child, I wrote a version of the arcade classic Pong. In this game, each player controls a paddle along one end of the screen. A ball bounces from side to side, and players are required to place their paddles to catch the ball before it goes off the edge of the screen. In effect, it is a two-dimensional game of tennis.
Although the two-player game was lots of fun, I decided it would also be a good idea to allow people to play against the computer. Writing a computer player that plays this game perfectly is trivial: Simply work out where the ball will intersect the edge of the screen and place the paddle there. Playing against a perfect player, however, is not much fun, so I made the computer randomly make the wrong decision a user-configurable percentage of the time.
The game in this state was fun. There was no way that a player could cheat. Now, imagine this game played over a network. A set of simple client commands would be available—move left and move right would be enough—and the server would update the ball position and direction for the client after each collision. It would be relatively easy for someone to reverse-engineer the command set and connect a perfect computer player to the network instead of their client.
This problem is even more acute for open source game developers—they provide potential cheaters with the network protocol documented in the form of source code.
This simple example illustrates how a computer can play a game better than a human. The same is true of a many modern games. Consider the first-person shooter game. Most of these games now allocate damage based on hit locations, with shots to the head doing more damage than those to the foot, for example. An AI player capable of examining the entity location data provided by the server can always hit the head of an enemy. It can always turn to detect an enemy quickly and it can always avoid any projectile it can move fast enough to dodge because its reaction speed is infinite.
Any networked game, therefore, in which a computer player has an advantage is one in which cheating is relatively easy. A recent case in Japan revolved around a player who had been cheating in a massive multiplayer online role-playing game (MMORG) by using a helper that allowed him to click faster. Apparently, the amount of damage done was related to the speed of clicking, something that made it immediately apparent that the game was advantageous for the computer players.