Stand = out?

I just found something odd while playing Augmented Fourth.
I’m inside a house with a rug on the floor. Since this is a magical setting, I decided to SIT ON RUG and try to FLY. That didn’t work.

However, when I entered STAND to get up from the rug, I found myself standing outside the house again. Does Inform treat STAND as equivalent to EXIT/OUT? And would this mean that one has to account for this in every enterable object when programming with Inform6?

(Note: It’s unclear from the response to SIT ON RUG whether I actually did sit down on the rug.)

Just curious. Back to the volcano now.

Yes this rings a bell.

I think if you’re in/on something and stand you exit it, and I have a feeling it applies to rooms too.

Inform 6 doesn’t know about different stances, but does recognize some commands relating to stances anyway. It makes sense that LIE ON BED can be reversed with STAND UP, but this also leads to STAND UP working as a way to exit a space shuttle etc.

If your game doesn’t need STAND UP for getting out of bed, you should override the grammar. If you need it in one room, but don’t want STAND UP to work as EXIT in the game in general, you should also override the grammar, probably by creating a custom action for STAND UP.

3 Likes

I just tried GET IN PIANO and it was obvious from the response that the game thought I wanted to get on top of the piano.

Consistent with the above.

1 Like

Grahame Nelson made some very, very strange decisions when he designed the Inform 6 library and I seem to spend most of my time undoing those strange decisions. These are just two examples of those.

2 Likes

Well, you are free to pick another toolset. Graham spent years developing Inform 1-6 and made all the results of his work available for free, even for commercial projects. You have the option to use Inform, but you most certainly have the option not to use it as well. There are so many other tools out there - there’s no reason to stick with one you dislike so much.

I think he made an excellent job.

2 Likes

I think that you are mistaking the difference between Inform and Inform library and that people have indeed either customized or even made from scratch their own libraries.

He’ll correct me if I’m wrong, but I gather it’s more the case that I6 is the one Garry dislikes least of the available options (all of which he dislikes)… :wink:

1 Like

I believe I have a reasonably good grasp of the difference between the Inform language and the Inform library.

Graham developed both. You can choose to use them. You can choose to not use them. You can choose to use the language and not the library of course. Graham also made sure the library is extemely customizable, so you can change any part of it without even modifying the library files. You can create a new library from scratch, or you can copy the Inform library and modify it to your liking. So much freedom, so many possibilities.

If you’re unhappy with the standard library - modify it, swap it out for a different library, or just skip Inform altogether and check out TADS, Alan, Hugo, Adrift, Twine or whatever. Why keep using it if you’re unhappy with it?

Why not?

You can also form and express a judgement of Inform.
Criticism is a combat sport, and there is nothing more boring than complacency and blissful enthusiasm. Inform is a worthy opponent of this challenge.

Forget it.

3 Likes

I think Inform is a work of art – but still think it strange that STAND = OUT, even from a room.

2 Likes

I fully agree that Inform 6 is not perfect, and that STAND = OUT is weird. I can see that this stems from a compromise, making the world model simple enough to be easy to work with and also fit nicely within the constraints of the Z-machine version 3 (Yes, Inform 6 was designed to work with the z3 format). This is why an object can’t be both a supporter and a container, why player stances are not really considered and, in the end, why stand becomes a synonym of exit.

You can lose a lot of these simplifications by going to something like TADS3. And I’m just thinking that’s probably a much better choice for some authors. If you’re working with a tool you don’t like, and there’s a tool you’d probably like a lot more, how about switching to that tool and becoming a happier person?

3 Likes

…not to mention that every grammar and every source is customizable. You can simply replace routines in Inform 6 without changing the library at all. What I did: I created an optimized, advanced template for me, with all the stuff I want to have in / changed and this acts as a starting point for my adventures, just like Infocom did. You have all the right tools at hand to make yourself happy. Yes, some parser responses are weird but it’s easy to change anyway. And I believe that a parser is about understanding. So if a parser understands more than it should, that’s always fine. You can never be wrong with that. And there are scenarios where STAND may be an equivalent to EXIT, when you’re in a car for example.

2 Likes

Inform’s replace isn’t powerful as the TADS 2 one…

