Quixe: a Glulx VM interpreter written in Javascript

Quixe is a pure-Javascript interpreter for the Glulx IF virtual machine. It can play any Glulx game file (.ulx or .gblorb) in a web browser. It does not require a server component; it runs entirely in the browser.

Quixe currently supports text buffer and grid windows, character and line input, timers, graphics, and hyperlinks. It does not (yet) support sound.

You can save and restore games. If your browser supports the HTML5 local-storage feature, the save files will be available from one browser session to the next. (Note: clearing cookies and other browsing data will erase your save data. Browser privacy policies may also cause save data to be discarded.)

Quixe is open-source software (under the MIT license).


Try Quixe

You can try some Glulx games right here: You can play any Glulx game on the web through this interpreter. Enter the URL (an .ulx or .gblorb file):


Put Quixe on your own web site

The easiest way to release a game with Quixe is to have Inform 7 build a web site for you. Quixe 1.3.1 is included with current releases (6L02 and on), so you just need to add the line:

Release along with an interpreter.
When you select the "Release" option in I7, it will build a complete Quixe installation for your game, in your project's Materials folder. Upload all of these files to your web server, and the game will be playable.

If you want the latest version of Quixe, you will need to download this template package:

Download this zip file and unzip it. Move the resulting Quixe directory to the appropriate Inform template directory for your computer. (On a Mac, this is the Library/Inform/Templates folder in your home directory. On Windows, it is My Documents\Inform\Templates. See the "Website Templates" chapter of Writing With Inform.)

Older releases of Inform 7

If you are using a very old release of Inform 7 (6E72 or earlier), you will need to download this template package:

Install this in your Inform template directory, as described above. Then add the line:

Release along with the "Quixe" interpreter.
...to your Inform 7 game. (Unlike with newer Inform releases, you have to explicitly name the interpreter.)

(This will only work if you have the "Story File Format" set to Glulx in the "Settings" tab, of course. If you are building Z-code, you don't want Quixe at all -- you want Parchment.)

If you're not using Inform 7 at all

If you aren't using Inform 7, you can still use this facility. Write a one-line Inform 7 game called "Game". Set the "Story File Format" to Glulx, and release it.

Now replace the Game.gblorb file in the release directory with your own game file. Also adjust the game title and author references in the release directory.

Finally, use the game2js.py script to replace the encoded game file:

python game2js.py --giload Game.gblorb > interpreter/Game.gblorb.js

Quixe with a header and footer

When adapting Quixe to an existing web site, one often wants to set up a game area on a page with site-specific header and footer. This is not difficult if you know the HTML and CSS layout to make it work, but it's a bit of a pain to invent from scratch. (Read: I am tired of re-inventing it from scratch for every new web site I release. So here are my notes.)

The easiest way to set this up is to copy this page, which runs Adventure in a fixed-width-column template, with a header and footer:

You can also build this sort of setup directly out of the Inform 7 IDE. You'll need to download this template package:

Download this zip file and unzip it. Move the resulting Quixe directory to the appropriate Inform template directory for your computer. (On a Mac, this is the Library/Inform/Templates folder in your home directory. On Windows, it is My Documents\Inform\Templates. See the "Website Templates" chapter of the Inform 7 manual.)

You can then build the site by using an I7 declaration like

Release along with a "OneColumn" website.

Last updated September 1, 2023.

Glulx home page

GlkOte (the display library included in Quixe)

Zarfhome (map) (down)