These documents describe what was intended to be a universal interactive fiction platform. By the law of XKCD 927, they did not wind up being universal. But they form important parts of the technology used by many IF tools.
The copyrights of these documents are owned by the Interaction Fiction Technology Foundation, a nonprofit which supports IF tools and resources. They are all licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License: https://creativecommons.org/licenses/by-nc-sa/3.0.
These documents are managed by IFTF's Archive Committee. If you have questions or requests, please contact <specs@ifarchive.org>
.
The Glk, Glulx, and Blorb specifications were originally created by Andrew Plotkin.
Glulx is a spiritual successor to Infocom's Z-machine. It describes an imaginary general-purpose computer which is relatively easy to implement. Inform 7 is a well-known IF tool that generates Glulx game files.
(More information can be found on the original Glulx home page.)
Glk is an API which abstracts the common I/O operations of IF programs (games and interpreters). Glulx uses Glk as its native I/O layer, but other IF systems have been ported to Glk as well.
(More information can be found on the original Glk home page.)
Blorb is a packaging format which wraps up an IF game file and its resources (images, sounds, metadata) into one file. Glulx games are commonly distributed in Blorb format.
(More information can be found on the original Blorb home page.)
This repository includes the current versions of the spec documents in Markdown. It also contains a Python script to render the documents into HTML and from there into PDF.
(The Markdown can be viewed with a standard Markdown viewer. If you're reading this in the GitHub repo, the links above will do this! However, the makehtml.py
script will add such amenities as a table of contents, named internal links, and a nice stylesheet.)
Building the HTML requires Python3 and the Markdown package.
Building the PDF requires the wkhtmltopdf tool.