Cool as Ice!
Mon Dieu, François! I realize it's a warm day outside, but it is positively freezing in here. Our guests will need coats, in August, no less. What are all these portable air conditioners doing here? Is that frost I see on the windows? François! I shudder—make that shiver—to think what this possibly could be about. Yes, this issue's theme is Cool Projects, but nowhere did it say frozen. And, when our editors said cool, I think they meant it in the sense of “really interesting and exciting”. Never mind. Our guests will be here momentarily, and I don't think they are dressed for this. Quickly, run to Diane's Manteaux de Cuir across the street and beg her to provide us with some coats for tonight. Vite! Our guests are arriving as we speak.
Welcome, everyone, to a very chilly Chez Marcel. Please pardon the cold. My faithful waiter has once again taken a simple idea to its amusing, if somewhat outrageous, extreme. Nevertheless, he will return shortly with warm coats for all. In the meantime, please take your tables and make yourselves comfortable. Ah, François, you have returned with Diane. Thank you, Diane, for your help. While everyone slips into their coats, perhaps François can fetch the wine. There's a case of 2004 Bodegas Muga Reserva from Spain in the lower level of the cellar's east wing.
As François already has set the stage for us, we're going to explore some Linux coolness. The symbol of Linux coolness is, of course, the penguin. Tux, the Linux mascot (designed by Larry Ewing), is a penguin, and penguins show up pretty much everywhere you turn in the Linux world. In fact, you can't go near a Linux system, magazine, T-shirt, mouse pad, coffee mug or book, without running into some kind of penguin. That's okay for most people, because, well, penguins are cute.
Penguins and Linus Torvalds
Responsible for this whole penguin mania is Linus Torvalds, the Linux kernel's creator. When asked what he envisioned for a mascot, Linus replied, “You should be imagining a slightly overweight penguin, sitting down after having gorged itself, and having just burped. It's sitting there with a beatific smile—the world is a good place to be when you have just eaten a few gallons of raw fish and you can feel another burp coming.”
Ah, François, you have returned. Please, pour for our guests. Enjoy the wine, mes amis. This Spanish beauty is very rich, very complex, yet fresh tasting and well balanced. Hmm...make sure you fill my glass as well, François.
The first item on tonight's menu is Matthew Miller's IceBreaker (Figure 1). The premise is similar to events you see every day in the news. A bunch of penguins need to be captured and sent off to Finland. They are all on an iceberg in Antarctica, in an area where global warming hasn't yet started breaking the ice. Penguins, as it turns out, need to travel with ice or they just won't behave. The question becomes, “How much ice?”
Figure 1. In IceBreaker, you must send your penguins packing to Finland with as little ice as possible.
As you can imagine, shipping penguins to Finland is expensive, so the order of the day is small ice chunks. When you left-click on the iceberg, a line is drawn across it, separating the two areas of ice. If a penguin hits the line as it is being drawn, your cut effectively is halted. A right-click changes the direction of the cut from horizontal to vertical (or vice versa). To clear an iceberg and move on, you need to clear at least 80% of the ice. Should you manage the job, another penguin is added and you get to start over on the next level.
The more penguins you add, the more complicated it becomes, as they bounce frantically across the ice field. On the off chance that you find this all too simple, there's a menu of options where you can change the difficulty level. Click MENU on the lower right of the screen, and a pop-up menu appears (Figure 2). Not only can you change the difficulty here, but you also can turn sound effects on or off, check high scores and run the game in full-screen mode.
Figure 2. If the game seems too easy, you can increase the difficulty.
KBounce
A similar game called KBounce exists as part of the KDE games package, minus the cute penguins bouncing around.
Willi Kappler's Snowball (Figure 3) is a classic jump-and-run multiplatform game. It's also an interesting puzzler that requires a lot of thought before you can advance to the next level (of which there are 20). Your job is to find some way to help your penguin (Tux, in one of his many incarnations) release a trapped snowball and roll it into the exit. Along the way, you place (and remove) a limited number of ice blocks, collect gold coins and other treasure, all the while avoiding various dangers, including monsters. Snowball is written in Python, and it's available from www.snowball.retrovertigo.de.
On the right-hand side, a sidebar shows the number of available ice blocks as well as your current score and remaining lives. Using the Action key, you can either place or remove ice blocks. You use these blocks to climb to higher levels and to block the path of monsters. Find a way to release the snowball and guide it to the open doorway. The so-called Action key is, by default, the Enter key—something I found hard to manipulate when I was using cursor keys with the same hand. I switched the Action key to the spacebar instead via the Options menu (Figure 4).
Snowball hasn't been updated in a while, but it's still a lot of fun in its current form and sure to provide a few hours of frozen fun. It would be great if Willi could be convinced to revisit his game or invite another developer to take over. If you want to try modifying Snowball on your own, there's an included level editor.
By now, you may have noticed that cold, snow, ice, penguins and Linux strangely seem to go together very nicely. Another great penguin-themed game, and one you must have a look at, is Ingo Ruhnke's Pingus (Figure 5). This is a game based on the classic Lemmings game (circa 1991), where you assist some friendly little creatures in escaping various dangers. Pingus, however, is much more than a clone. It has become a classic in its own right. Sit back, sip your wine, and relax while I tell you the Pingus story.
The Pingus, mes amis, have been living happily at the South Pole, presumably gorging themselves on fish. In time, their environment started to, er, go south, with the temperatures rising, the ice melting and the food supply getting tight. Rather than look for colder climes, as did other animals, the heroic Pingus decided to embark upon a quest to discover the source of this environmental havoc. You, as the leader of the Pingus, will find yourself commanding hordes of Pingus who must be directed to safety or certain death. To do this, you instruct the Pingus to perform various tasks, which vary depending on the level you are currently playing. You need to think fast and act even more quickly to win each level.
If you feel up to the challenge of saving the Pingus, it's time to get your copy. The latest version of Pingus always is available from the Pingus Web site at pingus.seul.org. Packaged versions of Pingus are included with a number of different distributions, so check your distribution CDs or your usual software repositories. If you can't find it there, you always can pick up the latest package from the Web site.
When you launch Pingus, the main menu offers up four choices. One of these is labeled Story, and this is where you should begin (I will discuss the other choices shortly). Once you decide to embark on the journey, you will arrive at Mogorok Island, also known as Tutorial Island, to begin your training (Figure 6).
On subsequent starts, you will return to Tutorial Island, but you won't jump into the story immediately. The story of the Pingus (of which I've given you a short version) and why these poor penguins are on their perilous quest, is shown automatically only when you first play. If you want to reacquaint yourself with the tale, click the Show story check box at the top left.
At each level, there is an instruction screen providing some explanation of what you are facing and how you might deal with the challenges ahead (Figure 7). This can include digging through the ground or through walls, outfitting your penguins with backpacks to help them fly, turning some into blockers (so the others don't fall to their doom) and more. In some cases, you are forced to transform some of your penguins into bombers. Yes, that's exactly what it sounds like. Sometimes the only way to save the others is to sacrifice a few by making them blow up and, hopefully, blowing holes through whatever stands in the way of the others' safety.
The Tutorial Island I mentioned is a complete game in itself with nearly two-dozen levels. Once you leave Tutorial island, more Pingus action waits for you. Some of that action is easy to find, and some requires a little spelunking. From the intro screen, you can enter Tutorial Island by clicking the Story button. Click Levelsets, however, and a spooky Halloween adventure awaits. So far, neither of these options qualifies as hidden, and this is where the spelunking comes into play.
Each of these games, whether it is Tutorial Island or the Halloween adventure, is considered a level (or rather, a collection of levels). The path to the various levels is usually found in /usr/share/games/pingus/data/levels (if you installed from source, the top-level directory won't be /usr, of course). Under that levels directory, you'll find the tutorial directory where the Tutorial Island levels are located. A couple additional interesting directories are there, including one for your Halloween adventures. Perhaps the most interesting ones are the wip (work in progress) directory and the playable directory. Do an ls in either of those directories, and you'll find a couple hundred other levels—not all of them playable, granted, but still fun to try. To run one of those levels, simply pass the full pathname to the pingus executable, like this:
pingus /usr/share/games/pingus/data/levels/ ↪wip/hellmouth11-grumbel.pingus
Doing the above lets you play the game in the work in progress directory called hellmouth11 (Figure 8). Finally, should you feel so inclined, Pingus has a built-in level editor (that's the other menu option at the start), so you can create your own levels and contribute to the game's development.
Figure 8. Hundreds of additional levels, including the Hellmouth, await you, if you dare to explore.
Pingus is a great game, and it's great fun. The hidden levels offer a treasure trove of weird and wonderful side quests. Take my word for it, you need to check this one out. Besides, the future of the Pingus depends on you!
Ah, mes amis, I can see by the clock on the wall that we are nearly out of time, and there are still many penguins to save. Perhaps a few more minutes will bring us that much closer to getting our chilly friends to their goal. In the meantime, I'm sure we can convince François to refill your glasses one more time while you huddle in your coats. I promise that the next time you arrive, I will make sure that the temperature approaches something more temperate. Raise your glasses, mes amis, and let us all drink to one another's health. A votre santé! Bon appétit!
Resources
Penguin Logos of Every Kind: www.linux.org/info/logos.html
IceBreaker: mattdm.org/icebreaker
Pingus: pingus.seul.org
Snowball: www.snowball.retrovertigo.de
Marcel's Web Site: www.marcelgagne.com
The WFTL-LUG, Marcel's Online Linux User Group: www.wftl-lug.org
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 site at www.marcelgagne.com.