Long lost

After ages away from the community I have returned to find the tools available to the community have dramatically changed. I downloaded what is apparently the current version of Inform 7 but find it unsatisfying.

I was looking at Twine, but when I tried putting effort into it, it’s like it’s designed to create a static story that doesn’t have real support for NPCs, conversations, or objects.

I was just now looking at the tutorial for Quest. Is Quest any good? I’ve never tried it before. I’d like a system that lets me create a game that supports NPCs that can have descriptions and potentially their own inventory, and I can have a resulting game run in a web browser.

And I’d like to do those things without jumping through a bunch of workarounds.


What in particular do you find unsatisfying about Inform 7? That’ll help us give you better answers.


I noticed you picked two very different categories of IF—parser (Inform) and choice (Twine, Quest). Do you have a preference? These two are essentially different genres/mediums, so knowing the difference is crucial.

I don’t have a ton of experience in any of these (I know some I7) but I think it will take some effort in all of them to create NPCs with their own inventories. Custom descriptions are easy in all three though. Again, I’m not the best source for this, but this is based on what I’ve seen from other games made with those systems.

If you want objects in particular, Inform 7 and other parser systems (e.g. Inform 6, TADS) will be more effective, simply because parser games are better-suited to object-based games. NPCs and conversations can and have been implemented in parser IF, so see if that’s something you’re interested in.

In choice systems, conversations are usually dialogue trees, with a prompt and some options with varying results. In parsers, conversations are usually one or a combination of:

  • a dialogue tree (like choice)
  • a TALK TO command (TALK TO ALEX will automatically give whatever relevant information you need)
  • HELLO, ALEX (sometimes gives too much illusion of free choice)
  • SHOW/GIVE MOUSE TO ALEX (for quests, etc, or just getting reactions/responses)
  • ASK ALEX ABOUT MOUSE/TELL ALEX ABOUT MOUSE (similar to above; can extend to non-carriable things like people or ideas)

I think one of the things I don’t like in choice-based systems is there’s no mystery to it. You just click on options on your screen.


You used to write games in ADRIFT. There’s no reason why you can’t still write games in ADRIFT. It’s now up to version 5 and there’s a small, but devoted, ADRIFT community that are still writing good ADRIFT games. (I’m testing one now.)

The other major alternatives are Adventuron, Inform 6 using the standard library and compiled to Glulx (if you want graphics and sound), Inform 6 using the PunyInform library and compiled to Z-code (if you’re happy with text only or want to target retro platforms) and TADS 3.


I’d add Dialog to that list, but it’s a distinctly different programming style than the others.


Welcome back to the scene!

If you’re interested in choice-based systems but that issue of there not being “mystery” is a sticking point, it’s maybe worth noting that there have been lots of recent games that take different approaches to this question, including using stat tracking to alter the choices presented to a player (either visibly or invisibly), or using parser-like interfaces where interactions are routed through things like inventory or ability systems, kind of like old point-and-click graphic adventures, such that possible puzzle solutions aren’t obvious.

If you are just interested in parser systems, Garry’s list (plus Dialog, per Daniel), seems right to me – and all of them will have an easy time with characters, inventories, etc. Adventuron works natively with web browsers, though has a slightly weaker parser out of the box; my impression is that Quest in that boat too (there was a QuestJS game in the Comp like three years ago that was very high-quality, but I haven’t seen many since, and since I think they’re generally hosted at textadventures.co.uk, I’ve frequently run into connectivity and performance issues). The Inform 6 options can, I believe, easily be embedded in a web-based interpreter. TADS, meanwhile, has a lot of cool features but some of the bells and whistles don’t work well in web-based interpreters, so depending on what you’re looking to do, that might be a barrier.


So Inform has a world model, including NPCs and objects and inventories. Conversations are do-able and have extensions and best practices, and common methodologies but aren’t built in.

Twine does not include a world model, though they can be done.

Quest does choice or parser which is built out with a little more user UI with a map and drop down menus for objects and buttons and exits, a bit like Legend. My only issue is non-browser creator is PC only, and the browser versions of published games have lag issues, at least for me on Mac. They also have a minimal choice engine called Squiffy which is neat.

Look at Borogove to see Vorple and Dialog and other variations without having to install them.

Written Realms is an online MOG with Game-book and RPG systems.


I did start in Adrift, and later moved to Inform 7. I was recently perturbed that my old inform efforts no longer compile, but I suspect if I made an effort to track down extensions I used I might be able to fix that.

Adrift I didn’t like because I had issues with it crashing, and since it’s basically a database it can have proprietary issues. That’s why I moved to inform. At the time I tried some similar products like Alan.


I also took a long trip through various parser-based systems, then my own choice-based and hybrid systems, before settling on Twine. But when I returned to the parser-based world for one game a few years ago, I just went with Inform 6, to great effect. It’s a much more stable language than its successor, very mature, and gives excellent results when used as intended.

Quest is also popular, and has been used to make a few gems, but it’s different from others, and mostly has its own separate community, whose members can enlighten you better.


It is, but the Inform 7 manual has instructions on embedding Inform 6 code if you want to do something at a lower level. Or if you have say, a library that does something special and you don’t want to convert it.

Basically, in an Inform 7 game, anything within (- and -) is ignored by Inform 7 specifically and compiled as Inform 6 code.

So you could write a game learning Inform 7, and if you wanted specific things done in Inform 6, it’s easy to do that.


If you mean “does it have a world model like a parser” you’re correct, it doesn’t out of the box or without great effort. But if you equate that to static stories, that’s plain wrong. Twine has robust state tracking and capabilities for extreme branching, different versions of the same passages based on variables or other dynamic elements, and so on.