Someone playtesting my game got this error:
*** fatal error: Reference to nonexistent Glk object. ***
It happened only two moves after they restored a saved game. I don’t know if that’s relevant. There was no particular action that looked suspicious to me occurring at the point in the code right after the last recognisable message printed by the game.
Any ideas what’s happened?
Edit: It’s made with the latest build of Inform, uses sound (semi frequently), uses graphics (infrequently).
EditEdit: I just discovered the player is not using the latest version of Gargoyle, but one from 2009.
Unfortunately this could be a bug at any of several levels: your code, the I7 multimedia extension you’re using, the Glk library, or the Glulxe/Git interpreter. (Probably the I7 standard library, because that doesn’t do much with sounds and what it does looks correct.)
The library and interpreter are easiest to check. Does the problem occur with the latest Gargoyle? What about other interpreters?
Unfortunately, in acres of playtesting, this is the first time it’s happened. I don’t think the testers have been doing much saving/restoring, though, per se. I think most people have been using up-to-date Gargoyle. Someone used Filfre.
I advised the person it happened to to download the latest gargoyle, which will take him from git 1.2.4 to git 1.2.8.
I quickly tried saving and restoring the game in the same window, and moving around in the game a bit after, and doing the same thing but with closing Gargoyle inbetween, and I didn’t get any immediate crashes in either case. So least it doesn’t seem to happen constantly, but in truth I haven’t identified much about it. In the guy’s saved game, it happens after he takes a movement-step in the restored game, other actions are okay. However it’s not a standard movement, it’s programming of mine.
The action’s called ‘to try a path’ - EG there’s a line of code which says ‘To try a path: do such and such.’
I’m not courting some weird danger by having ‘try’ in the action name, am I? Cos elsewhere, the cue of the action reads ‘try a path’, which it occurs to me resembles a line telling inform to try an action, rather than to activate an action called ‘try a path’. Just thought maybe this is relevant, as it’s what’s going on at the crash point. But it’s only the crash point in his restored saved game.
Does he still have the save game?
Yes, he does. I got him to send it to me. Then I tried restoring from it in up-to-date Zoom, Gargoyle, and the Mac Inform IDE (which is Zoom or Zoomish isn’t it?) - and all rejected it.
Also, the player redid the whole game in new Gargoyle, saved and restored at the same point and it didn’t happen again.
So I think signs are pointing to something in either the previous build of Gargoyle, or incompatibility between the shiny new game and an older version of git.
Thanks for input so far.