[TADS] Whois implementation

3 views
Skip to first unread message

Coorlim

unread,
Nov 30, 1999, 3:00:00 AM11/30/99
to
I'm trying to figure out how to implement a "Who is/ What is" verb as
part of my game's help system to inorm the player of what the character
already knows about certain NPCs and objects. The syntax of the verb
will be "Who is <<object>>".

What I'm trying to figure out is how to give the player access to
objects that are not physicly present. I thought of creating
floatingverb constructs, but wouldn't that cause problems if the actual
NPC was present as well?

>WHO IS BOB

Which do you mean, Bob or Bob?

-Coorlim

Kevin Forchione

unread,
Nov 30, 1999, 3:00:00 AM11/30/99
to
Coorlim <Coo...@yahoo.com> wrote in message news:38442E...@yahoo.com...

> What I'm trying to figure out is how to give the player access to
> objects that are not physicly present. I thought of creating
> floatingverb constructs, but wouldn't that cause problems if the actual
> NPC was present as well?
>
> >WHO IS BOB
>
> Which do you mean, Bob or Bob?

Yes, it would cause you problems. The asktell.t approach is the one you want
to take. This is one of those cases where disambigDobj() would work very
well. You put this parser hook in your whoisVerb and handle bob just like a
topic.

IMHO ... the full potential of the deepverb parser hooks have only just been
scratched.

(Incidently, Inform boasts of a scope==routine and scope==scope_routine
mechanism available for its grammar, which are used to define the scope of
certain verb templates. Expanding the use of topics and actor conversations
is one of the best ways of getting to grips with the scoping mechanism. This
sort of mechanism is also inherent in the deepverb structure, and could be
formalised.)

There's alot of power in the validXoList / validXo / disambigXobj() methods.

--Kevin

Suzanne Skinner

unread,
Dec 1, 1999, 3:00:00 AM12/1/99
to
Coorlim <Coo...@yahoo.com> wrote:

>I'm trying to figure out how to implement a "Who is/ What is" verb as
>part of my game's help system to inorm the player of what the character
>already knows about certain NPCs and objects. The syntax of the verb
>will be "Who is <<object>>".

>What I'm trying to figure out is how to give the player access to
>objects that are not physicly present. I thought of creating
>floatingverb constructs, but wouldn't that cause problems if the actual
>NPC was present as well?

The best way to handle this, IMHO, is to create a verb for which only
topics (a special kind of abstract object) are in scope, and have a set of
topic objects that run parallel to game objects. However, implementing this
well is a bit complex, an involves the use of the parser hooks disambigDobj
and disambigIobj. You might want to check out the manual and source code of
Chatter (http://www.igs.net/~tril/if/chatter/) to see how I handled it.

-Suzanne

--
tr...@igs.net http://www.igs.net/~tril/
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
"I'm sure the authors will write me and say yes, there were playtesters.
Sorry. It's a rhetorical question. What I meant to ask was, please, can I meet
the playtesters and *set them on fire*?" -- Andrew Plotkin

Coorlim

unread,
Dec 1, 1999, 3:00:00 AM12/1/99
to
Kevin Forchione wrote:
>
> Coorlim <Coo...@yahoo.com> wrote in message news:38442E...@yahoo.com...
> > What I'm trying to figure out is how to give the player access to
> > objects that are not physicly present. I thought of creating
> > floatingverb constructs, but wouldn't that cause problems if the actual
> > NPC was present as well?
> >
> > >WHO IS BOB
> >
> > Which do you mean, Bob or Bob?
>
> Yes, it would cause you problems. The asktell.t approach is the one you want
> to take. This is one of those cases where disambigDobj() would work very
> well. You put this parser hook in your whoisVerb and handle bob just like a
> topic.
>

How would I accomplish this?

-Coorlim

coo...@my-deja.com

unread,
Dec 1, 1999, 3:00:00 AM12/1/99
to
Well, I'm still mucking about with the Whois
verb... I've decided that there are two ways to go
about it, each with problems I have not the skills
to overcome:

1. I could have it refer to a floatingItem object
of the topic class. The problem here lies in
disambiguation. How would I teach the parser to
prefer the topic over the actual NPC with regards
to Whois?

2. I could refer to the actual character or item.
How would can i cause the verb Whois to refer to
objects not in the same location as the player?

This poor humble soul is greatful for any advice
rendered unto him regarding these matters.

On an unrelated note, I am working on a futuristic
chariot racing style game NOT based on Phantom
Menace... but it has a similar feeling as pretty
much anything of this kind draws from the Roman
races. Hopefully the main character in my game
will be a better Actor than Phantom Menace's.


Sent via Deja.com http://www.deja.com/
Before you buy.

Kevin Forchione

unread,
Dec 1, 1999, 3:00:00 AM12/1/99
to

Coorlim <Coo...@yahoo.com> wrote in message news:384517...@yahoo.com...

Suzanne's advice is the best. Take a look at her chatter implementation.
It'll handle your topics.

--Kevin

kar...@fermi2.chem.yale.edu

unread,
Dec 1, 1999, 3:00:00 AM12/1/99
to
Kevin Forchione <Lys...@email.msn.com> wrote:

: Coorlim <Coo...@yahoo.com> wrote in message news:384517...@yahoo.com...


:> Kevin Forchione wrote:
:> >
:> > Coorlim <Coo...@yahoo.com> wrote in message
: news:38442E...@yahoo.com...
:> > > What I'm trying to figure out is how to give the player access to
:> > > objects that are not physicly present. I thought of creating
:> > > floatingverb constructs, but wouldn't that cause problems if the
: actual
:> > > NPC was present as well?
:> > >
:> > > >WHO IS BOB
:> > >
:> > > Which do you mean, Bob or Bob?

:> >
: Suzanne's advice is the best. Take a look at her chatter implementation.


: It'll handle your topics.

What Kevin means to say here is, go to http://www.igs.net/~tril/if/chatter
and download the chatter.t module. It's got several gazillion features,
many of which are impressive, one (2?) of which is complete implementation of
"who is" and "what is".

The only problem I foresee is that you'll have to actually read the manual
and change the "tell" and "ask" stuff currently in your game to fit with
the chatter methods.

The basic point here is that someone's already done it for you, so unless
you want to make a point, just steal their work.

-Amir Karger

Reply all
Reply to author
Forward
0 new messages