Multimedia for the brain-dead? [I6]

Dear all,

Okay, so I’ve come to grips with the fundamental concepts of Inform 6, and I’m pondering to move on to have some modest multimedia support for my first “genuine” project. Nothing fancy, just a few still images and perhaps the odd soundfile or two.

But, frankly, my first attempts to get that done were massively thwarted. There is a bewildering array of glulxes, blorbs and what have you, with many different concepts and ideas which I find very difficult to fathom.

Is there a simple guide out there, “multimedia for the brain-dead, step-by-step” or such, which will allow me to readily come to terms with one of the implementations? Really, I want nothing more than the occassional humble picture on the screen. I consider myself reasonably computer-literate and can tell a JPG from a PNG.


Thanks in advance,


And while we’re at it, a good conversation system library for I6? IIUC, the built-in facilities are rather basic…


Adam Cadre’s Gull to the rescue! (guide to Glulx & Multimedia; includes example games with source code)

There’s also zarf’s sample game Sensory Jam on

It might also be interesting to look at the source code for the French multimedia game Ekphrasis.

Regarding the conversation system, here’s a directory of I6 library contributions at the IF Archive.
There are several conversation extensions among those. I haven’t tried any of them myself, so I can’t specifically recommend one.

Hope this helps!

Ah, this looks very much like what I was looking for.

Thanksalot, StJohn, I’ll delve into it asap!


Okay, I’ve tried. I’ve tried really hard. Unfortunately, lots of the links in Gull are dead, which makes it a bit hard to follow.

Anyway, I tried to set up a system, but when I run

front glu glu.inf glu.bli

for my test project called “glu”, what I get is:

Running: bres glu.res glu.blc glu.bli
C:\DOKUME~1\e\EIGENE~1\Dropbox\Inform\bres: Blorb Resource Compiler (Mar 3 2006)
Version .4b by L. Ross Raszewski
Running: inform -G glu.inf glu.ulx
Inform 6.32 for Win32 (18th November 2010)
[Including ]
glu.bli(6): Error: Expected empty rest of line after ‘’ in string but found “D”

Message "Including C:
glu.bli(6): Error: Expected empty rest of line after ‘’ in string but found “e”
Message "Including C:\DOKUME~1
glu.bli(6): Error: Expected empty rest of line after ‘’ in string but found “E”
Message "Including C:\DOKUME~1\e
glu.bli(6): Error: Expected empty rest of line after ‘’ in string but found “D”
Message "Including C:\DOKUME~1\e\EIGENE~1
glu.bli(6): Error: Expected empty rest of line after ‘’ in string but found “I”
Message "Including C:\DOKUME~1\e\EIGENE~1\Dropbox
glu.bli(6): Error: Expected empty rest of line after ‘’ in string but found “b”
Message "Including C:\DOKUME~1\e\EIGENE~1\Dropbox\Inform
Including C:DOKUME"1eEIGENE"1DropboxInformbres resource declarations generated on 12-10-2012
glu.inf(117): Error: There is no action routine called “AskToSub”

glu.bli(9): Warning: Defined constant “seahawk” declared but not used
Compiled with 7 errors and 1 warning (no output)[/code]

Now the line 6 of glu.bli (generated automagically somewhere in the process) is:

Message "Including C:\DOKUME~1\e\EIGENE~1\Dropbox\Inform\bres resource declarations generated on 12-10-2012";

I take it the whole thing is somewhat confused by the backslashes in the path, but there’s little I can do about it, because I’m on a Windows machine, and I can’t edit the file between its creatino ans bres’ attempt to compile it.

Is that a known problem? Am I doing something Seriously Wrong™ here?

(I’ve noticed earlier that Inform apparently has a problem with the concept of a path, and I could only ever successfully compile a game when I copied all the relevant libraries into the same folder as the game’s source. Is that a known issue? Does this have anything to do with the glulx problem?)

Any help greatly appreciated. TIA!



I haven’t experienced any sort of problem with having included files in different directories. Something like this should do the trick:

Include "extra/sound.h"

Speaking of which, sound.h is a great tool for getting the dirty work of audio output done. I’ll be uploading the source code to Uninvited in a couple days. You can look through that to get an idea of how to do sound and blorb in Inform6. I haven’t been able to get anything satisfactory with graphics though. I’d like to see about converting sound.h to work for glulx compilation.

Ah, true. I only looked at the Gull documents on Adam’s server (they do seem to be complete), but not at the external links. Some workarounds: was the site of the IF Archive a few years ago. The directory structure on the new server is the same, so replacing “” with “” usually works with those links.
It seems you’ve found L. Ross Raszewski’s projects already, but for reference, they are at at the moment.
The Inform 6 site seems to be inaccessible right now, but you can use the “Wayback Machine” to see archived versions, for example the home page or the blorb page.

@frotz: Ah, I see. It has to do with the file extensions. If I use something like

import “parser”

that will work in the current directory, or if I provide an absolute path. But if I want to do something like

import “…/libraries/parser”

it does not work, but in this case it has to be

import “…/libraries/parser.h”

which is mildly confusing. Besides, english.h, linklpa.h, parserm.h and verblib.h apparently still have to reside in the same directory as the source where Inform is invoked.

Still, all this seems to work only as long as I convert all backslashes to forward slashes, which I can’t do with the glulx frontend.



There are a few issues to tackle in all this, but let’s start with creating a working Blorb file. There are several Blorb packaging tools out there, of varying degrees of friendliness and supportedness. It looks like you’ve had a go with “iblorb”, which is the package with front/blc/bres in it. I haven’t used that myself - if I want to create a Blorb file I use cBlorb, which comes with Inform 7 (and is what Inform 7 uses for the task).

Attached is the source for an absolutely minimal example of a Glulx Blorb file that plays a sound. To get this to build I first run Inform 6 to compile the game’s source code (Test.inf) into the Glulx game file (Test.ulx), with

(Path_to_Inform7)\Build\Compilers\inform-632 -G Test.inf Then I run cBlorb to turn the Glulx game file and associated resources (here one sound file) into a Blorb file

(Path_to_Inform7)\Build\Compilers\cBlorb Test.blurb Test.gblorb That should be all there is to it. What cBlorb does is controlled by the Test.blurb file, the format of which is documented at, but generally it’s pretty easy to guess the syntax from playing with Inform 7 examples.

With that out of the way, looking into the problems you had…

The generated code that failed to compile was:

Message "Including C:\DOKUME~1\e\EIGENE~1\Dropbox\Inform\bres resource declarations generated on 12-10-2012"; Inform 6 is right to reject this: it’s not that it’s a path per-se - the Message directive simply tells Inform 6 to print the following string, but Inform 6 expects backslashes to be used as an escape character, so that ‘front’ tool that generates this is just wrong. You might get some more information by asking the author of front about this - someone else posted a more up to date URL.

No, this is because you’ve not used the include_path syntax to specify where to look for included files. If you run Inform 6 with the “-h1” switch it will print a pretty exhaustive explanation of how paths are handled. In general, it’s used something like

inform-632 -G +include_path=Path_to_Library source.inf output.ulx (383 KB)

Thanks everybody for trying to help me with Glulx. I’ve given up, though – it’s simply not important enough for me, I find.