Various world models in IF

Another question from the tweetzone: "What are the significant differences for object/rooms + hypertext/choice vs parser + web?"

Here's (more of) that strand(s) of conversation:

I want tools to create a hypertext based game that still has a room and object model for the engine. Any suggestions? (@KalevTait)

I've done it (in Glulx) but the game design space is poorly understood. (As compared to parser+object model.) (@zarfeblong)

this just means it needs more research (@emshort)

What are the significant differences for object/rooms + hypertext/choice vs parser + web? Maybe I’ve misunderstood. (@jurieongames)

Emily's further responses:

parser + web = you still type. world model + choice = you're selecting what to do from options based on model (@emshort)

Oh, and I guess choice-based games tend to come from a CYOA, paragraph-based design approach? (@jurieongames)

often. even if they don't, enumerating all the options that would exist with a parser gives you a too-long list (@emshort)

so you need then to build a hierarchical interface or else have a smaller tighter verb set, for instance (@emshort)

I agree with Emily here (as usual), but I want to back up and talk about ways I've approach IF design.

Parser IF is a well-explored field, which started with Adventure and expanded through generations of... Adventure imitators. That's not a criticism, that's history. The MIT gang tried to make another game like Adventure; so did Scott Adams, albeit with more limited resources; so did other groups. Then in the 90s, many hobbyists tried to make more games like the Infocom set (etc), and built tools to accomplish that. What rooms are, what objects are, what the world model is, what interactions mean -- all go back to Adventure in a very direct line. I'll assert that 75% of the game mechanics in today's parser IF can be found in Adventure... in rudimentary form, sure, but present. And 75% of the rest can be found in Zork.

That's the form I grew up playing, and then writing. Not the only form, but the closest to my heart. But -- when I build a different kind of game, I'm not trying to approximate parser IF in a different-shaped bottle.


Like I said up top, I've created a hypertext game with a room and object model. That's Bigger Than You Think, a game that I wrote for the 2012 Yuletide fanfic exchange. This has a hybrid UI: you can click on links or type (single) words at a command prompt. It has rooms and an inventory.

