Integrating Inform 7 within a larger game

As far as I can tell, Inform 7 is largely used to produce parser IF games, interacted with primarily thru a text based interface. Tools like Vorple seem to allow users to customize the interface’s style (and occasionally behavior) but the primary interaction method seems to still be text.

Contrast this with tools like Ink, which has a base interaction mechanism (you can export Ink stories to webpages that use a simple JS interface to display text and make choices) but is often used within other game systems to power games with extensive visual components (see Heaven’s Vault and other games from inkle studios.)

Is there prior art for something like this with Inform 7?

Worldsmith is the Inform-powered game with the most effects/interesting UI I’ve seen. The main interaction is still text.

Inform is a pretty powerful hammer for a system that doesn’t use text input. I could see it being used for text input with primarily graphical results, but I haven’t seen anything like that.

1 Like

Yeah. Most of what’s in I7 is the text parser. So using it for non-parser games is awkward. You can do it, but it’s not necessarily better than using Ink to begin with.

Graham has talked about separating out the parser, the world model, and the rule-based language into more modular components. That would make it easier to do this sort of thing – I7 as a rule-based engine driving other kinds of games. The next I7 release may demonstrate this.

(Required footnote: No release date has been announced for that.)

2 Likes

I asked a similar question back in August - Z-Machine Tools as Future Narrative Middleware? (for reference purposes).

2 Likes

I have toyed with Fungus along with Unity. It is interesting and may give you some ideas to move forward with.

Wow, this is all super helpful! I’m definitely interested in both how Inform can be used both via a text interface (I think this is very feasible, for examples of how this is done with Ink, check out this talk from Inkle Studios about the making of Heaven’s Vault) but also thru separating the world model as you mention @zarf.

I don’t have a great understanding of how Inform translates your Inform 7 source code into something the Glulx VM can run… I get the impression that it’s not possible to query the running VM for the “state” of in-game “items” / rules? At least not without an approach like @vaporware mentioned in Bill’s thread?

It’s possible, but it requires some fussy byte decoding; it relies on the gameinfo.dbg file generated during compilation. The Vorple approach, where the game writes out important state info to a file, is easier to manage.

4 Likes

It’s worth checking out Re: Dragon for an example of using Vorple to entirely replace the standard interface.

In the clunky but feasible department, one could run an interpreter compiled with RemGlk as an independent process and have something with a completely different UI face the user. It could translate whatever the real user input is into commands passed to the I7 game. Beyond the conventional game output, you could output arbitrary state information every turn (or as requested by out-of-world actions) to be consumed and processed by the wrapper application.

2 Likes

This was cool, thanks!

When you mention this, do you propose that I run a modified version of RemGlk that outputs said state information, or I write an I7 extension that outputs state information over the existing text stream (or virtual FS, as in Vorple) as I’ve been doing in this thread?

I was thinking the latter.

1 Like