FAQ and Troubleshooting

The reason I'm putting up this page is that I spend a fair amount of time these days fielding email, and a good percentage of that email repeats a question I've already answered for someone else, possibly multiple times. So here they are:

Contents:

Playing Games in General
Playing and Developing Games on a Macintosh
Developing in Inform
Developing for the z-machine
Developing for Glulx: Multimedia Issues
Developing for Glulx: Compiler Issues
Developing for Glulx: Mystery Interpreter Crashes


Playing Games in General:

I'm a total newcomer to these games. How do I get into them?

This is a big topic, and I am not the best guide for the new initiate. Besides, lots of great stuff has been written already. Try these sites for information about how to find, install, and play interactive fiction:

I'm looking for game recommendations.

Try these sites:


Mac-Specific:

I'm using OS X. Is there a Carbon Glulxe?

Yep! Check out Ben Hines' website.

My downloaded gamefile won't play on my interpreter.

First, download a small utility from the IF archive called IFDropfile (it's really tiny). Drag your gamefile to it. If you have an uncorrupted gamefile, IFDropfile will label it for you. Voila! It is now playable on your interpreter. (Alternatively, if you are running OSX and want to identify a .blb file, you may want to use Curt Siffert's BlorbDrop. IFDropfile works under Classic mode.)

If IFDropfile was not able to identify your gamefile, it's possible you have a corrupted version. Try retrieving it again, and make sure that if you are using an FTP program you have the mode set to binary.

My downloaded Glulx game is slow and mysteriously crashy. I am using an older Macintosh system version.

Give your interpreter all the memory you can afford, and turn off virtual memory. Old forms of virtual memory get along very badly with Glulxe.

My downloaded Glulx game loads up but apparently hangs on the first screen. There is nowhere for me to type text here, just a big picture.

The author wrote the game for WinGlulxe or similar, and reduced the size of the main window to zero. As a result, the game is trying to scroll down the main text window (which doesn't exist) to give you a prompt at which you can type. It is to the best of my knowledge impossible for the player to work around. You may not be able to play this game until you can visit a friend with a different system. (I know that a couple of Adam Cadre's Glulx games have this problem; I am not sure about others.)

Pictures in this Glulx game look ugly and chunkity!

This may be because they're bad graphics or it may be because the author has told the game to scale the picture, and your interpreter is doing a poor job. Try to make your window as close as possible to the shape the game designer envisioned; aspect ratio is more important than absolute size, though that doesn't hurt either.

Mac OS X interpreters do a much better job of this than pre-OS X ones. As it's been explained to me, this is because OS X uses bicubic scaling all the time, and thus looks just as good as if you put the image in Photoshop and scaled it up or down there.

My compiler crashes without explanation. I am running one of Robert Pelak's compilers.

Probably you are over one of the internal memory limits. Try removing some of the code and compiling again. If it works, try increasing some of the following in your ICL file:

$MAX_INDIV_PROP_TABLE_SIZE
$MAX_PROP_TABLE_SIZE
$MAX_OBJECTS
$MAX_DICT_ENTRIES
$MAX_ACTIONS
$MAX_VERBS

Inform in General:

A much more thorough set of advanced hints and trouble-shooting for Inform is available at Roger Firth's site.

I have a mysterious bug, perhaps a VZEFH (Vile Zero Error From Hell), that I cannot track down.

If your code is producing bugs that you can't explain, it may also be worth checking to see if it is a bug in the library itself: see the Inform patch site.


Z-code Specific:

My Z-code game crashes the interpreter immediately on start-up.

Perhaps you have overrun low memory restrictions. Some interpreters are buff enough to tell you what's wrong: try playing the game with Nitfol and see if you get a warning about overrunning dynamic memory. Or compile your game with the -o switch on in the ICL file, and check the DM4 for information about the memory map.

If this is your problem, there's a laborious solution: redesign your code to minimize the number of objects involved, switch arrays to routines, and alias properties to other ones commonly found. The DM4 has good advice about how to do this.

Or switch to Glulx, which lacks such a restriction.

My Z-code game crashes the interpreter at some other time.

This is quite possibly a VZEFH, or Vile Zero Error From Hell: trying to find the properties of or otherwise treat as an object something which is set to equal zero. Nitfol generally does not crash but prints an error message at this point, so you would be well advised to try your game on it to find out where the problem is.

My game is too large even for .z8.

Okay, well, if you don't want to switch to Glulx, you have to make it smaller. The DM4 has good advice about this at Chapter 45.

Abbreviations help a lot. Here are some that work for me. (It took me a while to come up with a good list.)


Glulx-Specific, Multimedia Issues

I don't understand Zarf's pages and want to add multimedia features to my game but don't know how.

In the unlikely event that you've found this page but don't know about Gull, check it out. It is Adam Cadre's gentle introduction to how to do many things a first-time glulx-user might want to attempt, and includes sample games and source code.

I looked at Gull, and now my head hurts. I want a complex UI with different windows, but it looks really finicky to set up.

Try L. Ross Raszewski's GWindows extension. He has created a systematic way to design a complex UI for your game, and provided a number of predefined classes of windows. Even if he hasn't designed the kind of window you have in mind, it's quite likely you can get there by tweaking what he has.