(I'm going to assume that you've played BTYT, at least a little bit. If you haven't, hit the link and flip through a few moves.)

BTYT is not a parser game turned hyperlinky. I didn't design it that way and the underlying assumptions don't match the Adventure model. It's much more like a CYOA game-book with added inventory features.

Let's look at rooms. BTYT seems to offer a classic Adventure-style layout: each "page" is a location, and you have a choice of exits, each of which leads to a new location.

You'll quickly notice, however, that there's never a choice to "go back where you came from". Nor is there a sense of stopping to take action in a given location. A page is really an event, part of the story of an exploration into a cave. (The narration of the event includes entering and looking around.) You are always moving towards an endpoint; you cannot explore at will, except by using the "start over" option.

So the model is really The Cave of Time, the first of the "Choose Your Own Adventure" gamebook series. That book offered the notion that each page was a physical location in a cave -- but it didn't really stick to it, because pages in a book just don't represent Adventure rooms very well. Pages want to be sequenced events. (Later books in the series entirely discarded the idea of representing a physical maze. Our common notion of "CYOA game" is all about branching events, not branching tunnels.)

What about inventory? If you poke down certain branches of BTYT, you can find some objects to take -- a crowbar, a rope; "medium-sized dry goods" in the Adventure vein. But again, these are not manipulable objects in an Adventure-style world model. You can't put them down or try different actions with each one. Instead, they become an extra set of CYOA-style options -- available to try in each scene, until you find the right situation for each one.

(Note that the game header lists the current movement choices on the left, and the current inventory choices on the right.)

Paper gamebooks can't easily offer an inventory in this way. It's the experimental facet of BTYT. But it's not an Adventure-style inventory. I designed it to fit in with the CYOA model; it's what a gamebook choice-list would look like if it could be dynamic.


Seltani takes yet a third approach. Seltani is a hypertext environment inspired by Myst Online. The Myst games tend towards richly detailed environments but a sparse inventory system. You are expected to spend your time exploring the world, and then manipulating pieces of it "in place". You don't typically apply arbitrary tools to arbitrary targets.

Therefore, I wanted to create a choice-based system in which nodes are typically locations. You'll stop in a location to examine many of its parts, and perhaps pull some levers or turn some knobs. This required a multi-window UI: an environment window which describes what's around you, a detail window which describes the particular item you're paying attention to, and a history window in which events (and environmental changes) scroll by.

Note that this is different from the Adventure UI, where everything happens in a "history window". In parser IF, looking and examining are actions -- the response is a description at that moment. If you LOOK twice in a row, the world may have changed. Seltani's descriptive windows, in contrast, are always current.

(Some parser IF has tried permanent LOOK or INVENTORY panes. The Scott Adams games of the early 80s worked this way, for example; Beyond Zork also offered such a mode. However, these experiments have not caught on in the parser-IF community.)

Seltani has something like a world model, although it's very flat. It's got worlds, locations within a world, and that's about it. The built-in infrastructure is mostly about the portals between worlds rather than world contents.

Significantly, Seltani doesn't have objects or an inventory system. Why not? Well, say it did. What would you do with objects? "Actions" in this UI are hyperlinks which either examine or manipulate the world. If you carried a sword from the Living Room to the Kitchen, and a "sword" hyperlink were (somewhere) available, you could reasonably expect to examine the sword. But that's all! There's no way to express dropping the sword or smashing a window with it.

I avoided this problem in BTYT by discarding the idea of "examine". In that game, a "sword" hyperlink always means "take the sword" (when you first discover it) or "use the sword on something here" (if you're carrying it). I restricted the design to have at most one whackable target per location -- and you never drop anything except in its final use-location. Furthermore, BTYT is made of simple objects which do not require close inspection. So a single-link inventory works okay. But Myst games are full of detail; the BTYT model would never have worked for Seltani.

This is not to say the Seltani model can't be extended that way. The engine supports an extra "world pane" which remains visible throughout a world. The world designer could put an inventory list there. (Or, equivalently, tag an inventory list onto every location description in the world.) You'd have to decide what it meant to click on an inventory link in each location -- essentially inventing your own world model.

What you can't do is carry "objects" from one world to another. Seltani assumes that worlds are independent. It's hard enough rigging up one Age without figuring out how to respond to artifacts from every other Age!

(No, worlds aren't necessarily independent. You can build two Ages which are interconnected and share data. But that gets beyond this scope of this post.)

I should also note that the Seltani model can be extended in the other direction, too. You can build CYOA-style (or Twine-style) worlds, where nodes are treated as events rather than locations. To do this, you have to avoid relying on the event window. You also have to also lock out Seltani's multiplayer features, since a group of chatting players are implicitly presenting events in a location.


I've talked about two of my choice-based game designs, and how I try to craft each one so that the game and the UI match up.

One sometimes sees attempts at "hybrid" UIs -- trying to present a text game with both command-line and menu-based interfaces. You won't be surprised to hear that I have no patience for such experiments. I'd ask myself: does the game's experience depend on the parser interface? If it does, it's required! And if not, get rid of it! -- it's a waste of your time and the player's.

(But what about BTYT? I'll tell you straight up: the command-line interface on that game adds nothing. I should have gotten rid of it. I left it in to support MUD play via ClubFloyd, which is a very minor use case -- it should not have influenced me.) (Anyhow, the right approach would be to update Floyd to support hyperlink input. The RemGlk library makes this possible.)

The same goes for attempts to "port" parser games to a choice-based UI. I have nothing against remakes of a game. (Coloratura, for one example, is a parser game that was remade by the author in Twine.) But this is a design process, akin to translating a book into a movie or vice versa. You can't slap a new UI system onto a game and expect it to be "the same game but now accessible to more people".


I intended to wrap this post up by responding to Jon Ingold's post: Parser as Prototype: why choice-based games are more interesting.

My reaction is "how fundamentally wrong-headed". But if I try to support that, I will need so many qualifiers that I'll fly into the weeds and sink. I mean:

  • The post is from a year and a half ago, which is decades in Internet Time
  • Jon recently commented "Def not talking about approximating a parser game. Rather, parser was a step one to being able to design choice games this way" (@joningold)
  • Jon's design process is his process and I'm not going to step on it
  • The post is about the Sorcery! game series, and I haven't even played those
  • I don't assert that parser IF is some golden standard which other models need to approximate (much less measure up to)

So there's no fundamental disagreement -- rather, I think the post is weirdly framed to make an apology which doesn't need to be made.

I have played a lot of 80 Days. I can confidently say that it's not an approximation of a parser game. 80 Days is its own kind of IF, and its interface fits it very well. It doesn't have a "world model" in the sense of a space to manipulate objects. Its world model is, you know, a model of the world -- big and round and covered with cities -- and your inventory is meaningful in the space of planning your trip.

Note the word "planning". Much of the gameplay of 80 Days involves collecting, buying, or selling objects. But they are not used in the way that, say, Hadean Lands uses objects -- as mysteries whose places in the world come as crucial discoveries. Rather, their value is cumulative and largely predictable. When you buy a didjeridoo, you know where it's most profitable to sell it. If you miss that stop, well, you can probably sell it elsewhere -- and there are other ways to get cash anyhow. Other objects act as bonuses in the mini-game of learning new routes; but again, there are lots of ways to learn routes, and your piece of shortbread is never going to spell the difference between success and failure.


While I was finishing this post, the XYZZY Award finalists were announced. As it happens, Hadean Lands and 80 Days were each nominated for five awards.

It would be meretricious to explain that this will be settled by battle royale of alchemical Kaiju versus Victorian steam-mecha, as piloted by myself and Meg Jayanth. Mostly because With Those We Love Alive was nominated for eight awards, so you have to amend the battle with Porpentine and Brenda Neotenomie drawing mystical runes all over both of us, which makes it all confusing and hard to film.

I will instead wish good fortune to all the nominees, including the above-mentioned and also Kevin Gold, Sean M. Shore, A.D. Jansen, michael lutz, kaleidofish, Sam Ashwell, Steph Cherrywell, Emily Short, Lynnea Glasser, C.E.J. Pacian, Jason Dyer, Ade McT, Carolyn VanEseltine, Simon Christiansen, Mæja Stefánsson, Graham Nelson, Juhana Leinonen, Jim Munroe, Chris Klimas, Nicky Case, Kateri -- whew! I hope I didn't screw that list up.

This entry was posted in Uncategorized and tagged  , , , , , , , , , , , . Bookmark the permalink.

3 Responses to Various world models in IF

  1. namaleas, ne wif ne wer says:

    Something I don't see brought up as often is the hm, physical/sensorial differences between prototypical hyperlink-based vs. prototypical parser-based IF. Not the history or the system or the concept or the high-level design or whatever, but the nitty gritty details of typing words on a keyboard vs. moving and clicking a mouse to access links, seeing the actions-taken and corresponding results recorded verbatim on the screen vs. seeing a new screen for each result and no record of actions-taken.

    Regarding inventory and examining: I have often found it very tiresome to examine objects in Twine games. Now I am wondering how much that is due to what I assumed was a purely mechanical matter (having to click some kind of link to return to the rest of the story after examining) and how much is due to the fact that examining lots of objects is just not the best use of choice-based IF? Not mutually exclusive, obv.

    • Andrew Plotkin says:

      That "nitty gritty" stuff is harder to parse out than it looks. Both parser IF and hypertext can be presented in various functionally-equivalent ways. On a tablet, there is neither mouse nor keyboard; so hyperlinks have less friction (direct finger tap) whereas text input has more (virtual keyboard).

      Similarly, the question of whether the screen is cleared after each player input is theoretically up to the author in both forms. Parser IF conventionally doesn't; for choice-based systems it's less settled. (See Emily Short's recent post on Seltani, which raises the idea of an alternate scrolling UI for Seltani.)

      • namaleas, ne wif ne wer says:

        Oh certainly. SutW modified the text in-place much like some Twine games do, right? And I recently* played at least one hyperlink-based game that kept previous text -- no record of previous actions, but I'm sure it wouldn't be too complicated to wrangle that kind of display if you are already keeping previous text. And the differences in physical interaction on mobile devices are interesting to think about as well -- not just as a practical matter of how to best adapt games to the hottest new technology or some such, but also re-examining elements of the older experience in that new light.

        Anyway, it remains that most parser IF presents a certain sensorial experience, and most hyperlink IF an overlapping but different one, to the point where straying from the prototypical is something to comment on. But it's exactly because it isn't fixed and is strongly associated that makes it something to be poked and played with, isn't it?


        *for a given value of "recent"...

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>