Free Glk

Glk is free. Well, pretty much.

(Now you're all worried.)

I like freeware. I think tools which make computers easier to use should be free, because the more comfortable computers are, the more people will use them. Then everyone benefits, even people who sell commercial software.

I want Glk to be free, but Glk is both a standard and several pieces of software, so I have to be more specific.

The API Specification

The specification is described by a document. (See the index page for various forms of this document -- text, HTML, PDF.) The copyright on that document belongs to the Interactive Fiction Technology Foundation. It's licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. This means you can read the document, copy it, distribute it, and create derivative works, but you can't sell it. You must keep IFTF's name attached.

By my own declaration, I retain full control over the Glk interface itself. Glk is what I say it is. There's no committee in ANSI or any corporate entity. Of course, I want to make Glk as useful as it can be, so I listen to what people want and incorporate suggestions.

Now, one can't copyright an idea, so I don't have any legal control over the Glk interface. You could change it somehow, write your own document describing your version, and start promulgating programs and libraries that used it. But it would be polite of you to call your version something different. It would reduce confusion, and since there's no economic or marketing voltage in Glk right now, there's no reason for you to swipe my name (or IFTF's name).

Maybe someday Glk will be as big as Perl or Linux; and then I'll start worrying about trademarks and other legal hassles. For now, I'll trust that I'm too small for anyone to harass.

Note, spring 2020: I have transferred the copyright of the Glk spec to IFTF, as noted above. Previously the copyright belonged to me. It still has the same Creative Commons license as before.

The Glk Libraries

Since the Glk specification is publically available, anyone can write a Glk library. I hope you do. You naturally retain the copyright on any software you write; you could make your library commercial, or use the GPL, or public domain, or use any other license you wanted to.

But if you write a Glk library, I encourage you to make it free software of some kind. That way, it will be most useful to other programmers who want to use Glk to create portable programs. They too may want to write free software or shareware or commercial software, and if your library has a restrictive license, it will be hard for them to do that.

The Glk libraries I've written (CheapGlk, GlkTerm, RemGlk) are distributed under the MIT license.

(Some people prefer the GNU LGPL, which is somewhat more restrictive (in ways which are supposed to support free software.) I don't think the gains are worth the additional complexity.)

Note, late 2016: All the supported libraries have been migrated to the MIT license. Previous versions (and XGlk and MacGlk, which are no longer updated) used the following ad-hoc license:

The source code in this package is copyright (dates) by Andrew Plotkin. You may copy and distribute it freely, by any means and under any conditions, as long as the code and documentation is not changed. You may also incorporate this code into your own program and distribute that, or modify this code and use and distribute the modified version, as long as you retain a notice in your program or documentation which mentions my name and the URL shown above.

What If Someone Tries To Make Glk Commercial?

Nobody can copyright the Glk API, because an idea can't be copyrighted. I'm not going to patent it, and nobody else can patent it because I've already published it. Someone could trademark the word "Glk", but then we could decide he was an asshole, change the name we use, and keep working (at the cost of some confusion.)

Someone could make a commercial version of the MacGlk or GlkTerm libraries, since I use a very nonrestrictive copyright statement (see above.) However, he would have to retain a pointer to the Glk web site, which will always contain free versions of those libraries. So he could not interfere with the ability of authors to release programs that use the Glk API, nor make free Glk libraries less useful.

The only serious threat to free Glk would be if someone made a commercial Glk library with so many extra features that authors didn't want to use anything else. (This, in my opinion, is what's happened to HTML and free web browsers.) This is of course entirely hypothetical -- Glk isn't important enough (yet) to steal. But if it was a risk, the best defense would be for people to support and update the free Glk libraries as much as possible.

(Of course, there's no problem with making a commercial game that uses the Glk API or libraries. The open-source license permits that. The problems I'm discussing are someone trying to extract rents from game designers for the use of the Glk tools.)

What If I Try To Make Glk Commercial?

Well, I promise I won't. That is, I promise to keep Glk as a published standard, as useful as possible to authors who want to make software with it (whether they want to make freeware, shareware, or commercial software.)

If I am possessed by an evil demon, and start writing only commercial Glk libraries, the latest versions of the free libraries will still be out there. People will still be able to copy and use them. And people could still write and use their own libraries, under GPL or whatever. I could make the specification document disappear, and then nobody could legally get a new copy of it, but someone could volunteer to write a new document.

In short, Glk is as free as it's going to get without an army of lawyers to defend it.


Last updated April 7, 2020.

Glk Page

Zarfhome (map)