24 Jul 2000 drivers   » (Apprentice)

Hello world. This is my first diary entry on Advogato. As you might expect, I learned what Advogato is about from the infamous Salon article. I am an advocate of Free Software, but I have not yet really contributed to the movement (reading Slashdot all day doesn't count). I decided to get an account on Advogato because I want to start contributing, and I figure writing diary entries here documenting my progress would be a good motivator.

My interest is programming games, and all the interesting fields that are used in game programming. I couldn't get a job as a game programmer (you have to have published games to get into the industry; go figure). Even in my current job, I do not really do any programming. I want to be a software engineer, but judging from the want ads I need three years of programming COM (for instance) on Windows to get a job. (Interesting how putting your excuses into words makes it easy to see how thin they are.) The reason I mention all that is I suffer from frustrated programmer syndrome, and this is also a strong reason I want to get involved in free software development.

I have been keeping an eye on the development of a project called ClanLib. ClanLib is a cross-platform Game Development Kit. It is written in C++ and is designed to be used by C++ programs. It might sound similar to SDL, but I think SDL is more suited for porting existing programs to Linux, and is intentionally much lower-level (the S stands for "Simple" after all). ClanLib is supposed to provide a lot of the services you would use in any game, and if you program everything through the ClanLib API, you can compile the same program on Windows and Linux (and purportedly BeOS but I haven't tried that). Under Windows, it uses DirectX to accomplish its services, and under Linux it can use several graphics targets. It also handles a lot more than the graphics, and seems to be very modular in terms of adding new display targets or API features, which I won't go into since you can just look at the web page.

A combination of looking at the sources of ClanLib, trying to follow the design discussions on the listserv, and trying to create my own game using ClanLib led me to a long side diversion of trying supplement my knowledge with books. The C++ I learned was from 1991, and a lot has changed since then that I needed to know if I was going to contribute, such as Design Patterns, Standard Template Library, and so on. Not only that, but how to design and architect a game. Right now I am reading Stroustrup's tome, as well as Game Architecture and Design by Andrew Rollings and Dave Morris, which I highly recommend.

I think ClanLib has a lot of potential, but I don't see many people using it. I see people starting new projects using SDL instead of ClanLib, and I think part of that is that the tutorials and documentation are very poor right now. I think enhancing the documentation and reading through the code may be beneficial, and I think I could try submitting a patch to clean some things up in the source... I've looked at the source and it seems pretty rough; I'm sure it could use some improvement from me. :)

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!