Lectrote beta release 0.1.0

I’ve been teasing this in other threads, but it’s now solid enough to post a beta.

github.com/erkyrath/lectrote/releases

Lectrote is a new end-user interpreter app for Glulx games.

In fact it’s Quixe wrapped up as an app! Quixe is usually used as a web-server component – either iplayif.com or an Inform-generated web site. But it turns out it’s possible to distribute it as an app, using electron.atom.io . (Basically it’s the Chromium browser packaged up with stuff.)

This is a preliminary release. The menus probably need some adjustment. But it runs and it plays games.

Lectrote is really stage one in a project to let authors release individual games as standalone apps. (A.k.a. “why isn’t Hadean Lands on Steam already?”) That will require more work, however; Lectrote will have to support auto-save, so that IF-newbie players can close the game and relaunch it later without knowing the SAVE command. I can implement that – I’ve implemented it for iOS – but it will take a bit more time.

In the meantime, please try the new terp and tell me how it goes.

(Also, if anybody knows how to replace the icon resource in a Windows .exe file… I tried the tool at resedit.net but couldn’t figure out how to paste a new image in.)

That’s the tool I’ve used before, and didn’t really have any trouble. Is your new icon an .ico?

Looks and works fine on Gentoo Linux. Some quick remarks:

The “Window” menu probably shouldn’t be there. We have a minimize button on the window :slight_smile:

“Help->About” opens a new interpeter window instead of an “about” window.

Edit:
One nasty thing the packaging does is that it extracts everything in the current directory rather than its own. “unzip lectrote-0.1.0-linux-x64.zip” left me with a lot of files that got mixed with whatever was already there, having to clean up the mess afterwards.

The convention in Linux (and what’s implicitly expected) is for compressed files to always contain one top-level directory (preferably the package name and version.)

Hm, no, it was a PNG. I’ll try the other thing tomorrow. Thanks.

There’s a close button too, but it’s still good to have a close menu option for clarity’s sake.

In a perfect world, the Window menu would also show a list of open windows. This is built into the MacOS version, but the others don’t support it yet.

Hm, I’ll look at that.

The Windows convention is the opposite. As I discovered when I made a Windows .zip file, unpacked it (in Parallels), and wound up with a directory containing a directory containing my files.

(On MacOS, the Finder’s unpack tool is smart enough to not make either mistake…)

What do other people think? I could build the Win and Linux zip files differently, but I’d prefer to hear more widespread agreement before I make that change.

+1 package it differently on Linux. IMO Windows and Mac UI does the right thing by default, but “unzip” can’t be changed for backwards compatibility reasons. So the only thing to do is work around the broken stuff.

Thanks for releasing this. I look forward to trying it, and seeing it develop, and eventually packaging games with it myself!

-Wade

I think it’s rather very confusing, as I have never seen any other application do this (and I’ve been around computers for over 20 years now :wink:)

Keep in mind that recovering from a redundant directory is trivial. Recovering from a dozen files merging along all your existing ones and going on a “which files belong to that thing” hunt is not :stuck_out_tongue:

Saving works but you have to know the extension for glk save files (I don’t know that) because restore filters the files only for that extension.

The best way to bundle Electron apps for release on various platforms is with electron-packager: github.com/maxogden/electron-packager

Good point.

Ah, yes. I stumbled across that but hadn’t given it a good look. Thanks for reminding me.

After some testing…

Are you on Linux? On Mac and Windows, the save dialog adds “.glksave”.

This is very strange. It doesn’t happen on Windows, and the Linux and Windows versions use the same menu template.

Does anybody else see this problem?

Is the new interpreter window resizable? What game is it showing?

I’ve thrown 0.1.1 up there.

github.com/erkyrath/lectrote/releases

  • Fixed icons on Mac and Windows.
  • Windows and Linux apps should accept drag-drop game files now.
  • Speed optimization via @eevee.
  • Linux zip file will no longer spill files all over your current directory.

Looks nice!

In Windows, when you click “Help > IF Reference Card” or “Help > About Lectrote”, it’ll open a new window that has the correct main content, but also a mostly-nonfunctional toolbar across the top (File, Edit, View, Window, Help). In that toolbar, minimizing the window and closing the window seem to work, but most other options don’t do anything.

Hm. “Open…” and “Open Recent” don’t work? Not even Copy and Paste?

The “IF Reference Card” and “About Lectrote” options won’t open duplicate windows, but they will bring the appropriate window to the foreground if it isn’t already.

The display adjustments in the View menu don’t work and I should disable them.

Open works. Open Recent doesn’t give me any choices in the sub-menu because it’s empty. Copy works. Paste doesn’t seem to do anything, but I wouldn’t expect to be able to paste things into a help window.

For me, the original window with the game is still visible, and the new Help windows are completely separate windows. (I.e. there are three windows total–the game, About, and the postcard.)

Oh, now I see what you mean about duplicate windows. Yes, it does bring, for instance, the postcard window to the foreground if I’m in the “about” window and click on the postcard option.

Stuff like Undo and Redo, though, don’t seem like they make sense for a help window. I’m not sure Cut and Paste do, either, if you can’t delete contents from the help window or add to it.

Actually, I just tried Undo and Redo in the main window (with the game) and they don’t seem to do anything there either.

Undo/Redo technically work – you can undo changes to the input line you’re currently typing. (Until you hit return.) I admit this is neither useful nor intuitive.

I’m on Ubuntu Linux 15.04. Using current master branch from the git repo.

On the start there’s an error: “Quixe init: Error: This is not a valid Glulx file. This is not a valid Glulx file. Error”

“Help > About” and “Help > IF Card” both open in a new, separate window. Complete with title bar and menu.

“File > Open Recent” and “File > Open Game”, again, open the game in a new, separate window.

Gah, really? The command-line interface for Linux is different from the command-line interface on Windows?

I don’t have an easy way to test this. If somebody figures out the right handling for process.argv to make drag-and-drop work on Linux, please let me know. Conveniently I’ll be out of town until Monday so you have that long before I have a chance to fix it anyway. :slight_smile:

(All the app-level code is in main.js. Delete the stanza at line 681 and the “not a valid Glulx file” error will go away.)

Yes, all of these features run in separate windows and they should all have menu bars.

Maybe on the Mac, but that’s wrong on Windows and Linux.