id Software will go down in history as the company that published the first three-dimensional shooting game for PCs. You probably haven't heard of Hovertank 3D - I certainly hadn't - but its successors are legendary: Quake and Doom. Quake, which you could play over the Internet, had a particularly loyal fan base. For them, apparently, nothing was more fun than crawling around a sewerage system using a flame-thrower to shoot at friends dressed up as bogey-men - virtually, that is.
The man behind these games, John Carmack, decided to give all Quake fans a special gift for Christmas 1999. He used an Open Source licence to publish the source code for Quake 1 on the Internet. This was no great sacrifice: the sales of the game had already dwindled to next to nothing, and id Software was selling several new games, fancier than the first, among them Quake 2 and Quake 3, and their code was not made public.
However, soon after the happy surprise, chaos reigned in the world of Quake. The publication of the source code had led to cheating in multiplayer Internet games! Skilful programmers made changes in their own Quake, enabling their characters to automatically dodge all bullets coming their way.1 Or they programmed their character to aim at and shoot all enemies as soon as they appeared - and to do so at lightning speed. Another good scam was to program all walls in the game to be transparent, which allowed the player to see enemies hiding around corners, while the enemies played the game in a version with solid walls.
Although the programming of such X-ray vision and automatic ducking can be an interesting challenge in itself - a challenge programmers could compete in, actually - many Quake players were irritated by the cheating versions of the game. It's not much fun playing against someone who is impossible to hit and who can see through walls.
Eric Raymond, always keen to promote the Open Source idea, hurried to publish an essay on this fascinating problem. He suggested that it was yet another example of how easy it was for closed programs to go for solutions that aren't really safe and which can't take open scrutiny. He argued that if Quake had been created in an open model from the start, such problems would have been dealt with at an early stage and therefore avoided.
In this, however, Eric was wrong! The problems with Quake had nothing to do with its creators sitting in their closed world and choosing shortcuts that compromised security. In fact, you couldn't cheat by giving yourself an unending supply of weapons and ammunition, for instance, because such things had been made impossible at the designing stage of the game. The nature of all the methods of cheating (except the X-ray vision) was that the player had used his own computer as an aid to play better, be it for better aim or something else. This way of cheating could theoretically have been realized earlier, without access to the source code, but publication of the code made it a lot easier and perhaps also more fun.
Actually, the problem highlighted by the cheating in Quake had been realized earlier elsewhere. Playing postal chess had long ago been ruined by chess computer games. The mere suspicion that your opponent might be using the help of a computer was enough to spoil the fun. This is why postal chess is so rare today.
Learning more about the nature of, and reasons for, the cheating also led to the understanding that this was a problem particular to games. In real life we use computers to help us with difficult tasks; that's the whole point of having one. In the military, computers are used to improve aim - just as those who cheated in Quake had done - and nobody thinks that's unfair. Or if we go for a more peaceful example, nobody would accuse me of cheating when I use a computer program to find the cheapest of whatever I want to buy from all that is offered on eBay. That is precisely what computers were invented to do!
But the world of games is different. The idea of a game is that everybody plays it by the same rules, without supplementary technical aids. If I wanted to travel a distance of 26 miles (42 km) as quickly as possible, I'd go by car, or perhaps by helicopter. But if it's a marathon race, it would obviously be cheating to go by car.
Not only would it be cheating, it would be boring. And that's what the Quake players concluded. Cheating is boring. It takes all the excitement out of the game. One player got it right when he said: "I play Quake like I play any other game. Only with friends - who don't cheat.'
Verdict: The story of cheaters in Quake is interesting because the Open Source model creates problems that would never arise with a closed program. However, the problem is limited to Internet gaming, or perhaps rather to "remote game playing', such as postal chess. In the "real world' the Open Source model still seems to lead to better security. Finally, it has to be said that there are a lot of multiplayer Internet games with accessible source code, just as there are probably still those who play postal chess.2
From the above it is clear that opening up the source code of a program that has been developed in closed circumstances isn't as rosy a prospect as might be supposed. The code in many closed programs is often so abysmal it doesn't bear exposure. There are often horrible skeletons in the closet. In the case of Quake, the Open Source model led to totally unexpected problems, a situation nobody foresaw.
These stories throw new light on the demands to open up the source code of Windows, for instance. Who knows what skeletons you might find there? In the monopoly trial, Microsoft defended itself against demands to open up the code by saying that it would constitute a threat to US national security to publicize it. The Open Source people laughed to hear Microsoft say this. "That's what we've been saying all along, that a buggy Windows is a threat to the security of us all!' But having learnt from the stories of Mozilla, Firebird, and Quake, it is right to take the Microsoft claim seriously. In short, security concerns suggest it would be best not to use closed programs, but now that we are using them it's probably better to keep them closed.3 Mozilla, InterBase, and Quake each represent a slightly different philosophy about why it was worth making the code public.
The managers at Netscape decided to open up the source code for Mozilla as a sort of defence. As an Open Source project Mozilla has achieved what Netscape couldn't make happen with a closed program. Even Microsoft couldn't crush the open code. The code was opened at the last minute, however; Mozilla was saved, but for Netscape the company it was too late.
In the case of InterBase, it was the clients using the product who were looking for shelter. The decision to stop developing a closed program is always a threat to its users. Whereas, users of open programs are free of such threats.
With Quake, it wasn't about anyone protecting themselves, but rather more of a cultural achievement. Since Quake, many other games have been "set free'. Their source codes give the fans pleasure, even though the financial heyday of the game was over long ago. Many games can be ported to new platforms, for instance, if the source code is available. Old Windows games are finding new life on Linux machines, or you can play an old Commodore 64 game on Windows. So, Open Source is also about preserving our heritage!
- 1I can't help thinking that the Matrix scriptwriters must have played this version of Quake!
- 2One of the most popular Open Source shooting games is BZFlag which can be played on Windows, Mac and Linux as well as other variations of Unix. https://BZFlag.org/
- 3On February 12, 2004 a large portion of the Windows source code leaked on to the Internet due to security problems at a Microsoft partner (https://slashdot.org/articles/04/02/13/165231.shtml). We are therefore facing the worst possible situation vis-Ã -vis Windows: it has been developed as a closed program, which means it has more inherent security risks than for instance Linux. The code has leaked into the public domain, which means crackers have an easy time looking for the flaws. At the same time, programmers who might be able to help Microsoft find the problems and fix them cannot do so because it is illegal to be in possession of the code. Microsoft is therefore threatened by all the dangers associated with a sudden publication of closed code without being able to take advantage of the positive aspects of the Open Source process.