Crossing Platforms

by Marcel Gagné

This column first appeared in the May 2005 issue of Linux Journal.

Careful, François, you're going too fast! You're going to fall in . . . too late. Ah, mon ami, you have lost another life to the deep blue sea. In fact, you have lost all four which means it is my turn. Quoi? But of course. This has everything to do with this month's issue theme which is cross platform. Mais oui, I know we are playing a game but we are also sampling the fare on tonight's menu, mon ami, testing it as part of Chez Marcel's extensive quality control. Still, our guests will be here shortly and I have yet to select a wine.

Qu'est-ce que tu dit? They are already here? My apologies, mes amis, we were somewhat distracted. Welcome to Chez Marcel, where fine wines always accompanies fine Linux fare. Please sit and make yourselves comfortable. François will have your wine in a moment. Quick, François, to the wine cellar. Given the light nature of tonight's menu, we need something that's light and easy-drinking. Bring back the 2001 Modello Italian red. Aller. Vite!

My faithful waiter and I were just looking at examples of a particular type of video game often referred to as platform games. The idea of these games is fairly simple and most tend to be scrolling two dimensional affairs. While moving form level to level, searching for or collecting objects as you go, your player must run, jump, and avoid objects or enemies. To do so invariably involves climbing or jumping across platforms that make it possible to move from one place to another. This type of game has been around for years but continues to be very popular with new ones created all the time. This is also true in the Linux world.

Ah, François, you have returned. Please pour for our guests, then go prepare the Baked Alaska. We will want it very shortly.

Many years ago, when this humble Chef was quite a bit younger, I was totally hooked on a game called Lode Runner. Dave Ashley's excellent Scavenger is similar to this classic game and great fun to play (figure 1). The idea is simple. You run around climbing ladders, shimming across ropes, and run from one platform to another collecting gems while avoiding the bad guys. Depending on what is beneath your feet at the time, you also have the ability to dig holes, either for escape or to trap those enemies.

Figure 1: Scavenger is an excellent homage to the old Lode Runner.

Get your copy of X Scavenger by heading to the Scavenger Web site at http://www.xdr.com/dash/scavenger.html where you'll find the latest source. I have found that many contrib sites also offer pre-compiled binaries of the program, so you may want to look in your favorite distribution's contrib offerings. That said, building Scavenger from source is not difficult. It's a slight variation on our classic extract and build process.

tar -xzvf xscavenger-1.4.4.tgz
cd xscavenger-1.4.4/src
xmkmf
make
su -c "make install"

The command name is scavenger so that is what you will have to run to start it. The game starts in demo mode so you can watch the action and get a feel for how it works. Pressing F1 will start your game at your highest level (if this is the first time, then you start at level 1).

Game controls are on the numeric keypad, though the cursor keys work for moving left, right, and up and down. There are two additional functions and that is for digging, either to the left or right. If you don't like the default key mapping (which is a problem on a notebook keyboard), press Esc (if you are already playing a game), then press the space bar. This will take you to the configuration menu. Now, press F10 to remap your keyboard. I left the cursor keys for movement, but chose the "a" to dig left and the "d" to dig right.

While you are busy remapping your keyboard, you might notice that there are some other interesting options here. For instance, you can choose to demo various levels. Pressing F7 or F8 lets you go up or down levels in the demo mode. Possibly my favorite feature though is the level editor. Just press F3 and you can create your own Scavenger levels, a great way to eat up your time. Yum!

Nothing like a nice, friendly game to get whet your appetite. It is extremely tempting for me to add a smiley somewhere in the that last sentence, partly due to the next platform game I want to tell you about, a game of smileys gone bad. The game is called Blob Wars: Metal Blob Solid, from Parallel Realities, and it's one of the stranger games I've played.

Blob Wars is a rescue the MIAs game with a bizarre twist. All of the characters are smileys, blobs if you will, and your job as Blob Soldier Bob, is to traverse various unfriendly (but occasionally very nice looking) areas looking for other soldiers being held prisoner. Your job is to run your smiley soldier, firing various weapons (make sure you pick up the laser) at your opponents, jumping from platform to platform as you try to complete your mission without being destroyed (see figure 2).

