Cooking with Linux - Diners, Start Your Processors!

Our Linux chef's favorite racing games range from the unpredictable to the super-realistic. Get ready to burn rubber!

It's true, François, I feel exactly as you do. Although I realize the theme of this issue is high-performance computing, when I think high performance, I think race cars. In a strange way, mon ami, the link is a powerful one. After all, what pushes the boundaries of computing performance like great 3-D simulation? Think of it—high-performance racing driving high-performance computing. One might call that a delicious, perhaps intoxicating relationship, non?

Ah, just in time. Our guests have arrived, François. Welcome, mes amis, to Chez Marcel, home of fine Linux fare, exceptional wines and edge-of-your-seat racing action. Please sit, and make yourselves comfortable. I hope you enjoy the décor today. I had François paint racing stripes on all the tables and chairs in honor of this high-performance computing issue.

François! To the wine cellar, immédiatement! We need something to excite the senses. As I recall from my earlier quality-control tour of the cellar, the 1999 Margaret River Chardonnay from Australia is certainly exciting and has enough spirit to go the distance.

While we wait for François to return with the wine, I should tell you that every item on tonight's menu requires an accelerated 3-D video card and the appropriate XFree86 drivers, including the Mesa 3-D development libraries for compiling. All the systems here in the restaurant are ready, but if you need some information on setting up 3-D acceleration on your home Linux system, see my Linux Journal May 2003 article, “Battles inside the Computer”, for some information on direct rendering and testing your card's performance.

The first car racing simulation I remember wasn't on a computer. It was a simple, electric slot car track. The action on the figure-eight strip of black plastic was exciting. Although it was three dimensional—after all, nothing is 3-D like reality, non? —it was from an overhead viewpoint, a kind of overhead 3-D. That's the spirit behind the first item on tonight's menu, Harry Storbacka's Race.

To get Race up and running (or to get yourself up and running in Race), you can either download the static binary from the Web site or build from source. Both are available from the Race Web site at Obviously, the easiest thing to do is extract the binary package, but should you decide to build it from source, make sure you have the clanlib, xml2 and ode development libraries. After extracting the package, it simply should be a matter of running make as indicated below:

tar -xzvf race-0.9.0-src.tar.gz
cd race-0.9.0

The installation is less than graceful (at least for now). I found that I had to play with the Makefile (specifically to deal with the path to my xml2 libraries), so running the available static binary certainly is much easier. Extract the source (tar -xzvf race-0.9.1-0-static-linux.tar.gz), change to the directory and run ./race-0.9.1-static. The game starts by letting you choose a few settings, including the track. You also can click Continue until the race starts. As I mentioned, the view now is from above. If you are slow on the old gas pedal, the other cars on the track will start pushing on you. The action has a kind of twisted realism to it. As the tires spin, smoke starts to rise from their tires. Press A (think accelerate) to start moving. The cursor keys turn the wheels left and right.

After spinning out on the curves a few times, I was delighted to learn that such small details were remembered in the game. When I came around for my second lap, the skid marks still were on the road. It's a cool effect.

Figure 1. Race's game memory remembers where you skidded out.

The real thrill of racing starts when you get behind the wheel of a car (even virtually), which explains the excitement and attraction of sit-down racers at your favorite arcade. Out there in the Linux world, you'll find a number of simulators of this type. Some are quite mature and professional, but as with the real world, cars and engines are always under development, pushing the envelope as they try to eke out a few extra revs. So it is in the world of open-source development. I'll show you a couple of these now.

One particularly promising entry is Alex Pozgaj's T1 Car Racing Simulation (t1-crs). As of this writing, the game was listed as alpha. It still was a lot of fun, though perhaps not totally playable; nevertheless, it shows great promise. If you would like to take it for a spin (in Alex's Toyata Supra), visit the T1 Web site at Armed with the source, follow these steps:

tar -xzvf t1-crs-0.1.2a.tar.gz
cd t1-crs-0.1.2a