May 12th, 2004


SDLRoads -- project pimpage

Those of you who obsessively check your RSS readers and watch my feed may have noticed the link I recently made to SDLRoads. This project is something that my roomate (Pete) my friend (Paul) and I have been working on.

What started out as a relatively simple graphics project for CS318 has warped into a full scale SourceForge timesuck for the three of us. Whether it be newly created tracks, better collision detection, the ability to play music or some other nifty feature, the three of us have been consistently hacking on the project for a week and a half.

So what is SDLRoads? For those of you too lazy to click the previously mentioned links, "SDLRoads is an SDL and OpenGL implementation of an old DOS game, Skyroads." For those of you who this doesn't mean anything to, Skyroads was an old game where you had to pilot a ship across a series of different level planes, including pits and tunnels, in order to navigate to the end of a level. It's also reminiscent of a more advanced version of "Plane Jump" for those of you who may have played such a game on the calculator back during your school days. Basically, you're a ship, and you've got to get to the end of the level, come hell or high water. Oh, and don't run into things too fast - you'll blow up. The game is really pretty nifty in general, and we're working on making it more so as time goes on. This is one of my first real projects in a compiled language - the last time I coded in a language that required compiling was in high school, when we were working with Borland Turbo C++ compiled in a DOS environment. Clearly, this is a quite different project ;)

SDL is a windowing system that is cross platform. This means that (once we get help from someone on Windows or who can run Visual C and install the SDL libraries) this game should be able to compile and work in the same way on Windows as it does on Linux. This is really cool, as more open source applications running on Windows is one of the things that can help to show Windows users the good that is behind the free software movement. Granted, Linux tends to be the main development platform for most open source projects, but I still think that the more things that you can move between the platforms, the better.

This game has been really fun to work on for a lot of reasons. First of all, it's my first glimpse at learning the current way of doing things graphically in a compiled language. Granted, we're not exactly working with GTK here, but working with OpenGL and SDL has been quite interesting and instructive in the way that modern code works. Second, it's a really addictive game. I wrote all the levels that we currently have (except for one, which was designed to provide beginners a place to start) and I love writing them. It's so fun to play through a level, find the easy parts, and make them more difficult. One other reason, although obviously not the only other reason, is that I've learned about SourceForge and all the features it offers - quite a lot! For any open source project, you can get a full website, project management tools, release storage, database access... You name it, and Sourceforge can do it. Their support staff is helpful and friendly, and took care of an issue of broken code in less than 24 hours, which is better response time from a free support staff anywhere else. LiveJournal support volunteers are enthusiastic, but in the end, problems like this one typically site for weeks, if not months, before they're resolved. Sourceforge is really great, and if I ever do a project of my own, I'll probably use it when the project is small, because it seems really useful and nice.

I've also learned some other things from this project, less directly. I've learned a little bit about the automake and autoconf systems - how they work, and how to work with them. I've also learned about generating SSH keys for servers - so the work in encrypting and decrypting keys can be done locally, which is one less time your password needs to be transmitted over the web. Even encrypted passwords are more passwords than I want flying back and forth, especially since the developer CVS for SF uses SSH to communicate. That's a lot of times I'm going to be typing my password.

Working on SDLRoads has been really fun, and I've learned a lot of nifty stuff about it. If you have a Linux box with a relatively recent video card, you may want to give it a shot. Simply download the development snapshot, ./ , ./configure (if needed) and make.

For those of you who may be interested in developing the project, feel free to join the SF mailing list. Links are available both from the project homepage and from the Sourceforge project page. If you do try it out, and have feedback, feel free to let me know. We're always looking for more people to be hooked on the game ;)