Cooking with Linux

The Game of Security

Marcel Gagné

Issue #126, October 2004

After dealing with the worm and virus traffic that a legacy OS dumps onto your network, you might feel like playing a game to relax.

Excellent, François, I think you have those viruses on the run. Don't get cocky, mon ami. The horde already is dragging away everything in your recipes directory. Shoot, François! Shoot! I know, they just keep on coming, but who said good system security meant you could sit back and watch? This is a war, and those little green guys aren't going to give you a moment's peace. Pay attention now. To the right now—ah, too late. A valiant effort, but now it is my turn.

What am I thinking? Our guests will be here any moment. Prepare the tables and make sure all the computers are up and ready to go. To work, François! Here they come. Welcome, mes amis, to Chez Marcel, where good food, good wine and Linux naturally go hand in hand. Please sit and make yourselves comfortable. We have some exciting software for you to sample today, and speaking of sampling...François, head down to the wine cellar. In the south wing, you'll find a case of 1992 Toscana Vin Santo from Italy. Bring it up for our guests immédiatement!

As you may be aware, mes amis, this month's issue is dedicated to security. We all know that Linux, by design and by its nature, is a far more secure operating system than a common legacy desktop OS. You know the one I am talking about. Odds are pretty good you've either seen it or (gasp!) even used it. Given that other operating system's problems with security (not to mention the extend, embrace and just plain take over philosophy behind it), it's not surprising that this theme tends to show up in a number of games. That's the feature of our menu today—call it the lighter side of system security.

The first game on today's menu is one we've served up before at Chez Marcel, but I just have to mention it again. I'm talking about Brian Wellington and Matias Duarte's XBill (see the on-line Resources section). Somehow, it seems like the perfect introduction to this menu. XBill probably is already installed on your computer. The command is simply xbill. If it is not installed, check your distribution CDs before you download a copy.

The idea is simple. It is your job to save the world's computer networks from an evil virus writer known as Bill, as he tries to load a virus (cleverly disguised as an operating system) onto otherwise healthy computers. Evil clones wander about the play area (Figure 1), stealing operating systems. To stop this from happening, click on the micro-clones using your mouse. Work fast!

Figure 1. XBill: Can you stop Bill?

Once upon a time, there was a rather popular arcade game called Defender, which over time, spawned a huge number of imitators (or homages). One of these creations, Bill Kendrick's Defendguin, pits our hero Tux against evil aliens bent on enslaving, assimilating and mutating a planet of peaceful penguins into deadly penguinoids. These aliens, who look an awful lot like the guy named Bill from XBill, turn the helpless denizens into flying, killing machines. Once a penguin gets transformed into a penguinoid, there is no hope for the poor beast—just blast it. Better yet, blast the alien intruders and get those points up (Figure 2).

Figure 2. Marcel loses yet another ship playing Defendguin.

The Defendguin site provides precompiled binaries for a number of platforms as well as the source code. To build Defendguin, you need the SDL development libraries. Should you choose to go the source route, it is a simple matter of extracting the bundle, typing make and then sudo make install.

To play the game, run the command defendguin and prepare yourself for a high-energy, fast-paced shoot-em-up. For full-screen action, add the -f option to the command.

Most modern offices running that other OS fight a never-ending battle against viruses. Trying to keep all those files and directories safe from dangerous intruders doesn't really sound like a game to those who fight the fight every day. But if you stop to think about it for a moment, you have to admit, it's the perfect inspiration for a game and that game is Stephen Sweeney's Virus Killer. Here's the premise: viruses attack your system through security holes in applications native to that other OS. Now, your files are in danger and the only thing that stands in the way is you.

Get your copy of Virus Killer at the Web site (see Resources). Binary and source RPMs as well as source are available from the site. Virus Killer is another SDL game. To compile it, you need the development libraries for SDL_image, SDL_mixer and SDL_ttf. Make sure you have zziplib and its development library as well. Once the appropriate development libraries are in place, it is a pretty simple install:

tar -xzvf viruskiller-0.9-1.tar.gz
cd viruskiller-0.9-1
make
sudo make install

To play, simply type viruskiller. The program builds its list of files and directories based on your home directory. These then are the targets that the viruses in the game try to infect or otherwise destroy. Your job is to blast the little monsters before they can do any damage. As the Web site's FAQ points out, the viruses in the game do not actually destroy anything—it is only a game. If, however, you feel nervous seeing a little green monster drag away that document you've spent hours working on, try this version of the command: viruskiller +safemode.

