Do you use the word "it" when playing IF adventure games?

Pronouns are a nuisance. I use Plurality because many of my objects turn out to be ambiguously plural. Fact is, at The 700th Object you start losing your will to test everything.

I rarely use pronouns when playing. Only while testing.

Here’s a peripheral question. Back in the I6 era, Inform developed the habit of setting pronouns every time you do “look” or “inventory” – “it” becomes the last item listed. I never liked this and hacked it out of some of my games (but not all of them).

The “standard” (i.e. 1980s) convention is for “it” to refer to the last thing the player typed, not the last thing the game referred to. What do people think of this change? Are you even aware of it?

I certainly am. And I much prefer the standard convention.

I did notice that in I7 that secondary setting of pronouns (last thing listed) is optional and can still be used. I find it a hindrance, and it would be more useful if the PLAYER rather than the AUTHOR could toggle it (much like verbose/brief).

Mind you, when Inform first started doing it, it was a cool feature. We’ve just learned from experience (well, some of us) that it hinders more than it helps.

Manual pronouns all the way.

Silly bug I just found when looking at the Plurality extension. With manual pronouns off, try “EXAMINE FLOWERS. EXAMINE TICKET. PRONOUNS. X IT” (says that “it” refers to the ticket, then has “x it” examine the flowers.)
Or “EXAMINE FLOWERS. X PAPERS. X THEM. PRONOUNS.” (“x them” meant the papers, but pronouns said “them” mean the flowers.)

They’re both caused by “pronouns” changing the values while it’s working.

Yeah? How? I can’t find it, and I’m looking at the library source code.

(I thought it was in there too. Maybe it went away in the past couple of releases?)

…Okay, this is more convoluted than I thought. I7 dropped the “use inventory to set pronouns” rule in 6E59. It retains the “set pronouns from items in room descriptions” rule, and a subsidiary bit of code that fires when doing one of those show-contents-of-a-supporter-in-the-room-description lists. Neither is conditional.

EDIT-ADD: I see an “ifdef MANUAL_PRONOUNS” in the PronounNoticeHeldObjects() function. But this function is deprecated, and nothing calls it. I imagine it was the utility behind the “use inventory to set pronouns” rule, which no longer exists.

Funny this should come up, it’s been discussed quite a few times. I find that they can be useful especially when there a object with long names. I go by the principle that if an object name has more than 6 letters in it the it needs a shorter synonym. These posts might be of interest.

You can set pronouns manually with this code.

To set the/-- pronoun it to (O - an object): (- SetPronoun('it',{O}); -). To set the/-- pronoun him to (O - an object): (- SetPronoun('him',{O}); -). To set the/-- pronoun her to (O - an object): (- SetPronoun('her',{O}); -). To set the/-- pronoun them to (O - an object): (- SetPronoun('them',{O}); -).

Then you can use this.

set the it pronoun to (the item); set the him pronoun to (the item); set the her pronoun to (the item); set the them pronoun to (the item);

“Manual pronouns” here refers to what I called the “standard” or Infocom-era model – pronouns are auto-set when the player types the name of an object, but not when the game lists objects.

(The I6 switch for this mode was called “MANUAL_PRONOUNS”.)

I did some testing, and found that objects listed in room descriptions grab pronouns, whether “use manual pronouns” is on or off.

An ambiguously plural object will grab the pronouns any time its name is printed, if the manual pronouns is off.

(There is a mention of “if using the manual pronouns option” in Plurality.)

Fix: Add the line “The set pronouns from items in room descriptions rule is not listed in any rulebook.”

“Use manual pronouns” has no effect at all, by default. (It is defined in the Plurality extension, and it probably should have been removed back in 6E59. It only affects the behavior of a deprecated phrase which is no longer invoked by the library.)

Scenery supporters with contents will still set pronouns. Fixing that requires an uglier hack.

“Use manual pronouns” also affects the behavior of ambiguously-plural objects.

After printing the name of an ambiguously plural thing (called the suspect) (this is the notice plurality of printed ambiguous object rule): if the manual pronouns option is active: do nothing; otherwise: notice the plurality of the suspect.

Indeed. I should have looked harder at the Plurality source code.

This is all a confusing mess and I’ll file a bug report at some point on cleaning it up.

ADRIFT only sets pronouns from the user input. However, I think there are times when you would want to extract from the output, although I think this would be in the minority of cases.

put coin in slot
You put the coin in the slot. The machine clunks, and a can of soda appears below.
get it

Actually, I’ve often WANTED to do something like that (as a player). I just never did because I knew it wasn’t implemented.

In that scenario, it would make perfect sense to set the “it” pronoun to the object that has just appeared. The thought occurs that, in I7, you could simply do a function that’d move an object into play AND set its pronoun… the thought also occurs that maybe I7 could try to do this automatically whenever something is moved to the room where the player currently is. But I don’t like the idea of I7 trying to do it automatically. Too much margin for error.

