6L38-compatible extensions?

I don’t usually pay much attention to I7, so please forgive my ignorance … but this afternoon, moved by some obscure impulse, I thought I’d upgrade to 6L38 and make sure my extensions are compatible.

I managed to find the github repository, which directed me to a page on Emily Short’s site (emshort.com/pl/payloads/). This page shows only a half-dozen extension authors, however. These can’t be the only extensions that are 6L38-compatible, can they?

Looking on the Aaron Reed page from that list, I find that NONE of the extensions by Aaron are the same as the ones on the I7 site’s Extensions page. My goodness – what does this mean? That the I7 site Extensions page is completely obsolete?

Moving up one level in Emily’s site, to emshort.com/pl/, I find the same (presumably new, or new-ish) extensions arranged by type, but with no apparent way to download or even access them. I see lozenge-shaped boxes labeled “buttontext,” but these links are broken; they refer to something called “library” rather than providing a URL.

Is the whole extensions scene really this disorganized? Or am I just looking at a bunch of old dead pages and missing the active, regularly updated page?

I think the best place to find extensions other than those in the Public Library is now the Friends of Inform Github repository. (Extensions that are updated for 6L02 should work in 6L38, I think.) Downloading is a bit of a puzzle–when you get to the page where you’re looking at the extension’s source code, right-click on “Raw” and choose “Save as…”.

You might also want to look through this thread for a discussion of which old extensions are compatible with 6L.

This page is headed, “…some may be ready for public use, others may be barely working experiments.” Such a cautionary note does not inspire a great deal of confidence in the robustness of the extensions scene. That page also mentions the Public Library – and the Public Library has, as I mentioned, only six or seven authors’ work and a complete mismatch between Aaron Reed’s extensions there and those on the I7 site.

So is Emily’s page the complete list of extensions that are compatible with 6L38? Or is it only a partial list? If it’s partial, where are the others? And if it’s complete … well, that would be rather discouraging.

I’ll do that. Thanks.

If you’ve heard of an extension from the Github repository, then it’s probably quite stable. That note is just there to say that there are some works in progress as well as abandoned ideas.

Oh, and the I7 extensions site is entirely for 6G60 and earlier, I think. It’s being preserved as is because it would be really annoying to people still working in 6G60 for whatever reason if all those extensions vanished.

–Note that I am not claiming that the extensions scene is not disorganized, at least as far as official support goes.

I’ve heard of nothing. I haven’t been paying attention to I7 for a couple of years now. So for me (or anyone who is coming to Inform for the first time and wants to hit the ground running), a grab bag is sort of a can of worms, if you’ll forgive an only slightly mixed metaphor.

Having nothing better to do this evening, I may try to figure out what’s what. The thread that Matt suggested is ten pages long, and some of the information in it is not likely to be current. But it’s a place to start.

It’s worse than a can of worms, I’m discovering. The word “disorganized” doesn’t quite seem to describe what’s going on.

I downloaded the zip file from the main github page, and unzipped it. In the Emily Short folder I find a grand total of three (3) extensions. On her own site there are 24.

And you tell me that all of the extensions on the I7 site itself are obsolete, and don’t work with the latest release(s)? Yet I don’t see a mention of this crucial fact on the Extensions page of the site.

I do realize that I7 (like everything else in IF World) is supported by unpaid volunteers. I’m not casting blame – I’m just expressing surprise and dismay. How is the aspiring author to come to grips with such a tangle?

This aspiring author is only using any extension(s) that come in the box, so to speak. Probably untenable for people with actual ambitions and/or experience, haha.

Well, there are some good, useful tools in the extensions world. Eric Eve’s conversation handling code, for instance, and his Underside and Hiding Under. Many others too, I’m sure – I just happen to be familiar with Eric’s work.

It’s probably true that when an aspiring author posts a message saying, “How do I do this?”, someone will direct him or her to an appropriate extension. On the other hand, Inform will do quite a lot that’s not at all apparent when you first install it, because it was designed as a “bare-bones” system to which 3rd-party extensions could easily be added.

Writing a text adventure (and yes, I do happen to like the old-fashioned term) is a complex process. I just think it’s a shame that the process is made more intimidating than it needs to be because the tools are not readily available in one central repository. The I7 website was originally intended to include such a repository, but maintaining the repository has, I gather, proven to be an onerous enough task that no one has recently stepped forward to take it on.

This is due in part, I would guess, to the fact that changes in the I7 language itself have rendered some older extensions non-functional in the latest versions. So it’s not simply a matter of gathering the materials in one place and providing download links. In order to actually maintain the library, a librarian would have to test dozens of extensions for compatibility.

Agree. I went online to find an extension which I did find on inform7.com, and downloaded, and it worked fine. Later on, completely by accident, I happen across a newer version of the same plugin in Emily Short’s folder (emshort.com/pl/payloads/).

