Phantasmal MUD Lib for DGD

Phantasmal Site > DGD > Writing a Library > Which License

What License Should I Use For My Library?

There are a number of different licenses that can be used for a MUD Library, or indeed for any other piece of software. It is worth remembering that several standard licenses (GPL, LGPL) simply don't work the same way for a MUD server that they do for most applications. That's not an exclusion in the license, but rather the fact that the license provides limits on binary distribution. Programs that are rarely or never distributed as a binary, such as MUD servers, get around a lot of the restrictions in licenses like the GPL that specifically restrict binary distribution.

You can find a somewhat impassioned description of licensing and its effects to date on the MUD community here. Disclaimer: I wrote that article. Obviously, I'm biased.

The Phantasmal MUD library would use the GPL if it accomplished the same thing for MUD servers that it did elsewhere. Instead, Phantasmal is simply public domain. Here's the reason for that.

Why Is Licensing Content Hard?

MUDs aren't the only arena where there are some problems separating content from code, and figuring out what license goes where. For instance, a lot of games use art. A GPL'd game doesn't use GPL'd art, because there's not really any such thing as GPL'd art. Instead, the art is usually licensed in some other way, or is treated as part of the source code. But most frequently these days, the art is licensed separately if it's any good.

MUD descriptions, areas, mobiles and even builder scripts are essentially in the same category. They are a work of art, produced in the MUD medium. That means it's in your best interests to be able to license them separately from your MUD. Your MUD's license probably talks mainly about code and executables (binaries), and that's only vaguely applicable to art. Maybe your object scripts are covered, but your descriptions and things really aren't.

However, in some ways, this is all an open issue. It's hard to tell exactly where the legal lines are drawn. Your best bet is to separately license the artistic content and then not give it to anybody without making that license very clear. Distributing it separately from your MUD code is probably a really good idea if they have different licenses.

Derived Works

Under copyright law, if you start from somebody else's work and add your own to it, you've made a derivative work from theirs. That means, essentially, that they have part ownership of what you just made, because you made it from their work too. It's a little like the fact that you can't go draw your own Mickey Mouse cartoon with Pluto and Goofy and then expect Disney to just look the other way. They (reasonably and correctly) believe that the law protects them from you doing that. It means that even if you only put them into, say, 30% of your cartoon, and they don't even take up the whole picture in that 30%, you still can't sell the movie because "most of it is mine, not theirs". Copyright law doesn't work that way.

The thing is, if you were to remove that 30% from your movie, it's still not entirely clear that you fully own it. Because what you've done is to make another derivative work of that first derivative work, the one that you and Disney owned jointly (not that they'd ever let you release it).

Why am I bringing this up? Well, some of you may be familiar with the den of thieves that is the current MUD development community. It's extremely common to see people basically file the serial numbers off somebody's codebase and claim it as their own. The most famous example is Medievia, which has added a tremendous amount of code and functionality, but is still very clearly built on a Diku (Merc) base. Builders like KaVir who have worked on Medievia have confirmed that fact.

When and if you find somebody has stolen your code, please bring up the above facts about derivative works. And if you're thinking of taking "just a couple of functions" from another codebase and you don't plan to obey their license, please remember that you will be using that code illegally, and if you ever plan to make money off it, or even run a public MUD based on it, you can never safely do so. You'll always have to worry about whether, for instance, a rogue builder with a conscience might discover your illegal act and (as KaVir did with Vryce) turn you in and show the community that you're a criminal. And, as in Vryce's case, you will be a criminal, so your counter arguments will all sound really, really stupid and lame.

This happens all the time. Can we please, please stop stealing from each other now?

License Incompatibility

Some licenses don't work together. For instance, if you have code under the Free Software Foundation's GNU Public License, you can't link it into code that uses the Diku license, nor the LPMUD license. Those licenses are incompatible because there is no way to satisfy the legalese of the GPL while simulataneously legally distributing under the Diku or LPMUD license. This is another common MUD community fallacy. Please don't distribute code illegally. Please?

The easiest way to avoid this trap is to sit down and fully read the license for the code you're going to use. Make sure you've read the license and you understand what it means. The Free Software Foundation have several pages that carefully explain each of their licenses, and what those licenses require of you. You should read those if you're going to use an FSF license. Please don't distribute code illegally. No, seriously, I mean you shouldn't. No more distributing illegal code. Why would you do it? You're breaking the law if you do, and anybody who bothers to check can tell that you're doing it. That's just stupid.

Commercial Use

First, go back up and read the 'Derived Works' section again. No, seriously, go do it. Okay, now that you're certain (you are certain, aren't you?) that you have the legal right to use all your code commercially, and you're sure that nowhere in the development process did you use somebody else's code and sweep that fact under the rug, you can begin.

First off, when thinking about whether you'll use your code commercially, and whether you'll let somebody else use your code commercially, make sure you understand the licenses involved. Some licenses, like Diku and LPMUD, prevent it entirely. Please don't use that code illegally.

But let's say you're using something like Phantasmal as your MUDlib, something that doesn't impose any limits on you. Now make sure your server can be used commercially. In Phantasmal's case, that means commercially using DGD, which can be tricky. If you're writing based on Melville, you'll need to get a license through Steve Schmidt, aka MobyDick, the author. Remember that 'Derived Works' thing? It applies to Melville, too, and Steve requires you to get a license to use his work commercially. If you originally started from Melville, you can't legally run your MUD commercially without paying him.

Be aware that if you're running a MUD commercially, you could be liable for much larger legal penalties if you're caught violating somebody's license. That's because at that point, it's effectively considered theft. And they can even tell, with some work, just how much money you stole from the author by not paying him.

If you're releasing your code for possible commercial use, though, have a look at the license for Melville. It's very simple, and boils down to 'you have to get a license to use it.' Or you could go the full-on Phantasmal route and just say 'use it and don't worry about me.' I'm a big fan of that approach, but that's partially because I know how many weenies will steal my code if it's any good, and I never want to have to worry about suing them.