Another description issue

I apologize if this has been answered–I can not find a way to search the forum!

I HATE the auto-descriptions. I have worked very hard to create descriptions of every item in a room, but about 80% of them are ignored in exchange for the description I7 auto-generates. For example, I have the following code:

A bed is here. “I see a bed, neatly made with white blankets and pillow, right in the middle of the room. That seems like a strange place to put the bed, but I can’t budge it.” The bed is scenery. The bed is enterable. A pillow is on the bed. Blankets are on the bed. Blankets are scenery.

The first time I hit “Go”, I saw my initial room descriptor (the one that begins play) plus my descriptor of the bed which I had typed above. I then added a table to the room and hit “Go.” This time, instead of my nice “I see a bed, neatly made…” etc, I got the auto-generated “On the bed is a pillow.” That’s it. What the heck?

In addition, I understood that if a container was scenery (such as the table I added after the bed), nothing on the table could be seen until it was examined by the player. Now, my table shows everything, just as the bed shows the pillow. Am I getting things out of order? How does one learn the proper order, if that is the case? None of the documentation says “Do this first, do this next” and I’d like a few ground rules if possible.

Thank you!!

If you make something “scenery”, that tells Inform not to put a special sentence about that object in the room description. If you want the object to have its own sentence, but not to be movable, then you want to make it “fixed in place” rather than scenery.

For instance:

A bed is here. “I see a bed, neatly made with white blankets and pillow, right in the middle of the room. That seems like a strange place to put the bed, but I can’t budge it.” The bed is fixed in place. The bed is enterable.

In fact, by default if you make something a supporter (which the bed should be, since you can put things on it), it will also be fixed in place. So this would accomplish what you want:

A bed is here. “I see a bed, neatly made with white blankets and pillow, right in the middle of the room. That seems like a strange place to put the bed, but I can’t budge it.” The bed is an enterable supporter.

There aren’t instructions in the manual about the order of these sentences because Inform does not enforce an order.

A table is usually a supporter, not a container. The distinction is that containers have things “in” them, while supporters have things on them (and if you write “The vase is on the table”, Inform will understand that the table is a supporter, even if you don’t have a sentence that says “The table is a supporter.”). Containers do not automatically reveal their contents in room descriptions, but supporters do.

There are some ways around that, if you prefer to modify the output. If you look in the Recipe Book under “Place > Room Descriptions”, there are some more examples of how to fine-tune description output.

I see what you mean for most of the problem, but the auto-generated text is still there. Is there any sort of work around to keep I7 from telling more of the story than I want told? I’ve played IF where nothing can be seen until you’re looking for it. THAT’S what I want!!

(And thanks for the info!!)

It may be auto-generating “On the bed is the pillow”; if so, that’s because you haven’t told it the pillow is scenery.

If you want Inform not to write any of these sentences, ever, you can write

Unfortunately, though, that will put all the burden on you to create your own descriptions, and will take away a lot of the standard hooks.

A slightly more helpful general hack might be the following:

This will print the initial appearance of a supporter object but never reveal its contents in the room description.

A word of warning, though: this may well irritate players. I at least would not be enthusiastic about this interaction:

…since it feels as though the game is deliberately avoiding telling me something important and useful to know. So if you do go that route, you may want to (at the very least) make sure the description of the supporter mentions the items that are on it.

One way to do that would be

…but of course now you’re back to autogenerated prose, just in a new place. So if you want it to have custom prose for every possibility, you’ll have to resign yourself to writing it.

Wow…food for thought.

So I do still have some questions if you will bear with me!

  1. if I choose the second option, do I use that only once, or do I have to write one for every situation?

  2. can’t I just put something in like “Understand examine [something] as searching.” ? Is there a reason why search and examine are not the same thing? That is a long-time irritation of MINE. Is there a good reason for them to be different?

  3. if I’m willing to write better copy than I7, is the first option the best? I assume that it leaves everything else alone.

Thank you!

Assuming I followed the thread correctly, the answers to your last questions would be:

  1. Writing that rule one time would cover every supporter in the game.

  2. You could do that, but it might entail more work than you’d think. A simpler way to get rid of examining in favor of searching would just be to write:

Instead of examining something: say "[description of the noun]"; try searching the noun.
3) Either way is a lot of extra writing, but if you’re willing to do the extra work to get the results you want then, as emshort mentioned, the first way gives you more control.

In general though, going all the way back to your original post, it sounds like the answer to part of your questions might depend on how exactly you are structuring your paragraphs as you write your code. Although it’s a little extra effort, instead of writing everything as you’ve been doing, for example:

A bed is here. “I see a bed, neatly made with white blankets and pillow, right in the middle of the room. That seems like a strange place to put the bed, but I can’t budge it.” The bed is scenery. The bed is enterable. A pillow is on the bed. Blankets are on the bed. Blankets are scenery.

you might want to add the extra phrase “The description [whatever] is” to your descriptions. For example:

A bed is here. The description of the bed is “I see a bed, neatly made with white blankets and pillow, right in the middle of the room. That seems like a strange place to put the bed, but I can’t budge it.” The bed is scenery. The bed is enterable. A pillow is on the bed. Blankets are on the bed. Blankets are scenery.

It’s hard to say for sure without seeing what you were working on, but I suspect you were writing things in such a way that Inform was getting confused about what text to match with which object. For instance as Chapter 3.11 of the Inform documentation says,

If you’re only relying on initial appearances and never using descriptions, the resulting code could be confusing to Inform under some circumstances.