Coders, how would you implement a tool to automap as you play i-f?

About 10 years ago, I put together a GUI for developing TADS i-f. Here it is, on the Way Back Machine.

Alas, like so many, it hit 95% complete, then fell by the wayside.

However, I am thinking of using some of the same functionality in a new app.

Basically, I want to save paper. As you explore, the app will draw what you know of the map, and passages between rooms. As you see items, it will add them to the map, take them, it will move them to inventory, drop them, it will add them back to the map.

Question #1: would such an app be useful, or do we prefer to write on paper?

Question #2: if so, does it already exist? I searched for it, but can’t find it.

Question #3: the biggy - how would you implement it? I see three possibilities.

  1. fork the TADS code

  2. ask the TADS developer to add hooks for utilities or plugins

  3. just tune the interpreter as-is and parse its output. This has the advantage of working with other systems, not just TADS, and the disadvantage of having to guess every synonym for “look” , plus “drop/discard/throw/chuck/eject/etc”

In broad terms, is the idea worth it, and how would you go about it?

3 Likes

The most popular mapper for IF is trizbort. It doesn’t do any game interaction like you describe, but it works with pretty much any IF interpreter because it gets its mapping data from the transcript files.

It comes in two flavors.
Offline: https://www.trizbort.com/
Online: http://trizbort.io/

3 Likes

The problem with Trizbort is that it’s written in C# and therefore only works on Windows. I have been using a tool called IFmapper, but that one is buggy and not really maintained any more. I would really love to see a reliable automapping tool that I could use on Linux.

3 Likes

You may want to check Strandgame’s Interactive Fiction Interface. It’s a GUI that can communicate with a backend engine through json messages. I’ve used it with XVAN to create a graphical user interface for XVAN. It also does draw the map, based on json messages sent after every turn. It’s available on Windows Linux and MacOS.

You do need to build json capabilities in your interpreter, though. I wrote mine in C.

2 Likes

Has anyone tried porting it with mono? I haven’t messed with mono too much, so I’m not sure how much extra work that would entail, but isn’t that the reason mono exists?

I have been successfully running trizbort on macos using wine, so it should work as well on linux.
It works only after installing dotnet with “winetricks dotnet46”

3 Likes

Woah, I just got Trizbort (1.5.9.9) running in Linux for the first time since about 2017. (That’s Linux Mint 20, for me.)

Previously, installing dotnet 4.x failed, even through Winetricks. Now it seems to be working again.

I have never used it, and it isn’t for TADS, but https://github.com/dschwen/jszip has “automapping” support, see https://github.com/dschwen/jszip#automapping

Effectively, that is what I am thinking of - plus much, much more, as I don’t want to have to code an interpreter.

I can see how one could use a mapping tool to replace paper, as the others have mentioned, but that misses the “auto” part of auto-mapping, which I think would be a fun coding exercise.

If no one else has a TADS/cross language suggestion, then I might well go with suggestion #3 in my original question and intercept the output of command line interpreters, although I can foresee problems with that.

1 Like

trizbort.io is implemented in JavaScript, but it doesn’t have the transcript parsing feature.