Results tagged “interpreters”

IFTF's Adoptable Technology Archive

An announcement went up last week on the IFTF blog. You may already have seen it, but it's important and I want to talk about it some more.

[...] While we wish we could take over and maintain software projects, we just don’t have the resources right now. What we can do instead is act as social matchmakers and try to connect projects with volunteers.

Toward this end, we’re establishing a new project called the IFTF Adoptable Technology Archive.

The IFTF Adoptable Technology Archive will be a public archive of adoptable technology on GitHub. If someone owns a project that needs a new owner, they can put it on a free and open-source software license (we favor the MIT license) and pass it over to us, and we’ll put it up on the archive. The benefit of using our archive (instead of putting it up on GitHub as an individual) is that it will be visible under the IFTF “adopt me!” umbrella. This will create a place where developers can go and see all submitted IF projects in need of adoption, while abandoned projects benefit from the related publicity. We’ll also announce all new additions to the archive via our social media channels.

(-- announcement, Feb 14, IFTF blog)

(The Adoptable Technology home page now exists!)

One of the unfortunate truths of the hobbyist IF field is that most of our open-source projects have lost momentum since the late 1990s. There are a couple of reasons for this. A cohort of fans who grew up with Infocom became energetic 20-somethings with lots of free time, but are now 40-somethings with families, mortgages, or other such temporal entanglements. Also, the IF field has become more diverse. When everybody was playing Z-machine games, there were lots of people working on Z-machine interpreters! But the field has broadened.

There have also been many, many experimental IF projects that never went anywhere. Some of these can be found on the IF Archive, or even on GitHub. But if you don't know they exist, they might as well have vanished.

The Adoptable Technology project is our first small step towards saving these projects. As the announcement says, we don't (yet) have the resources to actively maintain them. Instead, we can put them into a sort of showcase (a GitHub organization). This has two incremental benefits:

  • Onlookers can see the list of projects in the collection. They are, at minimum, no longer invisible.
  • If someone wants to pick up a stalled or abandoned IF project, they have a list of possibilities to compare.

To be sure, not every stalled or abandoned IF project needs to be in the collection. We're not pushing this as a panacea! Nor have we committed ourselves to filling it up. An IF project maintainer may just be looking to recruit volunteers, or to hand the project off in some other way.

Quest is an example from a couple of months ago. They spread the word that they were looking for new maintainers, and they were able to find people that suited their needs. We're happy to help pass along such requests from anyone in the IF field.

But if a project really loses all support, we've got a place for it that will help avoid total invisibility. That's what the Adoptable Technology collection is. It's currently empty except for a README. Perhaps it will remain so for a while. But it's our small step.

Here's a work-in-progress shot of Hadean Lands on MacOS. I'm using an extended version of Lectrote, with HL's map and journal windows added in. (The iOS release of HL has always had these, but not the Mac/Win releases. Until now!)

Yes, two different windows are titled "Map of the Marcher". I'll fix that.

(Background: Lectrote is a new interpreter for Glulx IF games -- meaning most recent Inform 7 games. It runs on Mac/Win/Linux, and it supports all Glulx features except audio. I still have a "beta" label on it, but it's been stable for people so I think it's about ready to 1.0-ify.)

Once this is ready, I'll soft-launch it as an update for existing HL users (people who bought the desktop version through Itch or Humble, plus Kickstarter backers). I'll also post the process of turning your Glulx game into a Lectrote app like this.

In other news, I was interviewed on another podcast! Guy Hasson of Blind Panels talks to me about pretty much the entire history of IF. Plus other stuff I've done.

I've been steadily updating Lectrote, my new cross-platform(*) IF interpreter. In the past month it's gotten icons, a preferences dialog with font and color options, and -- most exciting from my point of view -- autosave.

(* Cross-platform meaning that Lectrote runs on Mac, Windows, and Linux. The interpreter only runs Glulx games, not Z-machine or TADS or any other format.)

Autosave means that if you close the game window (or quit the interpreter) and then open it again, you will find your game where you left off. You don't have to use the SAVE or RESTORE commands unless you want to keep multiple save points.

As I wrote last month, autosave is a bit of a nuisance. I spent February getting it all polished up and tested. And then the tests revealed some obscure low-level bugs in the iOS implementation of autosave. Turns out my iOS Hadean Lands app was failing to store one VM table, and therefore running about 50% slower than it should have. Whoops. Good thing I wrote tests, right?

Lectrote on the desktop seems to be adequately speedy for most games, including Hadean Lands. So that's the last big technical barrier to creating a really nice HL app for Mac/Win/Linux...

I don't mean to imply that a Steam release is coming this week. It will still take some time to adapt Lectrote to a single-game interface. Naturally I will document this process! I want to make things as smooth as possible for any author who wants to release an Inform game as a Mac/Win/Linux app.

(The iOS process is, er, not very smooth. This is mostly because Apple's process for the iOS App Store is baroque, to say the least. I'm not planning to put HL in the MacOS App Store, so it should be simpler.)

I'll also see if I can include the extra dynamically-updating windows from the iOS version of HL: the clickable map and the alchemy index. In theory, these aren't too hard to set up -- I can copy the logic and contents right over from the iOS app. In practice, theory sits on the curb and laughs at you when you say things like that. So we'll see.

