The Secret Police

by Scott Holliday
May 2, 2003

The rise of online gaming brought with it several associated issues. Many tried-and-true concepts in single player games do not carry over very well to community play. Probably the two most telling of these are cheating and game balance. In a single player game, the worst that can happen is that a player completes the game too quickly or too easily. However, in an online environment, players can affect each other's game. Since online games are often hotly competitive, when the playing field becomes unfair, many players will either jump on the bandwagon or simply leave. I'll save balance issues for next time, since that is one of my favorites. This week, I'm going to talk about cheating.

Cheating comes in many forms. The clearest example is when someone alters the game code or databases. Less obvious instances are when a player abuses a bug (or undesired "feature") in the game to achieve the same effect. A related issue is the abuse of the nature of the net  by a player utilizing lag, latency, and disconnects to gain an advantage. The usual solution is to try to build better code. This is the obvious approach, and this will prevent the majority of your problems, however it's also an endless endeavor. Even with nearly perfect code, new cheats will constantly rise to the surface  so what can you do? Well, this column isn't about coding, but how to please your players  which is also an excellent strategy.

Cooperation is the first key. Most players want a fair playing field just as much as you do! Explain this to them. Ask for their help. If players report security holes or bugs that they find, then you've won half the battle. Incentive is helpful here. You want to make sure that the time wasted sending in a report is justly rewarded. If you offer too little, the player may feel like it isn't worth their time, or be tempted to instead keep the bug for themselves. If you offer too much, a different set of problems can arise as players start breaking the client code in the hopes of a reward. I've seen that happen too  it wasn't pretty.

Inspection is the second part. Assuming it is a competitive game, the developers must keep data from each player. Recording each action for every player is an outrageous proposal, but keeping track of their general location/behavior/standing is not. Keeping tabs on the rate of progress for each player will help identify problem cases. Almost all cheats will eventually break the usual rate of progress. This could mean experience, gold, items, or raw achievements  whatever goals players are likely to focus on. A player that is reaping benefits at an enhanced rate (whether they keep them or not) deserves a closer look.

Surveillance is third. Whenever a hole is identified, the next step is NOT to squash it. Fix it later, now is your chance to see who is cheating! Obviously, you can't watch everyone at once, but a computer can  build a secret cheat watcher. If someone trips your trap once, it might have been an accident... or an investigation so that they could report. Players who consistently abuse the system are your problem cases, and this is the way to catch them. In fact, if a bug is found, one strategy may be to let it "leak" to see which players are on your side. Do this once or twice, and players will be a little more cautious about trying out new rumors.

Enforcement is the final step  and an unfortunate necessity. A clear and simple enforcement policy will solve a lot of future problems. Make sure players know how you operate. Tell them how you handle cheating. Especially the fact that you watch security holes before you close them. If players realize that they are possibly being watched and the consequences of NOT cooperating, they will be more likely to report any bugs that they find  if only to exonerate themselves.

I'm probably starting to sound like some sort of secret police, but that IS partly the idea here. Players should know that the system might be watching them at any time  especially when they are using a known cheat. You will not have the time to find and squash each bug by yourself! This is why you must build a community that supports you  so that you can better support them.