I don’t feel a need for “it” to cover the vending-machine case.

The one case that should be covered is when you swap one object for another, but they’re the same thing as far as the player is concerned. If you ATTACK RUST MONSTER WITH SWORD, and the game removes the “sword” from play and substitutes “rusty stump”, the pronoun should be switched to the new version. But the library will never be able to automate this; it’s just something the author has to keep in mind.

As a player, I use pronouns. As an author, I think it’s something that all authors should be aware of.

As far as the Hugo language is concerned, it emulates Inform by setting pronouns to objects or last-items-mentioned-in-a-room-description. Finessing pronoun behavior is a bit more hack-y than I’d like, but I have a page explaining how to do the important stuff here:

I don’t like this when a list of auto-generated text (inventory, local items, etc) includes multiple items; choosing the last thing to be it/them/him/her feels too arbitrary. If it’s a list of 1, though, the behavior is more understandable.

The player-set option sometimes makes sense, but can become silly when many objectless (or plural-object-less, or her-less, or him-less) commands intervene:


Carved into a slight recess in the stone wall, the face bears an uncanny resemblance to the late Preliminary-Sub-Minister of Wicksburg.




Silent Passage


Base of the Column

A single silver coin lies on the floor.


You can’t see ‘it’ (the grotesque) at the moment.[/code]

Agreed on the second scenario, but the vending machine is trickier. I’m sympathetic to arguments both ways.

One case where I believe automatically setting pronouns is warranted is when something extremely notable has happened in the surroundings:

[code]> GET BALL


A huge jet engine crashes through the ceiling, embedding itself halfway in the floor not a foot from your feet!


A simple red rubber ball.[/code]The tone mismatch from a wrong guess in cases like this can become unintentionally absurd.

I feel – and I haven’t actually tried this out in a real project, yet – that it might be a good idea to set up a few simple rules governing pronoun default behavior.

[code]1. If a given pronoun is unset: any player’s command, or auto-generated list, (or room/thing description with [highlighted] nouns, ) featuring exactly one such relevant thing, sets that pronoun from that noun.

EX: > GET KEY AND LEAVES would set pronouns 'it' from the key and 'them' from the leaves.
  1. If there are two or more such relevant things, instead, the pronoun remains unset. If the player references an unset pronoun, the parser should disambiguate.

    EX: You can see a coin and a tiny wicker doll here.

    GET IT
    What do you mean by “it”, exactly?

  2. When any thing referenced by a pronoun passes out of scope, that pronoun becomes unset.[/code]This unsetting rule, combined with the pronoun-setting rules, should handle a lot of common scenarios; it’s plausible for the player to want to fiddle with a worn or carried item in multiple rooms, for example, but probably not the 20 foot jade statue of an elephant.

ChrisC: What do you think of:



A huge jet engine crashes through the ceiling, embedding itself halfway in the floor not a foot from your feet!

Now, in this situation, I would be pretty annoyed if it chose to examine the jet engine. At the time I typed “it”, that word clearly referred to the ball.

Other silly edge cases:

Those are great cases, ralphmerridew. Here’s another one, maybe:

I agree with ChrisC’s judgment on most of the cases (except that I absolutely would want “it” to cover the vending machine case), except for automatically unsetting the pronoun when the object passes out of scope – it seems to me that sometimes you want to know that whatever it is has disappeared. Consider:

Of course, a lot of the behavior we’re talking about – especially disambiguating the pronouns when there’s more than one sensible thing for them to refer to, which I really like – would require a lot of programming.

The jet engine case seems like it’s really designed for custom pronoun-setting like Pot of Petunias – in fact it’s pretty much the same example, except with a jet engine instead of a pot of petunias. The response to “GET BALL. X IT” might be kind of annoying, but in ideal world I’d want my chain of commands to be cut off there.


You can see a coin and a tiny wicker doll inside the chest.
What do you mean by “it”, exactly?

This is frustrating, and it does not get better if you treat single-object lists differently:

You can see a tiny wicker doll inside the chest.
You can’t reach the tiny wicker doll, because the chest is closed.

(In fact, the I7 library would typically render this last response as “The chest isn’t open.” Bug reports would fly.)

Or, e.g.:

“What gold?”
“My brother’s name is John.”
You don’t see John here.

I’m not saying that there aren’t cases where auto-setting pronouns doesn’t make intuitive sense; there are plenty. But there are two competing goals here: generating a smooth-reading stream of text, and giving the player a way to enter abbreviated commands with confidence. That last (Steve) case can’t be understood without considering the many games in which I have repeatedly typed [up-arrow] [delete last word] [guess new topic] [enter].