IF toolsets, in general

The Oxford/London meetup group is doing a session on IF tools on Sunday, which got me thinking generally about tools and projects I wish I could take on that aren’t really supported by existing options.

I asked this on my blog (so feel free to comment there if you’d prefer) but I thought I’d ask the somewhat different audience here too:

What do you wish you had an IF tool to do? What are you longing to write if only you had the right toolset to do it?

I can only say this from the context of an Inform programmer in general, and I’m looking mostly from a parser-game standpoint. And I may have a gross misunderstanding of what you mean by “tools.”

I would like a tool that would be able to see all subjects you can talk about with a person, or (with all the people in the game) about a subject. This may be a trivial extension to Juhana’s Object Response Tests–I don’t know. But I want to put more interactive dialogue in my games & it’s always a hassle to ASK X ABOUT THING 1 … ASK X ABOUT THING 17 & even just planning this is intimidating.

This may be covered in some other Inform testing modules, too, but I wasn’t Inform-literate/persistent enough to wangle it. I’ve had to homebrew it for my games, which isn’t too bad in I7, but it’s one more hoop to jump through.

However, I think this would generally be good for any work where you have a lot to ask about, or with any programming system.

I think it’d be nice to be able to have a dashboard on top with a list of popular often-used verbs. You could tab through them and maybe even make them customizable, or maybe use F1-F12. They would put words on the parser command line. You could maybe even have a separate window for popular nouns. I am thinking of something like what Quest has, only a bit more in-depth. Stuff like maybe mapping the numpad to custom directions would be nice, too. E.g. 3 would send the NE(enter) keystrokes.

I have no clue if this is remotely practical or doable for Inform, or for having Windows/Mac/iPhone compatibility, but I hope it at least spurs ideas.

Obviously Twine lets you tab through options (and it’d be awesome if Twine could allow for this in separate windows in the future, or if it already does,) but I think having a separate window of common verbs would be convenient for old-time players and also let new players know what is most useful.

While I’m a huge fan of the parser, I’m starting to recognize having some middle ground between point-and-click and the parser so people can use both as needed.

I would like to see Inform 7 be able to extend its data lookups to an external database.

So instead of Table of Conversations defined with 20 columns and 500 rows, we could manage that externally.

It could also allow for more complicated data structures.

David C.

Hm. You’re allowed to read in tables in external files (documented at “Writing and reading tables to external files” ), so presumably you could read such a file in and then use it within the game. If what you wanted was instead to be sending queries from Inform to an external script that would then do all the database lookup itself and then return the results (maybe useful for performance if this were a truly enormous DB?), then presumably external files could also do that, assuming you were running the game in some context where the external script was hooked up. The chapter “Exchanging files with other programs” gets into that.

Or am I not understanding what you’re describing?

Let’s go back a step and forget that the Table feature in I7 even exists.

Now imagine constructing the requirements for a complex sub-system like conversation. If you were to do this without the constraints of I7’s data-management capabilities, you may come up with solutions like a document database (MongoDB) or a relational databse (SQLite). These solutions may support much more complex queries and results as well as more easily handling the types of variations used in choice-based games and probably what you were used to within Versu. The implementation might look similar to the way we tie I7 to I6 although instead of an I6 function, it would be some specialized function to talk to an external system (database, web service, or anything). Then using the encapsulating I7 command, we might be able to provide more complexity than I7 or I6 can (elegantly) handle.

The tool that the spanish community is dying for is a “Mechanism” to facilitate the translation of games or the IDE itself along with the Inform understanding of spanish sentences in order to create games, not only the parser.

Did I mention is a “dying for” tool? :slight_smile: