GPL’d VROOM!!! for Linux

programming, python, game development, vroom — January 16, 2007 at 2:06 pm

By popular demand I released a pared down version of VROOM for Linux under the GPL so people can study and modify it. The internet scores part has been stripped out because that would make it way too easy to cheat. I’ve been meaning to enhance it to use a fixed time step as described here. If someone succeeds at this before I get around to it please let me know.

This version includes a new feature. The engine sound revs much more smoothly. I made a couple of tweaks to the SDL_mixer and Pygame code to make this work. I’ll try to cover the details soon.

To run, you’ll need to set an environment variable so Pygame will pick up the new SDL_mixer library:

% tar -xzvf vroomDemo.tar.gz
% cd vroomDemo
% setenv LD_LIBRARY_PATH ./sdl_mixer
% python vroomDemo.py

If the setenv LD_LIBRARY_PATH trick doesn’t solve the “undefined symbol” error, you can try patching, compiling, and installing SDL_mixer. Here are the patch files for SDL_mixer-1.2.4:

For SDL_mixer-1.2.7 you’ll need these:

Enjoy.

VROOM!!!

programming, python, game development, vroom — January 14, 2007 at 9:51 pm


I wrote this game in my spare time in 2003 on a IBM T23 laptop running Linux. I used the Python language because it’s fun, and I wanted to see if it would perform well. It did, especially after enlisting the help of Psyco and Pyrex.

Too often game developers emphasize visuals like texture maps and high polygon count at the expense of gameplay. I took the contrarian approach using the minimalist style of old school vector graphic games to let the gameplay stand on its own.

To approximate the effect of vector graphics I used the antialiased line drawing algorithm found on Hugo Elias’s website. I fixed a minor bug that caused some uneveness to lines arranged head to tail and sent the code to the Pygame folks. Writing this game was much easier thanks to the PyGame library and the library upon which it is built, SDL.

Besides writing the antialiased line functions, challenges included designing code for compiling bi-space partitioning (BSP) trees from an SVG representation of the track, modeling car dynamics with physics routines, and figuring out how to package everything into a windows installer. For kicks I added a mode where you can play the game in 3D using red & blue glasses.

These are actual user comments:

“an addicting game”

“I like the track designs. Physics are very fun, power oversteer at will. Playing in Virtual Boy mode brought back some memories of…what was it… Red Alarm.”

“that game is awesome..but my fingers hurt now.”

“cool game. very addicting…and frustrating at the same time (when i hit a wall)”

“Damn that’s fun!”

“Simplicity at its finest!”

“OK….I’m addicted”

“My eyes burn”

“Most addictive game…evar.”

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License. | The Stoic Monkey