Figure 2: Your job, soldier, is to rescue the MIA blobs. Any questions?

Pre-compiled RPMs and Debs are available from the Parallel Realities Web site as is a source package should you need (or wish) to compile the program yourself. You'll need the various SDL development libraries but otherwise, it's quite simple -- just four steps.

tar -xzvf blobwars-1.02-1.tar.gz
cd blobwars-1.02
make
su -c "make install"

To play, just launch the command, blobwars. When the game starts, you are presented with a menu from which you can start a new game or continue one that is already in progress. The Options menu lets you switch from windowed to full screen mode, adjust the volume of both sound and the music track, as well as the brightness level. You can also decide as to whether you want to have the blood and gore turned on. Yes, as you fire on enemy blobs, they scream and explode into a bloody firework display. Sure it's a little over the top, but the game is great fun. No, really.

You are then presented with a map identifying several locations where MIAs are being held. Each location constitutes a mission. In the course of the rescue operation, a number of useful objects are there for the taking. These could be keys to open doors, laser guns, grenades, or a jet pack (very useful). Sometimes you pick up these objects from fallen enemies. When you find an MIA, just walk over to them and they will be beamed away from the action. As a Star Trek fan from way back, I loved the transporter graphics and sound effects (original series, of course).

After all that action, mes amis, I'm parched and my wine glass appears to be empty as do many of yours. François, if you would be so kind.

Could we possibly do justice to a menu of Linux platform games without including Tux, our favorite mascot. SuperTux is a classic jump and run platform game in the style of, you guessed it, Super Mario Bros. Under Tobias (Tobgle) Glaesser's lead (but originally created by Bill Kendrick), the current Alpha release of SuperTux is totally playable and guaranteed to provide you with hours of fun. Don't let that first alpha milestone fool you. This is a great game and one you absolutely need to check out.

The story goes like this; Tux and Penny (Tux's love interest) are out for a nice date together when Tux gets knocked out and his lovely Penny gets penguinnapped by the evil Nolok. Held prisoner in Nolok's equally evil fortress, Tux must brave all sorts of perils to save his lovely lady. It is your job to help Tux succeed in his quest (figure 3).

Figure 3: Can Tux save his beloved Penny from the evil Nolok?

Binary packages for a variety of distributions and platforms are available at the SuperTux Web site at http://super-tux.sourceforge.net/ so there may be no need to build from source. Should you decide to go that route, building SuperTux is a classic extract and build five step.

tar -xjvf supertux-0.1.2.tar.bz2
cd supertux-0.1.2
./configure
make
su -c "make install"

The game can be played entirely from your cursor keys but joysticks and gamepads are also supported. Start the program by running the supertux command. The program starts with an handful of choices, such as jumping right into the game, loading a couple of bonus levels, or creating your own (a little something for later). You can also set various options like OpenGL support, turn the sound or music on and off, and so on.

The play is fast and fun. Jump over the many enemies to avoid them or jump on top of them to disable them. Be careful with the bomb character -- you can squash him, but he'll explode so get out of there fast. Many objects are at different levels so you'll be climbing or jumping onto platforms to get from one obstacle to another. Collect gold coins as you go. Smash ice blocks with Tux's head to discover power flowers or ice balls that will transform him into SuperTux, a being of enhanced strength and power! When you complete a level, you'll be transported to the next, more complicated level (I'm still on level four as I write this).

Oh, no! Knocked out by that sliding ice block again. I think it's definitely time for a refill, François. Given the theme of this last game, I think your should serve the Baked Alaska now. I see also that closing time is nearly upon us, but have no fear, mes amis. We will keep the doors open and the wine flowing. There is no hurry. Besides, the Baked Alaska needs to be eaten and Penny needs to be saved before François and I can close the restaurant for the night. Therefore, mes amis, let us all drink to one another's health.

A votre santé! Bon appétit!

Resources

Blob Wars
http://www.parallelrealities.co.uk/blobWars.php

Scavenger
http://www.xdr.com/dash/scavenger.html

SuperTux
http://super-tux.sourceforge.net/