Game not disambiguating

I finally figured out the problem.

To recap: the problem is that when holding paper A, the game wasn’t allowing the player to take paper B (which isn’t takable, but I want them to try), and was always choosing the carried paper as the subject of TAKE.

The problem is that paper B is undescribed. Making it scenery also causes this problem. I suppose that since scenery is not takable, the game is disambiguating to the carried paper. Weirdly, making it undescribed also causes this behavior.

Is there any way around this?

1 Like

You can omit it from the room description without making it scenery/undescribed. This has been how I hide stuff. It would be worth checking.

Rule for printing a locale paragraph about the Paper B:
set the locale priority of Paper B to 0.

doesn’t interfere with disambiguation stuff either, i.e.

>l
room1

>take
(the box)
Taken.

>

If this is a bad solution, nobody’s told me yet!

3 Likes

AHAAHAHA. Drew, you’re a genius. I never knew about this. Gonna read up on that.

This works like a charm. Thanks a million. Wow, has this been bugging me.

2 Likes

Aha! That’s what I was forgetting! Undescribed is the I7 equivalent of I6 concealed. I forgot that it was exposed to the author like that; I thought it was only used by the library.

So yes, the disambiguator will avoid scenery (-10 points) and undescribed things (-100 points) if it can. The latter has such a strong penalty because, in the library, concealed is only ever used on the player (the flag is set on any object that the player becomes, and unset if the player becomes someone else) and the player is usually a bad guess if there’s any other choice available. If there’s the player and one non-player person in a room, for example, verbs that require a person should default to the other guy.

DTPM rules should effectively override this, since they give a bonus between 1000 and 4000 points, but they’re also a pain to make work.

If you use other methods to make it not appear in room descriptions, like Drew suggests, that won’t have any impact on the disambiguator.

3 Likes

I’m just trying to understand the original scenario. If you want them to try to take paper B, presumably they’ve got a reason to want to try. Like, they can see paper B? So why is paper B undescribed?

-Wade

Let’s see if I can make sense of this for you. Paper B is in view, but not reachable at the beginning, which the player will figure out after trying to get it (I don’t really want to say more, but the game will be out next week and it’s not long!). It’s described in the room description, so I needed to eliminate it as an item that showed up independently of that. Hence it’s scenery or it’s undescribed. I thought making it undescribed would work better than making it scenery when I started, but I can’t remember why now.

I should really annotate my code, because I often do things and then months later can’t remember why I did that.

There’s actually a third option for that, which is I think what you’re kinda intended to do - if you include the item in square brackets in the room description, Inform will output the printed name and won’t re-mention it when it gets to the “You can also see…” line.

(I also learned this after my first game).

4 Likes

Yep, if a thing has the “mentioned” property (which is set automatically by the “printing the name of” activity) when the locale description is being figured out, it will be ignored.

So you can do:

The Library is a room. "Rows of bookshelves line the walls[if the ancient tome is unhandled]. One book in particular catches your eye, an [ancient tome][end if]."
3 Likes

Yeah, that’s what I suspected she might need, the ‘mentioned’ feature affected by square brackets.

Additional, optional fussy commentary:

If you (anyone) want to be completist, you may wish to also protect yourself against weirdos (and people with legitimate reasons) who might play in BRIEF. Because the second time they come in the room, the room description won’t print and paper B will jump out into the ‘You can also see section.’ Which, in a case like Amanda’s, really amounts to writing a standalone description for paper B describing where it is, pretty much in the same manner as the room description.

In the case where it gets [mentioned], well, it’s mentioned and the description won’t print. When it’s not [mentioned], its own description will appear, which will incorporate the info about where it is and imply why we can’t get it now.

I expect most people don’t think about BRIEF for the good reason that hardly anyone seems to use it. But maybe as part of the increasing awareness of screenreader use (where people may want less spam of unchanging room descriptions), we should either think about BRIEF, or block it from our games if the game won’t work with it. Even making that decision is hard to do without understanding how BRIEF works.

These days I try to make sure BRIEF works, but I just axe SUPERBRIEF (which is 'never print the room description).

-Wade

3 Likes

Oh yeah, re: the ‘mentioned’ feature, I’ll pass on a secret from Aaron Reed’s $700,000 book, that I happened to buy back in its cheapo days:

He uses, or used an approach he called BENT:
Bracket
Every
Notable
Thing

So when he’s writing the room description, he’d throw square brackets around nouns in the description he wanted to implement. This would force the game to not even compile until he had created those things at some minimal level.

I don’t use this, but here it is for anyone who never thought of using this approach.

-Wade

3 Likes

Huh. I totally forgot about BRIEF and VERBOSE. I haven’t used either in 20 years.

The brackets thing is just difficult for me. I have trouble with punctuation and syntax using brackets in a description, so I almost never do it as it messes with my writing flow. I’d rather get around problems some other way so it doesn’t suck the joy out of writing.

Too late to fiddle with this game, anyway, so I’m just going to turn off BRIEF, etc.

I swear, Inform 7 is like a hydra. Solve a problem, and two more rise to take its place.

Thanks for the thoughtful replies.