One of the things that perennially keeps me from really getting into IF authoring with Inform is the way the standard library continually intrudes its own ideas of proper player-actions on my work. The fact that the standard library has a concept of “north” is awesome and helpful, because I want to allow my PC to go north; but the library’s insistence that the PC should be allowed to “kiss” or “break” or “smell” everything in sight is REALLY ANNOYING to me.
Is there a way to disable all of the standard library’s verbs, selectively enabling only those verbs that my game cares about?
I have found that in Inform 6, I can remove the line
and then manually define Verbs for each of the verbs I care about. This basically does what I want, except: (1) The noun “me” is still present, which is obnoxious because there is never anything sensible the PC can do with “me”. (2) The direction-verbs, including “up” and “northwest”, are still present, which is obnoxious in a small game that requires four directions but not ten. (3) There’s still a lot of library code that I don’t control, but judicious playtesting and redefinition of LibraryMessages can handle that, I think.
Can anyone tell me how to disable the noun “me”? How about the non-cardinal direction-words? Are there any other verbs that this method misses?
Would moving to Inform 7 make this problem easier to solve? I’ve assumed that it would do the opposite.
Oh right, I did solve the direction-verbs, I think.! Remove these verbs from the game (sort of).
Verb 'northwest'; Verb 'northeast'; Verb 'up';
Verb 'southwest'; Verb 'southeast'; Verb 'down';The question about “me” and whether I missed any more verbs remains.
Thanks, removing the direction-objects from Compass works better than the half-solution I posted above.[Initialise;
give player light; ! so we don't have to give each room light
lookmode = 2; ! verbose
remove nw_obj; remove ne_obj; remove u_obj; ! disable these direction-verbs
remove sw_obj; remove se_obj; remove d_obj; ! disable these direction-verbs
location = AtGate;
];Still looking for a way to get rid of the “me” noun.
Actually, I wouldn’t mind disposing of “it”, “them”, and all other pronouns while I’m at it, for two aesthetic reasons: simplicity (ADVENT didn’t have pronouns, why must I be forced to have them?) and perfectionism (as follows). I’ve always felt that pronouns are a great idea in IF, but Inform doesn’t really do them correctly; in Inform, “it” always refers to the last singular noun mentioned by the player, so a dialogue like this is impossible:
> WAVE WAND
A sepulchral voice intones, "I'm only doing this once."
With a >poof< of blue smoke, a shining mithril sword appears in the air before you!
> GET IT
You pluck the sword from midair.
Furthermore, Inform remembers the referent of “it” for way longer than it really should, so that “it” and “them” can both be valid and refer to different objects; this strikes me as needlessly clever, and prone to misunderstandings when the game contains ambiguously plural items like “a pair of pants” or “a string of pearls”.
I don’t understand why you want to do all of this. If you don’t like Inform’s parser then don’t use it. Write your own. You can even go back to the simplicity of Advent’s two word parser. Just expect some criticism if you do.
I’ve written my own parsers before, but the point of Inform is to let people skip that step. You know this already. Actually, someone may well have already written an extension for I7 that emulates a non-Infocom parser; I just don’t know how to discover it.
As for the ultimate product, see this thread I just started. Criticize away!
To that end I think you might change the relevant dictionary words to ’,’, ’,’, etc. In Inform 6 these are found in the English.h library (Part II: Vocabulary); in Inform 7 you find them in the I6 Language Template (§§ 1, 2 & 3).
Sure, when playing a game, I always try a lot of silly commands: “x me”, “get me”, “kiss me”, “put me on me”… And they usually produce the default silly and out-of-tone responses: “As good-looking as ever.” “You are always self-possessed.” “If you think that’ll help.” “You need to be holding yourself before you can put yourself on top of something else.”
I treat this as evidence confirming my belief that a lot of authors (not all — just a lot) don’t care to implement the “me” noun’s behaviors, and would probably be much happier if the “me” noun didn’t exist. Certainly that’s how I feel. I’d rather get a default no-such-noun message (“You can’t see any such thing.”) so the player knows you don’t need to refer to that noun in this game. #chekovsgun
I think that it’s disingenuous to characterise ‘x me’ as a silly command like ‘kiss me’. And I think that most authors (not all; just most) who fail to implement a player description do so out of laziness, inexperience or as an oversight, rather than as a conscious design choice.
(And if it is a conscious design choice, the chances of the game being the kind of game that I personally want to play decrease very steeply indeed. Aside from the actual value of its text, X ME is a highly convenient bellwether.)
I usually don’t try silly commands at all; I tend to completely forget that “xyzzy” exists, and I’ve rarely if ever tried any of the other “me” commands you’ve mentioned. But I like to know who the player character and what they’re like, and “x me” often gives me a response to that. Play through some of the games in this poll and you’ll see that “x me” usually gives you unsilly responses, and even can tell you something important when the PC’s state or identity changes.
I’d also say that, as a player, I’d prefer to get an explicit signal as to why the command I just entered wasn’t recognized rather than a parser error. If you include this line:
Instead of going when the noun is not north and the noun is not west and the noun is not east and the noun is not south: say "You only need to go north, east, south, and west in this game."
then a player who goes one of the verboten directions will know what happened. If you extirpate the directions from the game, they’ll get a parser error, and the next command may start with a “q.” If you’re trying to reach players with a modern sensibility, it’s probably better to catch the commands they’ll try and explain why they don’t need to rather than to make sure that those commands aren’t understood. (An exception: parser errors don’t take time, and with the code I just put up going northwest will take a turn, which could be annoying if you have timed challenges in your game.)
All this depends on what your goals are. I mean, I wrote this, I’m hardly in a position to be lecturing people about annoying their players. I think it’s awesome that you wrote a text adventure for a graphing calculator and want to port it. And if you want to maintain the old-school feel of playing on a graphing calculator, it probably is reasonable to want to remove unnecessary stuff from the game. But that’s partly because if someone wants a detailed description of the PC or of anything that they can examine, they don’t want to play your game anyway, and removing the “examine” verb communicates that efficiently.
True, I overstepped. It’s not necessarily a silly or out-of-character command, but Inform’s default narrator gives it a silly and out-of-character response.
At the same time, I think it’s also a little disingenuous to dismiss me-less games as the product of laziness or oversight. There’s something to what you say, but it’s a bit of a self-fulfilling prophecy, isn’t it? Inform’s default narrator has such ugly and jarring default behaviors that any implementor who cares about the quality of their final product is forced to deal with “x me” and “jump” and so on: laboriously repainting the walls off-white to cover up the previous tenant’s seafoam green. If I come into an apartment where the walls are still seafoam green, at least in this metaphor, I don’t deduce that the occupant must be blind or lazy (or actually like seafoam green). Repainting a whole apartment is tedious and unrewarding, especially when you feel like you shouldn’t have to do it; that’s not quite the same thing as laziness. I know we can’t change the previous tenant’s behavior, but maybe we could set up some kind of discount with a local painting contractor (read: Inform extension).
Actually, if we’re using this metaphor, the problem isn’t even so much the color of the walls (which is awful), but the sheer number of walls. I just want a place to live for a few months; why does it have to have fifteen rooms, all closet-size and mostly seafoam green? I’d rather have two or three big well-appointed rooms, even if I have to knock out some of these walls to get there.
If that metaphor didn’t convert you to my religion, that’s still okay with me; we can probably agree to have different tastes.
Well, here’s the thing: Inform is not a platform that’s neutral about the kind of IF it wants you to produce. Such a thing isn’t really possible. There’s broad agreement that a lot of its default parser responses have excessive influence on things like tone, and indeed the forthcoming update will remove some particularly troublesome verbs (swearing) and make it easier for authors to replace the default responses. I doubt it’ll go anywhere near far enough to be what you’re looking for, though.
Ah, this is at the heart of your problem, I think. Inform doesn’t want you to rent by the month; Inform wants you to take out a mortgage, tear out the plaster and put in panelling instead, bring in a guy to insulate the loft and another to replace some old wiring, knock some walls through, build a conservatory and put in some decking and a water feature, then live there to a contented old age.
Certainly. It’d be very boring if we all agreed about everything.
I agree about the tone of many of the default responses (don’t they all come from Graham Nelson’s Curses?) You might want to look at Aaron A. Reed’s Neutral Library Messages, which changes them all at one fell swoop. (NB: Either this one or Smarter Parser changes “I only understood you as far as wanting to take the oilcan” to something I find much less helpful.)
I do find “x me” to be a special case; yes, it has to be there because everyone expects it to be there, but it also does have the potential to answer some very important questions we have about the game at the beginning (does the PC have a definite characterization and if so, what?) So I don’t have much trouble with the expectation that there be some response to it. Experienced IF players don’t seem to have as vehement a response to “Your singing is abominable” as to “As good-looking as ever.”
However, in reality, a simple description from “x me” is not characterization. That would be a continued build up of understanding based on actions the player takes with the “me” character and how those are used to construct a character. One description is not going to do that any more than it would in a novel. I suppose you could argue that “x me” at least gives you a hint if the person thought about how the PC looks; it tells you nothing necessarily about whether the author is going to spend any time actually characterizing the PC.
I do agree with the sentiment (said by someone) that there is a certain laziness about not changing the default description, regardless of how much or how little the PC is characterized. After all, it probably doesn’t take too much authoring skill to at least anticipate that players may want to examine the actual person they are playing as. So even if it’s not laziness in implementation, it’s laziness in terms of crafting responses to likely player actions.
I disagree. It’s not sufficient for good characterisation, but it can be an important element of it. Characterisation-through-style-of-action has a powerful effect, true; it’s one of the most powerful characterisation techniques in IF, maybe the most powerful. But it’s not the only technique. (The protagonists of Lost Pig and The Dreamhold are not, in terms of mechanical behaviour, all that dissimilar. Their characters are.)
I agree wholeheartedly, but suspect that this means somewhat more than you think it does. (Admittedly, I am keener than the average bear on Close Reading, Strong Lines and Critical Passages. YMMV.)
It’s, hmm, something like a thesis statement about the character. Just as in a novel, we expect that thesis to be backed up; if the author wants us to really believe that the protagonist is heroic or intelligent or cruel or impulsive, they have to show them doing things that demonstrate it. But establishing what’s at stake, character-wise, is a BFD.
Right, but things are even simpler. If “x me” yields “Just yourself, as usual” that suggests that the protagonist doesn’t have a definite characterization, but is an ageless-etc.-adventure-game-protagonist. (Like everything else in that game, the initial description is deceptive, though I think the protagonist stays ageless, faceless, and genderless.) If it yields “Grunk orc. Big and green and wearing pants” that tells you that the protagonist is a big green orc named Grunk, who is wearing pants. If it yields “You are Bill Blake, co-founder of Whitman & Blake Dry Goods, one of the leading such outfits in all of Dixie” and a bunch of other stuff that tells you… well, you get the idea. Maybe I should have said “identity” instead of “characterization” but these are all important things to know.
ETA: And that’s not to mention a game like Photopia, where you can use “x me” to literally tell you who the PC is in any part of the game.