The place to discuss the ADRIFT Interactive Fiction toolkit

Advanced Parsing in ADRIFT - man, I hate it

This forum is the place to discuss the older ADRIFT versions 3.9 and 4.0.

Please refer to the ADRIFT 4 Manual for more information.

Postby Duncan_B » Sun Sep 19, 2010 9:58 pm

Opinionated rant warning.

Advanced parsing constructions with ADRIFT 4 are not useful. Especially in the hands of someone who either doesn't fully know how to use ADRIFT 4 or English grammar, they can only lead to disaster. I don't see why people don't just use wildcards.

Now, if somebody implements a task that says, for example, "give the thing to bob", then they've created a very specific task in which those are the only words accepted in that specific syntax. However, if an author implements that same task using brackets like "[give] {the} [thing] {to} [Bob]", they still ought to re-write it because it's only partial implementation. Look at how much you still miss:


Okay, so this is a bare bones example... ideally, you should have already familiarized your player with your games verbs and syntax so that they knew how to enter the command correctly, but there's always the problem of leading horses to water: they'll drink however they please, if at all.

You can see how broken the "[give] {the} [thing] {to} [bob]" task looks in-play since only one specific syntax is covered. Most players, after finding the first doesn't work, will probably start looking for another solution entirely. Or they'll sigh and say, "Frick-- I know I have to give this thing to Bob, but how do I do it?" I didn't even get in to using "give thing" or "give him the thing", but those are also possible failures because ADRIFT 4's advanced parsing is still only partial implementation. Even if a player uses the implemented syntax correctly (verb the noun to noun), they can't execute the task if they use any sort of extra words that the narrow implementation of "advanced parsing" doesn't allow for-- as in "give Bob the darn thing".

So, here's a question: as an author, why use this method of writing tasks? It seems to me that the best we can do with ADRIFT 4's parser is to recognize keywords using *s. I think the "Give thing to Bob" problem would best be solved by creating a task called "* give * thing * bob*" (then you would hit enter and create the alternate syntax, "* give * bob * thing *"). Granted, keywords could probably miss a lot, too, like if the player types "don't give the thing to bob", but if you really suspect your players of having a reason to do something like that, it's easily fixed by creating a "* don't * give * bob *" task with variants (please, please, always remember to implement alternative syntax) and putting the don't give task above the give task in the Generator. As a matter of creating fuller implementation, I don't see why anyone wouldn't use wildcards when the advanced parsing method has more holes than Butch Cassidy and the Sundance Kid in a face-off with Bolivian cavalry.

Is anyone else with me on this? Using keywords obviously has its drawbacks, but how is using bracket construction any better? Authors, (wo)man your stations. Opinions, please.
User avatar
Posts: 1219
Joined: Fri Apr 01, 2005 8:26 pm
Location: Chicago, Illinois
Points: 11

Postby Batwing » Mon Sep 20, 2010 2:36 pm

I'm with you. I use the * to allow the player to type anything that means the same as what I wanted for input.
User avatar
Posts: 61
Joined: Tue Dec 03, 2002 3:44 pm
Points: 10

Postby Seciden Mencarde » Mon Sep 20, 2010 2:41 pm

I agree with your rant completely, Duncan. When I first saw the advanced parsing options, I was giddy and excited to use them, but I found after a while they had the problems you pointed out.

I'm not aware of any major drawbacks in the use of wildcards, other than the interjection of nonsense words. For instance, your example would take "why would I give bob this enormous unwieldy thing that I have" but I can't see any players typing that. Usually the intelligence of the player outweighs the possibility for nonsense. They might say "give billy bob the yellow thing" if his full name is Billy Bob and the thing is, in fact, yellow, but they wouldn't type that otherwise.

Are there any more drawbacks? If there aren't, it's quite obvious that one should use wildcards. I think Campbell was going in the right direction with the advanced parsing but the system is too primitive to really handle something like that well.
~ Velly

Works in progress (estimated release): Forest House Trilogy (Summer 2011), Tenebrae Semper (Fall 2011), Castle Hyperion (Summer 2012)

User avatar
Seciden Mencarde
Posts: 196
Joined: Sun Jun 30, 2002 12:04 pm
Location: US
Points: 10

Postby Campbell » Mon Sep 20, 2010 3:23 pm

Well, I'd agree to some extent, and I think it really depends how it is used. Most of the problems stem with users not creating a varied enough input. This is particularly a problem when it comes to object/character names, creating all the possibilities.

Hopefully v5 will resolve this, allowing %object% as a wildcard which resolves to all the valid ways of inputting the object name. Also, by spending a little extra time carefully setting up general tasks with this format, it does not need to be considered for specific tasks.

That aside, v5 also allows you to merge the two formats; wildcards with the advanced format.
ADRIFT Developer developer.
User avatar
Site Admin
Posts: 4620
Joined: Sun Jun 23, 2002 11:05 am
Location: Edinburgh, Scotland

Postby ralphmerridew » Mon Sep 20, 2010 5:45 pm

Try including a sample transcript with your game. If all the moves listed within it are pretty straight "VERB NOUN", "VERB NOUN PREPOSITION OBJECT", then the player probably won't try to insert random other words into the command.

Also, if there is going to be any chance of objects requiring disambiguation, wildcards have the problem that they are incompatible with sane handling of that.
Bloodhounds can make you laugh and cuss in the same breath. They are endearing, faithful, and can sling drool ten feet in any direction. -- Virginia Lanier
User avatar
Posts: 2566
Joined: Fri Dec 13, 2002 11:56 pm
Location: Missouri
Points: 10