I want to center a picture in a graphics window. Can I do that?

Yes. Use glk_image_get_info to get the width and height of your picture and store them; then you can compare these to the width and height of the graphics window. Halve the difference between window height and picture height (or window width and picture width), and use this information to determine the correct coordinates to place your picture in the window with gwin_image_draw or similar routines.

I want to center a picture in a text window. Can I do that?

Yes. Use stylehints to set up a style that's centered (see Gull if you are unfamiliar with the concept of the stylehint). Probably, all else being equal, you will want to make these changes to style_User1, so as not to mess with styles already being used for other things in your game. Remember you have to do this before the text window is created (so probably in Initialize, or at the entry point provided if you're using GWindows). Now, to display, switch to this center-justified style, draw your picture inline, and switch back to style_Normal.

The stylehints I am using are not affecting what I see in my interpreter.

Some interpreters, including MacGlulxen, allow you to set preferences that say whether or not you will accept the author's stylehints. Go to the preferences menu and set things up so that you are accepting all stylehints.

My game looks beautiful on my machine, but crashes my beta-tester's.

Compare notes and find out whether your beta-tester is using a different interpreter than you are. It is possible that you are not checking the abilities of the interpreter properly, and trying to, for instance, display graphics with an interpreter that is not capable of showing them. A well-designed Glulx program should ideally at least exit gracefully with a message if the interpreter is not up to handling its demands.

It is also possible that you are not being flexible enough about your window sizes. If you have a window with a fixed height and/or width definition in pixels, that will come out taking up a significantly different amount of screen real estate for someone with a different type of monitor. What looks like a little picture in the corner of my 15-inch iMac LCD screen may take up the whole entire screen for my friend who's running at 640X480.

I don't know what interpreters will be able to use the effects included in my game.

See the chart by Marnie Parker.

I don't have a blorbifier. Can I develop my game without one?

Yes. Name your picture files Pic1, Pic2, Pic3, etc, and your sound files Snd1, Snd2, Snd3...

Now you can refer to them in your game code by number (1, 2, 3) or constants defined to those numbers. Make sure that the .ulx file you create is in the same file as all the picture and sound files you wish to try.

I'm playing my .ulx game with pictures and sounds, and it's really slow.

Fear not. File finding and picture drawing are faster when you have a blorbed version of the game.

I think I've done everything right, but Glulxe isn't displaying my picture (or playing my sound).

Is the resource in the same file as the .ulx, if you are running an unblorbed game?

Is the resource correctly named (again if you are running without blorb)?

Is the resource of the correct type (PNG or JPEG for pictures, MOD or AIFF for sounds)? Is it ungarbled?

If it is blorbed, is your blorbifier working correctly? (There are, for instance, some complexities in correctly setting up AIFF files in blorbed format.)

Does your interpreter have enough memory? The standard memory setting may not be sufficient for it to load all the pictures and sounds, with the result that draw and play commands will fail silently. (You will need to allocate more from the finder, if this is the case. On a Mac, click on Glulxe and then select Get Info from the File menu, or type command-I. Go to memory settings and raise them by several megabytes.)

My picture is displayed, but then when I resize the screen it gets all messed up.

You have to tell it to redraw the picture. See Adam Cadre's Gull page for instructions on graphics windows and HandleGlkEvent.

My AIFF file sounds choppy and horrible.

Did you convert it from an mp3 or other compressed file? Doing so will often produce results that are intolerable to listen to.

My MOD file doesn't play at all.

Support for MODs does not yet exist on many versions of Glulxe, including MacGlulxe.


Glulx-Specific, Compiler Issues

My Glulx compiler refuses to compile a game over 640K. It claims that one of the memory blocks is too large.

Compile with the -F1 switch on in your ICL file or command line. This will allow your compiler to use multiple temporary files to get around its internal restrictions.

My Glulx compiler refuses to compile a game over about a megabyte. It crashes without explanation. This problem goes away if I remove a lot of the text from the game.

Many Glulx compilers are built with a built-in limit of 10,000 strings. Your options are to a) find a way to consolidate some of your numerous strings; or b) recompile the compiler (or find someone else to do so). Iain Merrick has made me a version that goes up to 50,000 strings, so if you are working in a unix-based environment you may contact me for a copy.


Glulx-Specific, Mystery Crashing of Interpreter

(See also Multimedia, above: it's possible that something you added to the game that seemed innocent is actually causing mischief.)

My Glulx game crashes the interpreter immediately after the introduction.

Do you have any rooms with a found_in property that is an array (as opposed to a routine)? If so, your game is probably crashing on the MoveFloatingObjects() routine that is called by the library when you move the player into a new location.

Zarf doesn't know what is causing this and doesn't have time to fix it immediately, whatever it is, so for the meantime, try rewriting from

    ...
    found_in HomePlate Dugout Bullpen,
    ...
to
 
    ...
    found_in [;
        if (location == HomePlate or Dugout or BullPen) rtrue;
        rfalse;
    ],
    ...
    

Back to Main Page


All text and images on these pages copyright Emily Short, 2001-3.
Contact me at emshort@mindspring.com with any questions or comments.