This generates a file and directory list based on your system's /tmp directory and should help you feel better about those pesky viruses dragging away important documents.

Figure 3. Shoot all the viruses before they destroy your files in Virus Killer.

The final item on today's menu is a little something called Freedroid RPG. Johannes Prix and Reinhard Prix's Freedroid RPG is a beautiful 3-D role-playing game with superb graphics, a cool soundtrack and sound effects, and a well-developed world. Here's the backstory: sometime, in the not too distant future, a mega-corporation known as Megasoft effectively has taken over the galaxy. They managed to do this by using their vast corporate power to install trojan horses in every computer-equipped machine on the planet, including those of the government and police. As a result, all of humanity was enslaved. Due to some terrible programming error, however, the machines rebelled and took over, making things worse than they already were.

The only hope for mankind now is a cyborg version of Tux, a so-called lunarian. Equipped with high-tech armor, low-tech magic and a laser sword, our hero is ready to take on the machines and bring freedom to the galaxy. Along the way, you battle all sorts of villains and monsters, pick up items, money and weapons and meet up with all sorts of interesting characters. I even ran into a chef named Michelangelo whose favorite oven is down. He apparently needs dilithium crystals.

Can Tux help him repair it? The only way to find out is to play, and the only way to play is to get a copy of Freedroid RPG (see Resources). The download itself is a rather large file, around 60MB for the compressed tarball. This is, after all, an intensely graphical game. Source packages are available on the site, but binary packages are floating around for various distributions. For instance, I had no trouble finding an RPM package for Mandrake. Should you go the source route, building is an easy but slightly modified extract and build five-step:

tar -xjvf freedroidrpg-0.9.12.tar.bz2
cd freedroidrpg-0.9.12
./configure
make
su -c "make install"

As with the previous games, you need the SDL development libraries. If you are going to build the package with OpenGL support, you need those libraries as well. When the build and install is complete, you are ready to go. There are two ways to start up FreedroidRPG and these depend on whether you are running an accelerated OpenGL system or are stuck with plain old 2-D acceleration. The OpenGL method involves typing freedroidRPG (case matters here). To start in non-OpenGL mode, type this instead: freedroidRPG -n.

When the game first loads, you are asked to choose a single or multiplayer game and then to load a particular hero or start with a new one. If this is your first game, you obviously want to start with a new hero. Type in the name you want—François, for example. When you press Enter, the game loads and the adventure begins. If this is your first game, read the introductory information scrolling across the screen to learn the story behind the games, what the various keystrokes do and a lot of other useful information. When you have all this down pat (it takes only a few seconds), click anywhere on the screen to begin.

Figure 4. All ready to head out on the Freedroid RPG adventure.

You can move around using your mouse in this 3-D world. Click ahead of your hero and he follows you. Click on objects to pick them up and right-click to activate your current skill or tool (your laser sword, for example). On the lower right-hand side of the screen are three circles. One brings up your hero's current statistics, another activates his inventory browser and another lets you select skills or tools (displayed in the lower left). At any time during the course of the game, pressing the Esc key brings up a menu from which you can modify various game-play options (graphics, sound, performance and so on). By default, game play is full screen but this is one of the settings you can change under the graphics options menu.

As you play, heed this friendly warning, mes amis. Freedroid (like all of the other games covered here today) is very addictive. You may find that time miraculously vanishes as you play. That's why I'm going to tell you about the save feature. If midway through a game, you need to pause to eat or sleep, press Esc to bring up the in-game menu, then select Save Game. You now can quit your in-process game safely and return to it later by choosing Load Existing Hero at the start of the game.

Mon Dieu, but it happens quickly. It seems we barely have started, and it already is closing time. I see that many of you are a little too wired from fighting the forces of poor security to head home right away. That's fine. My faithful waiter, François, will pour you a final glass of wine. Perhaps in the time that you have left, you might take another opportunity to make the world safe from viruses, worms, evil corporations and other unsavory security risks. Until next time, mes amis, let us all drink to one another's health. A votre santé Bon appétit!

Resources for this article: /article/7685.

Marcel Gagné (mggagne@salmar.com) lives in Mississauga, Ontario. He is the author of the all new Moving to the Linux Business Desktop (ISBN 0-131-42192-1), his third book from Addison-Wesley. In real life, he is president of Salmar Consulting Inc., a systems integration and network consulting firm. He is also a pilot, writes science fiction and fantasy, and folds a mean origami T-Rex.