By Marcel Gagné
This article was originally published in the October 2004 issue of Linux Journal
The Game of Security
Note : Images have been scaled down. Click each one to see the full sized version.
Excellent, François, I think you have those viruses on the run. Don't get cocky, mon ami. The horde is already 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 just 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 just 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 that another OS. You know the one I am talking about. After all, this other OS currently dominates the desktop space, so odds are pretty good you've either seen it or (gasp!) even used it. Your employer's office, perhaps? 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 Linux games. That's the feature of our menu today. Call it the lighter side of system security.
Ah, François. You have returned. Please, pour for our guests.
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 (available atwww.xbill.org). Somehow, it just seems like the perfect introduction to this menu. XBill is probably already installed on your computer. The command is simply xbill. If it is not installed, check your distribution CDs before you go looking to download a copy.
The idea is simple. It is your job to save the world's computer networks from an evil hacker known only as Bill, as he tries to load a virus (cleverly disguised as an operating system) onto otherwise healthy computers. Micro clones of the evil hacker 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 shall I say homages instead). One of these creations, Bill Kendrick's Defendguin, pits our hero Tux against evil aliens bent on enslaving, assimilating, then mutating a planet of peaceful penguins into deadly penguinoids. These aliens, who look an awful lot like some guy named Bill, turns these 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'll need the SDL development libraries. Should you choose to go the source route, this is a simple matter of extracting the bundle, typing "make" followed by "sudo make install".
To play the game, run the command, defendguin and prepare yourself for a high-energy, fast-paced shoot-em-up. To get full-screen action, add the "-f option to the command.
François, I notice that a number of glasses need refilling. If you would be so kind. Merci, mon ami.
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 popular applications native to that other OS. Now, your files are in danger and the only thing that stands in their way is you.
To get your copy of Virus Killer, surf on over tohttp://freshmeat.net/redir/viruskiller/49340/url_homepage/virusKiller.php and pick up a copy. Binary and source RPMs as well as source are available from the site. Virus Killer is another SDL game. To compile it, you'll 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, this is a pretty simple install.
tar -xzvf viruskiller-0.9-1.tar.gz
sudo make install
To play the game, just type viruskiller. The program will build its list of files and directories based on your home directory. These will then be the target that the viruses in the game will try to infect or otherwise destroy. Your job is to blast the little monsters before they can do any damage. As the website'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.
This will generate 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 FreedroidRPG. Johannes Prix and Reinhard Prix's FreedroidRPG is a beautiful 3D role playing game with superb graphics, a cool soundtrack and sound effects, and a well developed world. Here's the back story. Sometime, in the not too distant future, a mega-corporation known as Megasoft (or MS) has effectively 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 government and police. As a result, all of humanity was enslaved. Due to some terrible programming error, however, the machines rebelled and took over thus 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'll 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. The only way to play is to get yourself a copy of FreedroidRPG at http://freedroid.sourceforge.net. The download itself is a rather large file coming in at around sixty megabytes for the compressed tarball. This is, after all, an intensely graphical game. (Perhaps a small glass of wine is in order while you wait for the download to finish.) Source packages are available on the site but there are binary packages floating around for various distributions. For instance, I had no trouble finding an RPM package on the Mandrake contribs. 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
su -c "make install"
As with the previous games, you will need the SDL development libraries. If you are going to build the package with OpenGL support, then you also 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 stuck with plain old 2D acceleration. The OpenGL method involves typing freedroidRPG (case matters here). To start in non-OpenGL mode, type the following instead.
When the game first loads, you'll be asked to choose a single or multi-player game and then to load a particular hero or to start with a new one. If this is your first game, you will obviously want to start with a new hero. Type in the name you wish . . . François, for example. When you press Enter, the game will load and the adventure begins. If this is your first game, it's a good idea to read the introductory information scrolling across the screen. You'll learn the story behind the games, what the various keystrokes do, and lots of other useful information. When you have all this down pat (it only takes a few seconds), click anywhere on the screen to begin.
Figure 4, "All ready to head out on the FreedroidRPG adventure."
Using your mouse, you can move around in this 3D world. Click ahead of your hero lunarian and he will follow you. Click on objects to pick them up and right click to activate your current skill or tool (your laser sword,for example). Down on the lower right hand side of the screen, there 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 will bring up a menu from which you can modify various game play options (graphics, sound, performance, etc). By default, game play is full screen but this is one of the settings you can change at this point 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 can now safely quit your in-process game 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 have barely started and it is already 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!