Cooking with Linux

Evil Agents under the Bed and Other Scary Things that Go Boom!

Marcel Gagné

Issue #177, January 2009

If you are finding yourself losing sleep over possible intruders and ne'er-do-wells, it's time to relax and look at the lighter side of security threats.

Open up, François! I've been knocking for the last ten minutes. Quoi? You're afraid? Of what? But, that's ridiculous! Who else would be at the door at this time besides myself? Besides, I told you I was going to Henri's to pick up a case of today's wine. Sadly, the bottle you and I sampled earlier was the last one in the cellar, and I truly wanted to serve it for our guests. None of that explains why you are hiding behind the bar, keeping me outside knocking for ten minutes. Yes, of course, this month's issue is about security, but I still don't know why you are hiding in the dark.

Secret agents? Terrorists? Aside from the fact that none of those things are serious threats in this restaurant, that doesn't explain why all the computers are down. Logic bombs? Mon ami, the only bomb I am worried about at this moment is the one in your head. The Security issue isn't about national security or anything quite that dramatic. Usually, we mean computer security, and although that kind of security is serious, you aren't in imminent danger, and a logic bomb won't make your laptop explode. The battery inside is more likely to do that. Now, get up and get ready for our guests, many of them are already approaching. And, turn those computers back on. We will need them shortly.

Welcome, everyone, to Chez Marcel, where great wine, Linux and free software combine to make a feast like no other. Please sit and make yourselves comfortable. I won't be sending François to the wine cellar, as I brought the wine with me moments ago. Besides, my faithful waiter would likely cower in the darkness tonight. Don't fret, François. Tonight's wine is a 2004 Xanadu Cabernet Sauvignon from Margaret River in Western Australia.

Figure 1. Tonight's wine, direct from Xanadu, where Kubla Khan did his own sampling.

Let's start with something really simple—slime. That's right, green-gooey slime. The game, written by Joey Marshall, is called Slime Bomber, and although it's alpha code and pretty basic, there's a fun element here that oozes you into the whole playing-with-explosives thing. It's also basic Python code and, therefore, open to simple hacking by anybody who might like to build on this theme. And, it's a pretty simple theme. Fly a bomber over various buildings, launch platforms and the occasional tree, and drop slime balls (Figure 2). That's it. Slime the world from overhead using slime bombs. No massive destruction here, just gooey fun.

Figure 2. What could be more fun than sliming buildings?

To play the game, simply extract the tarball into the directory of your choosing, open a terminal window, and from that directory, type the following:

python slimebomber.py

The game relies on the pygame package, so you need that to play. As for play itself, select a difficulty level, an aircraft type and click Play. Use the cursor keys to move your plane around, and press the F key to drop your slime. Given that this is alpha code, you'll be entertained only for so long with this one, so let's move on to something more explosive—slime, after all, doesn't go boom so much as plop.

It's on that gooey note that I move to a rather endearing game called ClanBomber, written by Andreas Hundt and Denis Oliver Kropp. ClanBomber itself is inspired by the hugely popular, not to mention long-running (since 1983) Bomberman game made famous by Nintendo (but originally created by Hudson Soft). Bomberman featured a robot working in a bomb factory, so the story line for ClanBomber is somewhat different, as are the characters: Tux, the BSD Demon and others. Each level features different layouts and obstacles. The bombs you detonate aren't just to get rid of your opponents, but also to open up walls and let you find and collect treasures. Meanwhile, a clock counts down the time left in that level's gameplay.

Figure 3. Plant bombs, move away quickly, collect treasures and blow up your opponents before they get you. ClanBomber is easy.

ClanBomber has several gameplay options, including defining and renaming AI players, turning off some of the players and more. When bombs go off in this game, body parts go flying, which might not make it a great choice for some, but that too is an option. You can reduce the number of corpse parts that get scattered, or you can switch to the friendlier Kidz mode (Figure 4).

Figure 4. ClanBomber's default display of bloodied characters and flying body parts can be reduced or turned off entirely.

Most distributions offer a version of ClanBomber that works with, wait for it, ClanLib. The latest ClanBomber has been redesigned and now works with DirectFB instead. If you do decide to check out ClanBomber2, you may need to build from source. This is your basic extract-and-build five-step, but it does have the prerequisite of DirectFB's FusionSound library.

Nothing says your bombs have to be bombs, per se. As I mentioned with the first game, slime can be fun. So can potato bombs and even tomato bombs. And, both of these fit in well with the theme of a restaurant. Let's start with the potatoes and a great game called Hot Potato. If you have ever played hot potato as a kid, you can probably guess where the computerized Hot Potato is headed.