OTOH, that there’s strange decision in Inform 6 and its library, but for the compiler, I start to suspect that its origin as an assembler has some weight (looking at the proto-inform library and DejaVu’s source code is rather… interesting; indeed the long hunt for the lost pre-version 5 Inform was worthwile…)

on I5/6 library, I critique the READ = EXAMINE; in my ideal model world, examining a book is not the same as reading it (and I’m surprised of Graham’s model, he being an Oxonian academic, he should known well the difference…)

True that a book is not to be judged by its cover &c. but in my modest opinion, EXAMINE should give the description of the book in se, cover, spine, size, thickness, binding, and READ should give its content…

Best regards from Italy,
dott. Piergiorgio.

3 Likes

There’s a tricky balance between what works best for games in general and what makes sense in a specific game. Libraries have to think about the general case first.

For the READ/EXAMINE decision, you have to take into account that games include signs, notes, letters, and envelopes as well as books. It would be extremely irritating to type “X SIGN” and not be told what it said. So it makes sense for the library behavior to combine them, and allow games to make exceptions as desired.

(I would say that the same is true for SEARCH. It’s a historical anomaly that SEARCH is not combined with EXAMINE by default – a remnant of a design era that was really already over when Curses was written.)

Even for books, it’s a tossup whether the game is implemented at a level of detail where it makes sense for READ and EXAMINE to be separated. If you’re exploring the Bodleian library, sure. But not all games put that level of focus on books.

On the flip side, you can see some decisions of the I6 library that were consciously revisited in I7. The removal of SWIM, PRY, DIG, and so on is an example.

8 Likes

Partly agree, Zarf. On the sign I can agree, signs being usually intended to be read at glance. On letters and envelopes, examining an envelope should note things like colour, stamp, if sealed or open, and if open, what is its content. and on both, examining should note, for example, the graph (or typeset) ink colour.

Reading an envelope, this can be both realm of examine or reading, because usually on an envelope is written the sender (on back) and the receiver (on front)

Generally I assume that the adventurer hasn’t 40/20 (20/10) sight, like Chuck Yeager, and reading is a close range thing. My understanding of scope is that the player’s position re. thing on the location is… uh, abstract ? I mean, he can be near a desk or far from it, but when reading a note, the position is assumed to be near the desk. but for examining said note, is not necessarily nearby enough to read its content.

let’s visualize a bit:

in a study, X SOFA (that is, something not so nearby the desk), X DESK, X NOTE, READ IT you can visualize our PC looking to the desk from some distance, noticing that on it is a note, noticing, say, that there’s some writing and is roughly A5 in size, and moving nearby the desk, read what is writing on it.

Sorry for the long and winded (because I don’t handle english so well, being NOT my mothertongue…) explanation of my “design philosophy”, (or is a coreography ??) so to speak, and

Best regards from Italy,
dott. Piergiorgio.

1 Like

The question is still, is it better for the library to implement one action and let the author make it complicated (when desired), or for the library to implement two actions and let the author simplify them (when desired)? Nearly always, the first course is better for authors. It’s less to learn.

4 Likes

Why assume that people are unhappy with Inform? All posts on the thread are simply people not understanding why the library behaves a certain way. It would have been more productive if you just explain the rationale behind the decision, as other people have done. Or better yet, show coding example on how to override standard behavior.

I think people are happy with Inform, but the library is rather extensive and people need help navigating its features.

1 Like

I don’t. I was just reacting to Garry’s message.

Nope. Garry’s message “Grahame Nelson made some very, very strange decisions when he designed the Inform 6 library and I seem to spend most of my time undoing those strange decisions.” is not asking any questions, nor is it providing constructive criticism. And if you’re working with a library that (in your opinion) is so bad that you spend most of your time undoing everything that’s wrong with it, leaving less than half of your time to work on your game, I think you’ve found the wrong library for your needs.

I did.

I’d be happy to, but no one has requested it. I don’t think the OP even writes Inform code - it was just an interesting observation regarding a strange behaviour, made from a player’s point of view. This kind of discussion is useful and can lead to the library being improved.

2 Likes

As it happens, I did that the other day but deleted the post when I belatedly realised this is the Inform 6 category… I’ve created a separate topic here: Override "STAND = OUT" in Inform 7.

2 Likes