Friday, September 21, 2007

Dear Open Source Projects...

If you run the main webpage for a piece of open source software, there should be a very clear, concsise explanation of what that software is on the front page, prominently displayed, where anyone can find it. I appreciate that a lot of open source developers like to maintain a development blog on the front page. That's fine. But, there should be something on that page that immediately indicates to a newcomer what on earth she has found. Release notes aren't of much use to someone who has never touched your software before.

Some Good

The first text on the Firefox webpage is:
"The award-winning Web browser is now faster, more secure, and fully customizable to your online life. With Firefox 2, we’ve added powerful new features that make your online experience even better"

That's not great, because it assumes previous exposure to the product, but at least I can figure out what Firefox is, from that sentence. B

The first text on the GIMP website is:
"GIMP is the GNU Image Manipulation Program. It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages."

That's excellent, except it should probably include a link for "GNU," since that assumes knowledge that a naive reader may not have. B+

How about Blender:
"Blender is the free open source 3D content creation suite, available for all major operating systems under the GNU General Public License."

That's great. It concisely explains what the product is, and also links to a FAQ about the GPL specifically tailored to their would-be-users. A.

As for Audacity:
The Free, Cross-Platform Sound Editor
Audacity is free, open source software for recording and editing sounds. It is available for Mac OS X, Microsoft Windows, GNU/Linux, and other operating systems. Learn more about Audacity...

Flawless victory! A+

Some Bad

"Bugzilla is server software designed to help you manage software development."

That's pretty damn vague. Luckily, they follow this up with a "More about..." link. C+

What about jMonkeyEngine:
"jMonkeyEngine 1.0 release candidate 1 has been released."

This means absolutely nothing to a new would-be user. I have to hunt around for a "What is jME?" link to figure out what this software is. D

There is nothing but news, here. There are many links to other areas, but none of them link to an "About," or a "What is..." section. If you look up on the title bar, you will see "Free Raytracing for the masses - Y A F R A Y . O R G." Okay, so it's a raytracer. And it's free. But, is that "free" as in Stallman, "free" as in FreeBSD, "free" as in beer, "free" as in free love, or "free" as in Aretha Franklin? (Freedom is so very complicated, these days.) D-

Let's look at GForge:
"GForge helps you manage the entire development life cycle
GForge has tools to help your team collaborate, like message forums and mailing lists; tools to create and control access to Source Code Management repositories like CVS and Subversion. GForge automatically creates a repository and controls access to it depending on the role settings of the project."

It slices, it dices, it even purees! But, what IS it? Maybe you can figure out what it is from the feature soup (It's a, uh, development lifecycle, uh, manager, uh, thingee, with, um, meta-revision-control management stuff. Or something.). Ah-hah, the title bar says that it's a "Collaborative Development Environment (CDE)." If only that were on the page! But, still, that doesn't quite express what it is very well. It's a software project-focused collaborative development environment, like SourceForge. (In fact, it was built upon a branch of the SourceForge codebase.) C+

"The purpose of this site is to provide a central Xfig repository for the diverse documentation and programs available on the web. All the components and libraries will be available at this site, in addition to Xfig drawings."

So, that's what the website is for. But what about the program? D-

Wednesday, September 12, 2007

The Care and Feeding of Game Designers

We programmers like to think of most game design information as just data. Game design tools are just glorified data entry tools, when it comes down to it. Most of this stuff could be done in a good spreadsheet program. We like to think that as long as you provide all the means they need to put the data in the appropriate places somehow, it hardly matters what the path was like. This is a mistake.

I discovered a few years ago that my writing -- regardless of whether it's fiction or nonfiction -- is drastically better when I type my words than it is when I write them on paper. The reason for this is because I type faster than I write, I can change my words with greater ease, and I am afforded a greater latitude for writing in a non-linear fashion, as it suits me. Ultimately, a text editor in a computer provides a better flow for me than pen-and-paper does. Because of that flow, I am able to produce better work.

Game design is not just data entry. It's a creative process. It's like composing music. If the game designer has to spend a lot of time fighting with a clunky interface, it's going to disrupt her flow. She will produce less work, and it will be of lower quality. This lowers the quality of the resulting game, and reflects poorly on the entire team. We programmers should be providing opportunities for our team-mates to do the best work they possibly can. The tools we provide them should be a delight to use.

Now, if only someone cared that much about the tools I have to use...