Here's the premise. It is the future. Major-league sports have given way to a deadly form of the old hot potato game, where up to four players enter an arena and only one comes out. Hot Potato is a network-enabled, multiplayer game (although you can play it against a computer opponent) that is played inside an enclosed space. You race around this arena, along with up to three other players, picking up, tossing around and otherwise trying to get a potato bomb into the hands of the other player, preferably right before it blows up (Figure 5). It's very fast and good for getting your heart racing.

Figure 5. This hot potato is something you really want to get rid of. Holding on too long has explosive consequences.

The potato is a bit like a time bomb in the sense that it has a short fuse and, therefore, offers little time before you need to get rid of it. Hit something with the potato, like another player, and it explodes. Catch a potato thrown at you (by facing the thrower), and the timer resets, providing you with a chance to unload it on somebody else. You either can throw it or leave it where somebody else will run into it. The mouse defines direction, and a left-click tosses the potato.

When the game starts, you can select a local game or choose to connect to another server on the network. Should you decide to start your own server session, enter the lobby where you either can wait for other players to join you or start a match against an AI opponent. The AI also serves as your guide for learning your way around the game.

Hot Potato starts in full-screen mode, but you can override that in the Options screen (Figure 6). There you can switch to windowed mode, turn various sounds (including music) on or off, and define some quick chat responses to use during gameplay. When you don't have time to type, a single keystroke has to do.

Figure 6. Hot Potato's options screen defines screen and sound modes, network ports and some one-key chat messages.

The last item on tonight's menu reminds me of a bad old film from my youth called Attack of the Killer Tomatoes, not so much in the sense that it resembles it in any way, but more because killer tomatoes are generally hard to come by. I Have No Tomatoes, by Mika Halttunen, is a colorful, cheerful (despite the explosions), wonderfully addictive and totally engaging game. Your job, should you choose to accept it, is to smash, or blow up, as many enemy tomatoes as possible (Figure 7).

Figure 7. I Have No Tomatoes is frightfully mesmerizing. Drop bombs, collect jewels and avoid being crushed by other tomatoes.

All this action takes place in a surreal landscape, floating in three-dimensional space. You move around a maze of sorts, dropping bombs, running to escape before the fuse blows. All this to smash other tomatoes—you see, you are a tomato as well. Some levels include teleportation devices to get you out of trouble fast, but for the most part, you just need to keep moving. If other tomatoes touch you, you are done for. At least, until you respawn a few seconds later.

I want to touch on some of the gameplay options, and one of those options requires special considerations, so I'll tackle it first. By default, the game starts with full-screen mode enabled. Should you want to play in windowed mode, you can do that; however, it requires that you manually update the game's configuration file. Here's a partial listing of the ~/.tomatoes/config.cfg file:

video_mode = 800 x 600
video_mode_color_depth = 32
video_mode_fullscreen = 1
sound_enabled = 1
sound_freq = 44100

If you change video_mode_fullscreen to 0 instead of 1, the play runs inside a window. Many changes can be made directly from the game's options screen without the need for editing a configuration file. To do that, simply select Options from the main screen, and you can change many settings, including the very important movement options.

Figure 8. Many of the game's options, including movement, can be set in the Options menu.

Smashing tomatoes creates gems that you collect while traveling the maze. During gameplay, you may win additional “specials” as you collect these gems (Figure 9)—specials that you can bring into play by pressing the right Alt key (also configurable). These specials include lightning bolts, superhero potatoes, tomato traps and other strange and wonderful goodies.

Figure 9. Call up your specials by pressing the Alt key—lightning bolts, potato men, traps and more.

So you see, mes amis, while the news keeps my faithful waiter fearful, we can step back and deal with all this trepidation with a little fun. Remember, no electrons were harmed in the making of these games, and everything is recycled. Exploding tomatoes, potatoes and slime balls won't make the six o'clock news, but they won't keep you awake at night either. Hmm...perhaps that's not the right sentiment. I recall spending many late hours playing games. François, I think this is where you refill our guests' glasses a final time and save me from trying to come up with a better example. Besides, it's closing time. Please, mes amis, raise your glasses and let us all drink to one another's health. A votre santé! Bon appétit!

Marcel Gagné is an award-winning writer living in Waterloo, Ontario. He is the author of the Moving to Linux series of books from Addison-Wesley. Marcel is also a pilot, a past Top-40 disc jockey, writes science fiction and fantasy, and folds a mean Origami T-Rex. He can be reached via e-mail at marcel@marcelgagne.com. You can discover lots of other things (including great Wine links) from his Web sites at www.marcelgagne.com and www.cookingwithlinux.com.