My feeling is that we need a relatively simple repository of stable plugins, and multiple versions of them if necessary (matched to different versions of Inform). But also I do not know how much work this would involve! The extensions side of inform7.com needs some TLC in the same way that the downloads pages do. I am a web developer by trade and if I can help with any of this, I surely will.

github.com/i7/extensions has 6L38-compatible extensions. It’s not true that it’s just for pre-6L02 extensions.

The Inform website should be updated to point to 6L38-compatible extensions; it is the most recent version and people developing new games should be using the most recent version of Inform.

Ultimately, each extension page should have the most recent version of the extension available for download, along with previous versions if people need them for legacy reasons.

I do not know who is responsible for updating the Inform website. Its source examples are also pre-6L02 while 6L38-compatible versions do exist thanks to Shin.

Part of the confusion is that 6L38 is recent enough that many of the extensions are still in the process of being updated; that’s a normal part of progress. I’ve made three pull requests to github.com/i7/extensions - one of us can take a look and try upgrading it and committing it to the repo.

If I’m looking for a specific extension, what’s the best process to find it…?

For example, I need “Case Management” by Emily Short, but the link on the inform7 website is dead, and I can’t seem to find it in any of the repositories.

Should I put in a request on github?

That’s a good question - I think I was able to find Case Management a week ago when messing with Bronze, but I can’t find it easily now.

This might be besides the point, but I’ve seen indications that you don’t need Case Management anymore post 6L02, because of adaptive text improvements. I haven’t tested that out myself, though.

Here’s a copy of that particular extension: github.com/erkyrath/Inform7-IDE … Management

What’s really odd is that it’s missing from our archive of the i7 extensions site: github.com/i7/archive

Page 20.4 of the Documentation seems to indicate that the functionality of that extension is now built-in. As sometimes happens with the Documentation, you’re given no examples of how to actually perform the case change, but here’s a very silly example that compiles and works properly:

Before eating something: let T be text; let T be the printed name of the noun; say "The "; say T in upper case; say "??? Really???"; continue the action.

I think I said something unclear–what I meant is that inform7.com/write/extensions/ is for pre-6L02 extensions, as far as I know.

Speaking of stuff being outdated, the Recipe Book as packaged into the newest release of I7 still refers to Emily Short’s Plurality extension as a thing, which could be confusing. At least for a few seconds.

What would be necessary for someone to keep an up-to-date extension site?

I’m asking because I may have the pack-rat mentality to do it. There are a lot of sites I visit daily to get the newest IF; if I knew where to go look for the most recent extensions it would be no hardship for me to gather them up.

I do lack the technical know-how, HTML, web-savvy, and all that. All I can offer is the pack-rattyness. If someone can tell me “These are the places where you can look for new extensions”, I have no problem visiting them every day and submitting updates to someone more technical. There’s about 40 sites I load up every day (including webcomics) - what’s a few more?

There aren’t that many places to look, and updates don’t appear to be being released very rapidly.

Right now I’m doing a little research into this whole area, and I might ask you for help at some point. Specifically, I’d like to construct a database (well, actually just a spreadsheet) of all of the extensions. The database would need to include information on which of them have been updated and which haven’t – and that will mean doing some testing.

This morning I noticed that while the Public Library page in the Inform IDE claims that it can download all of the extensions that I don’t have, it doesn’t do this successfully. I happen to know that Patrollers, by Michael Callahan, was used by several people. It may still be popular. It’s still shown on the I7 Extensions page, and seems to have been updated in May of last year, so it may be compatible with 6L38. But I don’t have it installed, and the Public Library page in the IDE is ignorant of that fact.

Setting up a reliable archive of currently compatible extensions would be dead easy – I can put a zip file in my Dropbox public folder. The hard part is figuring out which extensions are currently functional. In the case of popular items that haven’t been updated by the author, it would also be a courtesy to fix the code, if it’s not too difficult to do so, and add the items to the archive.

I’m not promising I’ll take on the job, but I may do so. If I do, having someone else to do a little testing and report their findings would be super.

This is essentially the exact problem that happens with systems that are extension based, unless you count on good and effective community support. Part of the release process for a new Inform should be an acceptance process of existing extensions. Yes, this gets longer the more extensions there are but that’s the price you pay for an extension based system.

On the other hand, consider the Node.js community, with its NPM modules. Or the Ruby community with its numerous gems. Those are both volunteer communities and manage to have (perhaps surprisingly) very little problem, in comparison to Inform, with maintaining consistent and up-to-date extensions.

Even beyond logistical issues, it’s pretty clear that the current situation with Inform is beyond bad. I thought the public library was supposed to make this process dead simple. Instead, it’s just given one more location where some extensions may or may not be. So before too many solutions are proposed and attempts made at databases, it might be good for the Inform developers to just once and for all state the exact desired interface for how extensions should work. Then people can design to that interface, rather than relying on external databases, GitHub repos, and so on.

I think more community involvement can happen if there’s a clearer idea of what will be broadly accepted. Requirements first; solution second.