Glk: An Interface Standard for Interactive Fiction

[GLK]


Introduction

Here's where I talk about what Glk is, why Glk is, and what it's good for. Unfortunately I haven't actually written this bit yet. Until I do, please refer to chapter zero of the specification document, which explains all the basic ideas.

I do, however, have a glowing testimonial.

Glk is a free standard. Here's what I mean by this.


Specification

This is the Glk API Specification, version 0.7.0.

And, just as important,

Liberation

If you're going to run a Glk program, you need a Glk library which runs on your machine.

The official and up-to-date archive of Glk libraries is on the IF Archive, under if-archive/programming/glk/implementations. Here is a list of some of them, but it's not a complete list and it is not immune to falling out of date:


Association

These are source files that come with the Glk API, although they're not actually part of it. If you're writing a Glk library, you'll want to look at them. See the spec for their full ineffable significance.


Programmification

In addition to a couple of pedagogical sample source files, we have games, interpreters, and other such goodies.


Execution

And if you're not into compiling, you can download the Glk programs as ready-to-run executables, for a couple of platforms at least.


Miscellaneaification

Some other documents of relevance:

And, just to show off what I'm doing here:


What's New

API spec 0.7.0! Now with Unicode.

GlkOte, a Glk-style Javascript library for web applications.

Alexander Beels has contributed a port of GlkTerm which can accept and display Unicode characters, using the ncursesw library.

GlkTerm 0.8.1 and CheapGlk 0.9.1, with some bug fixes.


Last updated March 10, 2010.

Glulx home page

Zarfhome (map) (down)