But the end is in sight. Give me another couple of months.

Once I have a working HL app, I will release it as an update for the existing Mac/Win/Linux versions of the game. If you have downloaded HL from the Humble Store or Itch.IO (either as a purchaser or a Kickstarter backer), you will be able to download the new app and try it out. If no horrible bugs turn up, I'll start preparing the Steam release.

Introducing Lectrote, an interpreter

Today I posted the beta of Lectrote, a new IF interpreter application for Mac, Windows, and Linux. This is both more and less exciting than it sounds!

If you're familiar with the IF scene, you know that there are several applications which can be used to play these games. Zoom (Mac), WinGlulxe (Windows), and Gargoyle (multiplatform) are the most commonly used. And then there's Quixe, which is a Javascript-based interpreter used on and other web sites.

When I was looking to release Hadean Lands as an app, I found that none of these were really what I wanted. Zoom is unmaintained and buggy; WinGlulxe is weird about scrolling; Gargoyle has problems on hi-res displays. (I'm summarizing, it was a long messy story.)

Quixe had the UI that I wanted -- no surprise; it's the one I wrote the UI for! -- but it wasn't really meant to be used as an app. It exists as a web page, or a component of a web page. Also, it's slow. So I put it aside and went with Gargoyle.

However, the long messy story didn't end there! A few weeks ago I was gazing over the endless cycle of dev-tools and noticed Electron. Electron lets you wrap up a Node.js tool as a standalone app for Mac, Win, and Linux. And Node.js is, well, I don't really know what it is but it's a web thing. Seems ideal, right? Stuff Quixe's web page into Electron and we're done.

It wasn't quite that easy. Node.js has full filesystem access (unlike a web page), so I had to extend Quixe's load/save system to deal with ordinary files. (So you can exchange save files between Lectrote and other interpreters.) But that was still pretty easy. I stuck the IF postcard in a menu, too.

And now you can try it.

So what does this have to do with getting Hadean Lands onto Steam? Well, it's a very simple tweak to drop a Glulx game file into Lectrote. Then you've got a Mac/Win/Linux app that plays a single game. And it looks nice and the text layout is pretty and you can adjust the font size without editing a text file.

I haven't done that yet. I'll have to adjust the menus -- knock out all the support for opening multiple games.

More important, I'll have to add autosave. Right now, if you're playing a game and you close the window, your game is gone. Hope you typed SAVE! That's okay for an interpreter (used by IF habitu├ęs), but it's not ideal. It's really not acceptable for a Steam standalone game release.

Autosave for Glulx games is a bit of a nuisance, but I got it working on iOS. I will get it to work with Quixe. It will just take a few more weeks.

...oh, and then there's the speed. I mentioned that Quixe is slow, right? It's faster than it was but it might not be fast enough for Hadean Lands. If you own HL for Mac/Win/Linux, try it! In particular, try loading a mid-game save file and typing a command which requires many stages, like GO TO BAROSY.

(If you don't own HL, may I remind you that it's on sale for the next two days? I probably don't have to. But I do it anyway.)

Anyway, I may try plugging a different Glulx VM into Lectrote to speed it up. I can probably run RemGlk/Glulxe as a subprocess of the Node.js server... We'll see.

For now, Lectrote is a multi-platform interpreter app which has the UI I want, and that's a good start.

Javascript wonkery

Here I will take a break from the ever-burbling stream of IF and Myst news, and talk about Javascript optimization.

You could say it's relevant because it came up in a Quixe bug report. ("I tried loading Emily Short's Counterfeit Monkey.... Load time dropped from 29.4 seconds to 10.4 seconds...") IF interpreter improvements are a high priority for me -- particularly if they could be big speed improvements for a fairly small code change. Double-particularly if they imply I've had crappy Javascript code out there for years.


Forward planning for IF tools

I've been bemoaning the slightly run-down state of IF interpreter software. (The confusing font preference system in Gargoyle is just one example.) The fact is that the big surge of open-source IF activity was the late 90s and early 00s. Since then, coders have been drifting out of the community, and the ones still around have gotten lazy. (I include myself in that indictment, for damn sure.)

As a community, we do not have a tradition of mentoring and fostering new contributors to IF projects. All of our projects were made by people (most often solo developers) who got excited and wrote a whole application or library.

I like to think that we've got a good software stack, which smooths the path a little. You can write an Inform extension or a Glk library port or a Glulx engine core or a Parchment web service, and it will fit into the ecosystem. But it still starts with a person showing up with enough energy to start, build, and finish an idea. If someone shows up who is curious but not committed, we nod companionably and wait to see what happens. The results, over time, are predictable: activity slows down and stops.

With that introduction, you'd expect me to go on and talk about mentoring. But I don't know anything about mentoring. I'm one of the control freaks! I'd rather work on my own projects than collaborate.

Anybody want to think about community-building? (Hopeful look around...)

(Of course a lot of my projects are specifications and tools that interoperate with other people's code. So I kick myself in the ass and make it happen. But my natural talents do not lie in management.)

In this post, I'm going to talk about my plans as a solo IF tool developer. Warning: I will also talk about money.



Find recent content on the main index or look in the archives to find all content.


Warnings and Log Messages