Autosave in Lectrote (and Quixe)

I’ve just posted Lectrote 0.2.0. It now supports autosave. That is, if you close the game window (or quit the interpreter) and then open it again, you will find your game where you left off.

(The same capability exists in Quixe, but I haven’t turned it on in the default configuration. Maybe I will.)

Autosave will mostly work smoothly, but there are a few funny corners. Tedious details follow…

If you do SCRIPT ON, the autosave will include the location of the open file. When you relaunch the game, it will come back with transcripting still on. This is good! But if you’ve deleted the transcript file in the meantime, it will be silently recreated and reopened. This might be surprising.

If you’ve deleted the directory containing the transcript file, Lectrote will be unable to recreate the file. It will therefore fall back to silently opening a hidden temporary file and writing the ongoing transcript to that. This is probably not what you want, but unfortunately it’s the best I’ve got.

The same thing can happen if a game keeps a data file open continuously. If the data file still exists, autosave will reopen it – fine. If the data file is missing, it will be recreated, but its contents will be gone, which could be bad depending on the game code’s assumptions. If the file can’t be recreated, it will reappear in a hidden temporary location. (So at least you know the game won’t crash trying to write to a null stream.)

URL is still github.com/erkyrath/lectrote/releases

Oh, yes: there’s a “Reset Game…” menu option which will start over without loading the autosave. This may be helpful if you run into an autosave bug which prevents the game from running at all.

(You can of course use the standard RESTART command to start over. Or if you QUIT and relaunch the game, that works too.)

I’m getting confused, so let me ask a practical question that often arises: what happens if I delete the files created by the game because I wanted to start completely anew? Let’s say, for instance, I deleted all the achievements and configuration files in Kerkerkruip. What would happen when I next loaded the game?

I’m curious because this actually happens. I sometimes fiddle with games a lot before settling down to actually play them.

Does Quixe’s regular restore still have its bug? Just checking, though I figured you’d have mentioned if you’d touched that.

I’ve been trying Leadlight Gamma in Lectrote, since it pushes things around a bit graphically. Details in the EDIT.

Uh, what else. I guess I’ve noticed the graphics are of alternately fuzzier/blockier quality than in, say, Gargoyle. I’m guessing this is to do with scaling programming in Quixe? Or in Lectrote?

EDIT - OK, so here are my reports on how it’s handling the Leadlight Gamma graphics, which are all Glimmr-powered.

  • The title screen animations are flickery (actually it makes it look like I programmed a spooky random lightning effect) versus the fade ins and outs they usually are. This doesn’t surprise me for reasons I don’t really know (graphics engine, timing, Quixe speed?) but which you can probably specify.

  • Glimmr lets you make the graphic canvas cover the whole screen. I present the title screens using this technique, but at that time the game is not awaiting input. (Though the MORE prompt appears beneath the title screens, but it goes away once they go away)

The problems for interaction come in 2 places: The image gallery mode uses graphics covering the whole screen, but awaits input underneath (you can press 1-6 to change pictures). It looks like Lectrote triggers the MORE prompt when I try this, but I can’t get rid of it by pressing anything. A little sliver of text window is being preserved at the bottom, which you might not easily notice if no text happens to be poking into it at that particular moment. You have to put your mouse in the sliver and scroll down to remove the MORE and reopen input.

The full screen map you can call during the game has the same issue. It covers the whole window and waits for you to press a key ‘behind it’ to make it go away, but now it triggers the MORE prompt and the text window sliver at the bottom.

-Wade

It depends whether the game works by holding a file open forever, or opening it each turn to write to it. A transcript file is held open for as long as transcripting is on; that’s why I used it as an example.

The “external file” phrases in the Standard Rules do not hold a file open – they all do open, read/write, close. So nothing will change there.

If you’re worried, you can end the game with QUIT. When you quit (and see the blue “session has ended” banner) then there is no autosave; the game will start up fresh the next time.

That was fixed in release 0.1.5. See the releases page.

The image handling in Lectrote is the same as in Quixe – it creates a region and draws images to it. I’m not surprised this is flickerier than a native interpreter.

Again, same as in Quixe. It has always been risky to reduce your input window to zero height while still expecting input from it. It breaks too many interface conventions to be reliable.

Ah, then all the cases I’m thinking off are probably all right.

Fair enough!