Each interpreter does its own thing

Sometimes I feel like I can’t control the game I’m developing, because every interpreter does things differently enough that I have to hack around them.

This evening I discovered both WinGit and Glulxe don’t seem to activate the sound support immediately when launched, resulting in the first half second of the game’s title music being cut off.

Then I went to Filfre, and discovered that over there, the volume control scale doesn’t work. Instead of getting 6 volume positions between off and 5/5, you get 5 slight variations of ‘extremely loud’.

Over in Gargoyle, which I consider my home interpreter (I can’t test my sound-including game on my mac without it), the fact that text scrolls up from the bottom creates some weird line break issues in interaction with the glulx timer. If you start a timer and don’t ‘run paragraph on’, a line break occurs when the timer ends, which can result in the screen suddenly seeming to shudder up a line for no reason. Erik Temple worked that fix out for me and the source of the problem.

Over in Spatterlight, the glulx timer seems wackier. Every timer delay you start in Spatterlight takes longer than in its counterparts to finish.

When I wrote Leadlight on the Apple II, I had total control of the game and its presentation. It seems a struggle to get that in this interpreter environment. It’s not that I don’t appreciate the work of everyone slaving away on these things, but the inconsistencies have been bugging me and I wanna vent. It also doesn’t help the project of user friendliness when I have to write instructions at the head of the game explaining the situation for each interpreter. I don’t think players should have to worry about these things.

Git is the only interpreter I know that handles graphics well and fast. Whatever’s in I7, it sucks on Glimmr.

Usually interpreter authors will respond to help if you email them with specific issues. Bugs and inconsistencies in interpreters are annoying, but you have a role to play in solving such problems too: generate some sort of test case, email whoever is behind the interpreter, and see if whatever the problem is can be solved. Writing all your complaints without much detail in one post is unlikely to get you (or anyone else) anywhere.

If you think you’ve got it bad, try writing web applications commercially: does it work on Internet Explorer 6 on a Finnish install of Windows 2000? Gah …

Git, of itself, has no graphics support: it’s just an interpreter core. The graphics support will depend on the Glk library it’s built with.

Au contraire, if everyone solves all their problems in silent consultation with other programmers, you see a lot more clone topics and complaints, and no-one knows what others are working on or what issues exist. You need to get yelly as well as communicating one-on-one. I guarantee that anonymous people are feeling better about life already for having read my post as I type these very words!

The interpreters used in the IDEs are modified versions of their standalone counterparts–Windows Glulxe and Windows Git, on Windows; Zoom (glulxe & git) on Mac OS)–and they have additional tasks that they must perform beyond just playing the game. When used with something resource-intensive (e.g., graphics), they will always give poorer performance–sometimes much poorer–than the standalone version of the same interpreter. The standalone versions of Windows Git, Windows Glulxe, and Zoom perform quite respectably*, though it must be admitted that Gargoyle is a bit faster than all of these.

The answer to this is to test outside the IDE, at least when you’re focusing on multimedia. Glimmr includes its own debugging mechanisms that aren’t dependent on being run in the IDE, and the Extended Debugging extension allows the built-in debugging commands, as well as new debugging commands you might write, to be used in a released game.

I would advise you to ignore Spatterlight completely in your testing. It is no longer updated, is relatively slow, and will soon be completely obsolete. When you post your game, you can mention that Spatterlight is not a good fit and suggest that folks download Gargoyle instead.

For the other interpreters, I would definitely second David’s advice that the best thing to do is to write each interpreter author individually with a detailed explanation of the issues you’re seeing.


*Standalone Zoom does have some bugs that the IDE version doesn’t, and both still have some issues that need to be set aright…