Wednesday, December 27, 2006

How can it be bad for mod developers to keep their coding ideas secret

How can it be bad for mod developers to keep their coding ideas secret, when the games they modify are developed the same way? Well, let’s take a look at Unreal Tournament.

Let’s say that the full development source code to the game on their web-site while they were developing it. Well, Joe Bob’s Games could come along, and download it. Now, Joe Bob is a very talented developer. He makes some changes to the code, adds a few features, improves the graphics a bit, ports it to the TI-86 calculator, and so on. He then sends his changes over to Epic, who think it’s all pretty nifty (except the TI-86 part, despite how impressive it is), and they then add those changes to their own codebase. Hey, great, they just got free development work! Cool! And then, two weeks before Unreal Tournament goes gold, Joe Bob’s Games releases their Futuristic Tournament Game with a Name a Lot Dumber Than Epic’s, But Really Good Game Play None-The-Less! Well, everyone buys that, knowing it’s basically the same as Unreal Tournament (and thus don’t buy UT), and Epic loses a few digits in their bank account.

OK, so now let’s say Epic expected this. Their source code on their site had an attached license that any application containing the code, or a part thereof, could not be distributed for profit. So, Joe Bob does the aforementioned code improvements, sends them to Epic, etc. Then Joe Bob releases his version of the game for free to download from the Internet. Now Epic really loses money, since just about everyone who possibly can will just download the game.

The whole issue is cash flow. Epic is in competition for sales, as they need a profit. Considering that the PC market is only 15% (rough estimation) of the total video game market (and considering that it will be a while before the PS2, X-Box, Indrema, and other console ports are released), Epic needs to sell as many copies of Unreal Tournament as possible to make it worth their while, and cover their costs.

Mod developers are faced with a different situation. Mod developers aren’t making a profit off of their mod. They release their mods for free! What advantage do they gain from keeping their mod closed source? None! Keeping a mod closed source, and the development secreted away among the Chosen Few helps no one. If anything, it’s hurting the Chosen Few!

Now what if a mod was developed open source? Take my current favorite mod for Unreal Tournament, “MatrixMoves”, and pretend it was developed in the open source model. Let’s say the author of MatrixMoves opened an account at Source Forge, and created the MatrixMoves project. He developed his basic code, and uploaded it to the CVS server. Now, here Joe Bob comes along, and downloads the latest copy of the MatrixMoves code. He adds a new feature - maybe a way to do side flips off of walls, and perhaps some judo moves - and sends a patch to the MatrixMoves mailing list. The developers incorporate the patch, and decide to make Joe Bob an official developer, since he’s so cool. Now Derek from Australia checks out the code, fixes some bugs Joe Bob accidently introduced, and even a bug from the original code. He send those in to the development team. Then a hard-core Unreal Tournament player grabs the code, builds the mod, and loses touch of reality (It is called Unreal, you know) for the next 36 hours.

Now, wasn’t that nifty? MatrixMoves was improved in a way the original author hadn’t thought of (as far as the example goes). Bugs that none of the developers had noticed, or bugs they had been unable to locate, were fixed by an intrepid programmer they didn’t even know existed. One poor soul lost his girlfriend because he had access to the latest and greatest MatrixMoves, even though it wasn’t ready for a full release yet. And what did MatrixMoves lose by being Open Source? Well, if you can think of anything, you deserve a medal, since I certainly can’t. (Note: No, I don’t really have a medal sitting around to give away. It doesn’t really matter, though, because you’re not going to find a reason to win it.)

So why are so many mods developed closed source?

# Perhaps the developers are afraid that their “secrets” will be stolen, and someone will make a similar mod, an evil that never happens now. I mean, there’s only one class-based mod, right? And only one weapons pack mod... Certainly there is only one mod relating to the Matrix.
# Perhaps the mod developers are fond of the closed source model, and believe open source leads to bugs and low security. Yes, I’m making fun of some certain groups out there - sorry, Micro$oft.
# Maybe mod developers don’t think the average developer could be trusted to make quality contributions to their mod unless they made a blood oath to join the development team.
# More than likely, however, most mod developments are unaware of the open source development model, or hadn’t thought of applying the model to mod development. I had worked on a game, called War of the Runes, for two years, always keeping the source secret, because I simply didn’t know there was an alternative; just like I didn’t know there was any OS besides Microsoft Windows. (Yes, I’ve ascended to Linux now.)

So, here’s an idea: Why not open up the mods out there? Why not see what will happen? I see lots of things happening. I see mods hosted on Source Forge, developed by dozens of programmers, artists, and musicians, each with something unique and special to add that none of the others had ever thought of. I see derivatives of some of the popular mods, like Rocket Arena, that fly off in a whole new direction, leading to perhaps Nuclear Missile Arena. (Well, that’s not necessarily a whole new direction, but definitely something different.) I see newbie UnrealScript programmers looking through the code of nifty mods, such as DarkMagic, learning the ways of the master programmer, helping them be better than they could have ever been before.

No, not one of those funky, morphine induced dreams you have in the recovery ward of the hospitable after surgery. (Even though those are really fun! No, really!) My Dream is that the mod community can see the light of open source, and by doing so allowing mod development to go where mod development has never gone before. OK, that all sounds kind of corny. My point is, open source development allows developers to interact in ways that they can’t in a closed-source environment. Developers get so much more out of their work when they have the experience of hundreds or thousands of other developers to draw upon. You get the idea, I’m sure. Come on, mod developers - why not take a step into the new path of software (and mod) development?