How to distribute Inform Glulx games as standalone apps

From IFWiki

When distributing a Glulx game (or a Z-code game for that matter), one may reasonably want to offer a Mac or Windows native app, rather than a game file with some instructions on downloading an interpreter.

(You should always make the portable game file available too, of course.)

iOS

Use Zarf's IosGlulxe interpreter. Here are instructions for building an IosGlulxe app, and similarly for IosFizmo (for Z-machine games).

Android

Use Simon Christiansen's AndroidIF project. Instructions are available there.

Windows

Build a Windows installer using NSIS. This installs Gargoyle, the game file, and shortcuts to tie them together.

(NSIS is particularly convenient in that it can be run on Mac or Linux, creating a Windows-ready install.exe.)

The setup is a directory with these files:

  • GAMEFILE.gblorb
  • READ-ME.html
  • cover.ico
  • play-if-card.pdf
  • Licenses.txt
  • SDL.dll
  • SDL_mixer.dll
  • SDL_sound.dll
  • freetype6.dll
  • garglk.ini
  • git.exe
  • libgarglk.dll
  • libjpeg-8.dll
  • libogg-0.dll
  • libpng14-14.dll
  • libvorbis-0.dll
  • libvorbisfile-3.dll
  • mikmod.dll
  • smpeg.dll
  • zlib1.dll

Most of these files are in the Windows Gargoyle distribution. You can drop all the interpreters you're not using. (For a Z-machine game, keep frotz.exe instead of git.exe.)

You can condense all the license files into one Licenses.txt. The play-if-card.pdf is available from the PR-IF web site. Also write a READ-ME.html and create a cover.ico (cover art icon).

You then create a file wininstaller.nsi. This is the config file that NSIS uses to build the installer. Feel free to snarf Zarf's wininstaller.nsi template and modify it to your needs.

When customizing this, be sure to distinguish between "GAMETITLE" -- a software key, no spaces -- and "GAME TITLE", the human-readable title of the game.

MacOS

TODO. For Hadean Lands, Zarf offered a zip file containing the game file and Mac Gargoyle. This is not ideal -- the player has to launch Gargoyle and then select the game file manually.

You can launch Gargoyle with a given game from the command line:

open -a Gargoyle GAMEFILE.gblorb

So this might be rigged up with a shell script. But it would be better to wrap everything, Gargoyle and game file and all, as a Mac application bundle.