Postby David Whyld » Mon Sep 20, 2010 5:46 pm

Couldn't agree more. In fact, I commented on this in my reviews of the Summer Comp games:

Opening up the Generator reveals some excruciating task construction. I quite often came across things like [THROW/TOSS] {CERIMONIAL} KNIFE [AT/TO/TOWARD] [WIZARD/OLD MAN] (yes, complete with the misspelt word) and [TAKE/GET] [{RECTANGULAR} NICHE/{RECTANGULAR} HOLLOW/{GOLD/SILVER} {TOUCH} PAD] when, for the second, a simple GET * PAD * and a few synonyms would have sufficed.

To this day, it's always surprised me at the way people type all that unnecessary garbage into their tasks when a few wild cards would do the job ten times better.
David Whyld
Posts: 6866
Joined: Sat Dec 18, 2004 5:15 pm
Location: United Kingdom
Points: 35

Postby Hensman Int'l » Tue Sep 21, 2010 2:05 am


Ouch! Too close to home! :( But part of the 'problem' is as originally stated "...because ADRIFT 4's advanced parsing is still only partial implementation." As this task was at the begining of the game development I didn't know if TAKE/GET would be synonymous for the rest of the game. It's the afterthought/hind-sight that sees:
within the dropdown command field. I am 'fixing' and re-releasing that game, but in fairness to others who don't globally use the * wild-card: is how a writer accomplishes their desired results if after intense beta-testing (see all sorts of rants on that issue ]:) ) really that important?

As ralphmerridew points out, going through all the commands in a game can narrow down the nouns and verbs can reduce the risk of ambiguity - rushing release (my bad) misses that opportunity for clarity.

For instance, your example would take "why would I give bob this enormous unwieldy thing that I have" but I can't see any players typing that.

What I have read elsewhere is that a good and crazy :p beta-tester will type something like that to try to break the game. My summary for all new games - ADRIFT 5!
Officially and Fully Released:
The Fly Human (v.4) - 2010
Brain Dead Weekend (v.4) - 2011
User avatar
Hensman Int'l
Posts: 197
Joined: Sat Aug 05, 2006 12:48 am
Location: Wisconsin USA
Points: 10

Postby ralphmerridew » Tue Sep 21, 2010 2:06 pm

What I meant about wildcards causing trouble with disambiguation is:
If the game has a red box and a blue box, and you want to have a task for when the player gives the red box to bob, you can't have wildcards in positions that allow "GIVE BLUE BOX TO BOB" to pass.

Then if you have any other "give" commands, you have to decide whether to ignore random words with all objects but the boxes (and confuse the player when s/he tries GIVE THAT STUPID BOX TO BOB ALREADY after having similar comments work elsewhere), or to be consistent. (See Paul OBrian's review of Marooned.)

I've found that ignoring things not understood isn't a good idea (or if your game is going to do that, put up a Golden Wombat of Destiny style "GIVE THAT STUPID BOX TO BOB ALREADY not understood. Do you mean GIVE BOX TO BOB (y/n)? prompt).
Bloodhounds can make you laugh and cuss in the same breath. They are endearing, faithful, and can sling drool ten feet in any direction. -- Virginia Lanier
User avatar
Posts: 2566
Joined: Fri Dec 13, 2002 11:56 pm
Location: Missouri
Points: 10

Postby Duncan_B » Wed Sep 22, 2010 10:24 pm

It could be possible to avoid disambiguation problems by creating items whose names do not clash. But as far as I'm concerned in this thread, disambiguation not really substantial to the issue-- we've already talked over the flaws of ADRIFT 4's parser in that respect, and they are avoidable with design.

I think my primary focus, the more I look at it, is in terms of writing ease and syntactical variation. *s are easier to implement than trying to guess everything a player could type in word-for-word. I think ADRIFT 4 authors much better off trying to catch how a player could say input by writing at a syntactical level. If a game has a well-defined syntax and a delineated set of verbage, as might be demonstrated by a sample transcript (or, even better, within the game itself), it will be more playable in general.
User avatar
Posts: 1219
Joined: Fri Apr 01, 2005 8:26 pm
Location: Chicago, Illinois
Points: 11

Postby KFAdrift » Thu Sep 23, 2010 5:44 pm

Isn't the whole point to use what you, as the author, think is best in each situation. I like to use the advanced format for complicated structures, but will normally also add the simpler structure too.

There are situations where one is best and throwing the other method away because some people don't like it is silly. Boo hoo, we have two ways of doing things, MS Office seems to try to give you a hundred different ways to do things.
Staring harder at the screen doesn't give any more inspiration
User avatar
Site Admin
Posts: 4884
Joined: Sun Jun 23, 2002 4:42 pm
Location: Surrey, southern England

Postby reelyor » Mon Sep 27, 2010 7:46 pm

I like the wildcard method, having learned from David Whyld. I substitute synonyms when needed, and try to think of the possible verbage a player might use before entering the task.
I tried the advanced method, and found it to be too limiting with regards to getting the correct input unless making many tasks to accomplish the same thing. Synonyms are easier and quicker - and remember that the tasks will "drop through" until the correct one is found.
"Live well, Love much, Laugh often"

Working on: "Deperate Isle" and "Niki - An Adult Graphic Adventure"
User avatar
Posts: 494
Joined: Sun Dec 21, 2003 5:40 pm
Location: Massachusetts, USA
Points: 10

Return to ADRIFT 3.9 and 4.0

Who is online

Users browsing this forum: No registered users and 2 guests