Last month, I had the pleasure of visiting the PR-IF meeting. It was mentioned that the Parchment transcripts were stored and made available to the authors.
I was wondering if any of the authors cared to share any particularly insightful, unusual, humorous, or unexpected player commands. Also, was the transcript logging useful as a feedback tool?
I said some of this at the meeting, but itâs worth repeatingâŚ
The transcripts were tremendously helpful. I got a Cold Iron update out late in the competition, but thereâs no reason I couldnât have gotten it into the first update cycle â I was just lazy.
It was easy to tell the experienced IF players from the newcomers. Experienced players all started out referring to the named, portable objects (in my game, the book); then looked at the named scenery (the table); and then went outside.
The newcomers werenât that predictable. I see an âopen bookâ here, for example, which I think most of us would never try. There was a large contingent of people who didnât try normal compass movement â at least, not right off. âgo to center of roomâ, âgo around in roomâ, âwalk to the doorâ, etc. One notable case tried âm nâ, âm wâ, âm swâ â I assume this is some convention from a MUD that Iâve never seen.
I donât expect to catch the completely confused players. There was another contigent who were clearly not experts, but were typing acceptable commands: âgo westâ, âwalk southâ, etc. They didnât get stuck. (I probably should have caught âleave houseâ, which was tried a lot in that group. âleaveâ by itself works.)
Then there was âfind axeâ, âget axeâ, âlook for axeâ â commands which I really should have caught. That was the major addition in my update.
(Almost all the newcomers showed up in the first few days of judging. After the first two weeks, it was nearly all experts.)
Synonyms count. My game text said âA battered book is lying on the tableâ, and people typed âread the battered bookâ. If Iâd been lazy about the âbatteredâ, that would have been a noticeable hit. Also, thereâs a reason the Inform library accepts âaâ and âtheâ on all objects. Donât short-circuit that when you implement new commands.
Having played a couple of IFComp games with Smarter Parser, as a player I would dearly like the option to turn it off in any given game. A fair amount of what it does seems like it captures stuff that isnât a problem for me as a moderately experienced player (Iâm not going to type âwhere am iâ unless heavily prompted to do so), so it doesnât do much to upgrade my personal experience.
Less selfishly, it also seems to slow things down considerably. Playing online on an admittedly tetchy laptop, referring to an unimplemented object would sometimes send Parchment into such a deep think that it would give me an âunresponsive scriptâ error; it was a great disappointment when a long wait yielded only âYou canât see any such thing here!â* Trying it again on a non-overloaded browser just now, the delay caused by error messages wasnât nearly as drastic, but itâs noticeable.
And I sometimes found that Smarter Parser clashed with the game in a way that made me mistrust the messages I was getting from it. The most drastic example was the message that you donât usually need to use adverbs ending in â-lyâ⌠in a game whose main character was named Lilly. (Which has since been revised so that error message is less likely to show, but still.) It remains true that you donât need to use adverbs, but the message so clearly is mismatched to the details of the game that it makes me distrust the other error messages I get. So when Smarter Parser later tells me that I donât need to refer to body parts, I donât believe it. And I wouldnât be surprised to find that message popping up sometime when you do need to refer to body parts.
So, I would advise caution about just dropping Smarter Parser into a project unless you know exactly what it does and can customize any messages that arenât exactly appropriate. And, though it surely does help with some of the most common misunderstood commands that novices type in, Iâm not convinced it has that much to offer the non-novice player, and it would be nice to be able to avoid its costs.
Of course I havenât analyzed transcripts, so maybe non-novice players are making these errors too, but from zarfâs account it didnât sound like it. (BTW, I think I recognize some of those commands from this playthrough, which was somewhat unusual in that you had a total noob and an experienced player looking over her shoulder to occasionally offer suggestions, like âtry going in a compass direction.â I was impressed at how much was understood; as zarf says, accepting âaâ and âtheâ is really helpful.)
Having complained, thank God for Small Kindnesses. I canât stand being told âI only understood you as far as wanting to exitâ when I try to exit the thing Iâm in.)
*This was a game that used Smarter Parser but not Neutral Library Messages.
This is perhaps not as well-known as it should be, but you can in fact type NOVICE OFF to disable Smarter Parser.
No, itâs definitely targeted squarely at novices, who in most collections of IF transcripts Iâve studied are the majority of players. (This is usually in contexts outside of interactive fictions competitions, mind.)
This is a legitimate concern for both authors and players, I know. Progress continues on several fronts, including low-level Inform 7 optimizations and the continuing Javascript execution speed browser wars. Someone can correct me if Iâm wrong, but I think regular expressions are not particularly optimized in I7 at present. I know Dannii opined at some point that this might be relatively easy code to optimise, but I donât think thatâs happened yet.
Yeah, these are both genuine concerns with Smarter Parser. On the -ly front, this was an attempt to make things run faster (natch) by switching out a list of common adjectives in a regular expression for something simpler. I donât have a good sense of whether itâs doing more good than harm in present form, although this example is certainly a data point against.
The latter case is also problematic. Certainly if I was writing a game that did involve the use of body parts, I would probably override the Smarter Parser block related to this, or at least change its message. I do realize that not every author who can use an extension knows how to do this. But here I think thereâs more of a clear win: Iâd feel safe in saying there are many more games without implemented body parts than those with, so the benefit of matching the semi-common novice error of trying to interact with them outweighs the cases where it might produce a misleading message.
In general, extensions or no, authors should always customize the built-in messages for their own game. Itâs not as easy as it should be to do this right now, especially for extensions in a consistent way, but itâs still true.
Disclaimer: Iâm not intimately familiar with this set of extensions from an authorâs perspective, so please forgive me if Iâm just talking about âsmarter parserâ as a synonym to include some others.
I believe this extension is seriously overused right now. If youâre actually writing a game targeted specfically at newbies, fair enough, use it. If not, then think hard if you really know the implications before you drop it into your game. Out of the games which used this (or parts of it) in this yearâs IF Comp, it only did harm in a good number of them. At some point, it already made me crabby if I noticed one f these âfriendlyâ messages in a game for the first time, because I knew there would be problems.
I absolutely hate how this thing breaks the fourth wall constantly, e.g. to explain that (parahrasing) âsorry you are feeling frustrated, maybe you should save and come back laterâ. In response to a completely legitimate command attempt, by the way â the frustration only resulted from reading this brain-dead parser reply. Everybody here seems to be talking about immersion here, and then youâve got parser messages like that? And whatâs the deal with âThat noun did not make sense in this contextâ? Every single time Iâve seen this message, it was in reply to a command whose noun made perfect sense in the given context â it was just the game which couldnât make sense of it. A newbie-geared extension putting the blame on the player? Seriously?
And donât get me started on âI understood X, trying that insteadâ. That is outright dangerous. These shortened implicit re-interpretations often mean something vastly different than the player intended. âthrow object out of somethingâ might be a smart idea in some situation, but dropping âobjectâ (which is âthrow objectâ) might not.
Of course, these are just examples of what I believe are big problems in any game whose author tries to improve his game by simply inserting this hyped extension heâs heard so much of. Donât do that! The default Inform parser has seen years of careful tweaking and optimisation. If you mess with something this crucial, you can break many things. If you know what youâre doing, fine, but donât think this will somehow magically improve your game.
I think, although aimed at a wider audience, IFComp is nonetheless a Comp for IF. Meaning it should be aimed to people at least knowing what an IF is.
Many of my transcripts are 10 turns long, with them 10 being âwalk here/do this/use that/sympathize with minorities/remember childhood/etcâ if not straightforward profanities aimed at the parser (or so Iâd like to think⌠ehm). Well, my game, as many of the IFComp games, isnât targeted in that direction, and I donât really care about what my father would experience in a game like mine.
After all, if I go looking at a football championship, Iâm supposed to know what an off-side is and how it is allowed to score a goal.
So, in my mind there is no worst thing as a game too much aimed at newbies. A parser can be more or less understanding but, câmon, I canât foresee what happens when someone types what I know are WRONG commands in a text adventure. Let alone trying and find a solution to âf**k off authorâ that is more nub-friendly as the regular âReal adventurers do not use such languageâ.
Aaron â thanks for the gracious response, and for telling me about Novice Off! I think the way to publicize it is probably in the ABOUT text of games containing Smarter Parser, which is probably not something you can automate.
About the body part thing, Iâm not so sure that itâs a clear win. Very few games will have implemented body parts (though I have a WIP that implements a furniture leg!), but those games would really be harmed by this message, while the gain for the ones that donât doesnât seem so great.
But I think what would really help is an expansion of the Smarter Parser documentation to explain exactly what each rule is, what it does, and how careful you should be about using it. During the comp I looked around the docs to find out where these things were explained, and I couldnât find it. Now I see that itâs in the existing rules section, but thatâs kind of terse. Pretty far down we see
(which, followed by the âusually no clothing rule,â seems like something suitable for Stiffy Makane). But itâs easy not to understand exactly what it does, or what message itâll produce.
In some ways, this means that I think Hannes is basically right â donât plug and play this extension unless you know exactly what itâll do!
I also agree that retrying the shorter command can be downright dangerous â maybe the default should be to retry the command if the player consents. And I think it would really be player-friendly just to sever the link between âthrow the rockâ and âdrop the rock.â I hate that.
Actually, I think that Small Kindnesses suppresses âYou canât see any such thingâ in favor of âThat noun did not make sense in this contextâ. Iâm not sure if Hannes is getting burned by this, but it is a very unfortunate bug (design choice?) in the extension.
So Iâm hearing the frustration, and thanks for airing it. The more feedback, the better these extensions can get.
Let me address a couple points, but first, mind that I did not invent this stuff out of whole cloth: most of the changes are in direct response to specific issues Iâve seen real people having. Some of the research I did on this is here, for anyone interested.
Also, these extensions are explicitly targeted at authors who want to make their stories more accessible to people not familiar with IF conventions. This is sort of a no-brainer for me: I would prefer to write work capable of being enjoyed by the 99.9% percent of people in the world who arenât IF experts. But again, authors who donât care about that crowd are free to ignore them.
(Although, if I could make a humble observation, I feel like my success bringing IF to places like IndieCade and PAX East has less to do with the quality of my work and more to do with the effort Iâve put into making that work accessible. People have a real hunger for interactive fictions; most people just canât figure out how to play them.)
If you have specific examples of messages that you feel are putting the blame on the player, I would really like to hear them. I agree that this is bad, and my extensions have tried very hard to re-write any default library messages that do so into more neutral forms. The default response for waving, âYou look ridiculous waving the noun,â is replaced by the less-insulting âYou wave the noun,â for example.
This took longer to get around to than Iâd intended, but thanks to Erikâs help this has been fixed for a new version of the extension pending an update to the I7 extensions page.
Perhaps. I have definitely seen a lot of newbies in a lot of different contexts refer to body parts and draw incorrect conclusions about what it meant that their command was rejected. But it could be this functionality should be subsumed by the âwith my Xâ section. Iâll put some thought into it.
Thatâs probably a good idea, but are the authors who arenât replacing the built-in messages when they should really going to wade through a dozen extra pages of extension documentation?
Isnât any parser error message breaking the fourth wall? The ones that donât are making assumptions that are often absolutely incorrect. This boils down to a difference in philosophy, but Iâd much prefer the parser be honest with me about whether it understood me or not, rather than pretending to with a message like âAttacking the troll would have no effect.â
Can you give me an example of a completely legitimate command you typed in which Smarter Parser misinterpreted? It should only kick in for commands that the parser couldnât understand at all.
So, scenario one: someone who doesnât know the correct command structure tries something overly complicated and gets a flat-out refusal with no clue what the correct syntax is. Theyâre stuck on a guess-the-verb puzzle and end up quitting your game in frustration. Scenario two: Smarter Parser either correctly simplifies something and the game works, or mistakenly guesses and the player has to type UNDO, now understanding how that verb is supposed to work. Two seems like the clear win to me.
This is âdangerousâ if the game prevents UNDO and is liable to instantly kill you, I suppose, or if the player doesnât know about UNDO. But I suppose I would prefer moments of danger to most people never getting past a syntax problem.
Fair enough. For me, there is no worse thing than nine out of ten people who try an exciting medium I care a lot about being frustrated and turned off to it by easily correctable problems.
I donât know. Maybe you should be discouraging authors from dropping this in if theyâre not going to replace this message when they should! But I think thereâs no reason not to make it possible for authors to find out what this extension will do in their game, if they want to.
Scenario two: The thing you wanted to throw is on the floor. Youâre still stuck in the guess-the-syntax puzzle if the problem was that you were using the wrong preposition (this has happened to me), and itâs obnoxious to have to pick it back up; itâs also obnoxious to have to type UNDO (do newbies even know how to do this?) because the parser grabbed your action and turned it into something different. Whatâs wrong with asking the player whether he wants to carry out the revised action?
Going back to the original question: Yes, I found the transcripts to be very helpful and enlightening. Of course I still havenât updated my game yet, but I have a long list of bug tickets to fix based on the IFcomp transcripts. The biggest no-brainer for me was when I had a character say âI donât suppose youâd trade [something the player has] to me?â but I didnât implement the verb âtradeâ (and none of my beta-testers noticed). Bracket Every Notable Verb Too, I guess!
It ends in sadness, though, when they try various versions of âexit boatâ, and never stumble upon just âexitâ (or âsouthâ). It might be that Small Kindnesses would have covered this case; I had in fact been using Small Kindnesses earlier in the development process, but I was running into weird/confusing messages and I didnât have the time to fix them so I just removed the whole extension. (Sorry, Aaron, I donât recall what they were, but when I get around to it I will look at it again and let you know.)
I did keep Neutral Library Messages, because I hate many of the I7 default messages. In general, though, I think I would rather just remove an unneeded command altogether (leaving some sort of âI donât understand that wordâ reply), rather than having a different âthat doesnât do anythingâ message for each thing that people might type, especially when itâs a command I didnât even realize was implemented by default in I7 (like âhugâ, which results in a message about kissing). I spent a lot more time fixing messages for commands that donât work than implementing the commands that actually do work.
Yeah, âexit [the container youâre in]â really really needs to be implemented. I always do that even though I know how it usually works. This just inspired me to install Small Kindnesses into my no-longer Speed IF, so bad things donât happen when people try âget off the bus.â
Neutral Library Messages seems like itâs actually causing trouble here, though; if the parser had responded âI only understood you as far as wanting to exitâ thereâs a fighting chance they might have tried âexitâ next.
I donât have a problem with the parser trying a new command on the playerâs behalf, but it should mention the option to UNDO when it redirects the command, e.g.:
Standard I7 responses break the fourth wall constantly. The difference is that youâre more used to them.
âŚan incomplete and ongoing process, of which Smarter Parser is an important part.
Part of the issue there is the âcarefulâ. After two decades of careful tweaking, the parser doesnât really seem (to the casual observer) all that different from AGT. To make larger-scale improvements, occasionally itâs necessary to make bigger, riskier jumps, and piss a bunch of people off in the process. I dunno whether Smarter Parser is going to become a good answer or an instructive failure, but either way.
This is a valid point, and I donât particularly want to see IF change so much that it can be easily played by all of the Other 99.9%. But Iâd like to see it be positioned more like, say, literary poetry: not many people actually consume much of the stuff, but if you present some to any reasonably smart person theyâll probably be able to read it without getting angry and confused because the line breaks are all in the wrong places.
(IF isnât football. IF isnât even Australian football. IF is the Eton Wall Game. If you turned on a sports channel and they were broadcasting the Eton Wall Game, youâd probably expect the announcer to explain the rules a lot more patiently.)
Probably the best outcome I could hope for is that I piss someone off enough that they write a better extension. [emote]:)[/emote]
I agree in principle, but at some point Iâm just verbosely duplicating what authors could see for themselves by just opening up the extension source and taking a look at it-- theyâre decently commented and divided into sections. But I will take a look at whether I can clarify some things without turning the extension documentation into a novel.
Maybe a better approach could be to make more use options to easily enable/disable bits of the extension based on the specific contents of your game. If you have implemented body parts, the extension docs could direct you to add âUse no body part assumptionsâ to your source. Something like that.
This particular example seems to be more the fault of the built-in throw = drop assumption. So far my extensions havenât removed anything from the standard rules, just replaced or expanded on them. Iâm starting to see more demand for an extension that goes farther, though (specifically, to remove all the do-nothing verbs.) Might be worth looking into, although the danger is that this breaks any other extensions that refer to those verbs.
A couple things: it makes the annoying, fourth-wall-breaking parser intrusion take two turns, not just one; using âif the player consentsâ breaks the skein and test commands; and certain phone/tablet/experimental IF environments are not set up to handle input in the middle of the normal parsing sequence like this. These are not insurmountable problems, but theyâre the reasons I donât use yes/no questions currently-- I did consider them.
This is a good idea-- Iâll add it. I could probably do a better job at working in more meta-instruction into the error messages. Perhaps the first time a Smarter Parser messages is shown, it could add that you can disable these messages by typing NOVICE OFF, or the first time a command is auto-completed, it lets you permanently disable that behavior.
NLMâs version of this is âI canât understand your entire command: the first part might be an action I know, but I didnât expect the word next.â This is more verbose but seems equally likely to get the player to type âexitâ next, and fixes situations where the original format produces confusing messages (like âI only understood you as far as wanting to take inventoryâ if you start a command with âIâ.)
This is all great stuff, everyone. Didnât mean to hijack this thread, but Iâve got a good pile of notes for future improvements now.
Anyway, Aaron, I was not trying to upset you. Sorry if I did. Iâm just a lil bit mad at all those 400+ people who dropped my game after 6 turns cause it didnât let them âpatronize the environmentâ or something like that.
I think that anyone coding an extension is doing something noble, and you are one of those noblemen.