[MUD-Dev] natural language parser (Output)
Nathan Yospe
yospe at hawaii.edu
Sat Jul 12 14:19:03 CEST 1997
On Sat, 12 Jul 1997, Marian Griffith wrote:
:On Wed 09 Jul, Nathan Yospe wrote:
:> On Fri, 27 Jun 1997, Huibai wrote:
:> :Brandon Cline hath ordained:
::: The only problems I see with who lists, are that they are un-
::: realistic, and allow for generlizations like, oh so-and-so isn't on
::: the who list, he must have logged out, which people shouldn't
::: be able to tell anyways, shrug.
:Maybe not, strictly speaking, but realistically it's important to the
:players to know if somebody else is playing too. If only for the rea-
:son you outlined above. You could easily make it a little less simple
:to acquire that information. Perhaps having a board in the local pub
:that shows who signed in and out; as a public service to the townfolk
:so they know which strangers are in their realm. This means that each
:player can find out by strolling to this pub but can't tell once they
:are out and adventuring. They also may truthfully tell the gate guard
:where they are heading if they leave town and allow others to follow.
:Or they may not if they need to keep that information secure.
Now, that is an interesting compromise. I allow people to check from the
shell account, which means that it can only be done out of character, and
the location, within the game, of another can only be gained via
approximate results from the shell... once in the game, everything is in
character. Of course, this ooc knowledge allows perpetuation of
story-setting "coincidences", an aspect of P&P quite difficult to achieve
in network games.
:It you do this you wull probably find a lot of players ranting at you
:but your who is marginally in theme while still functional. The same
:can be said about 'tell' or 'page'. They're important conveniences to
:the players and should be available, though there might be a cost for
:them that keeps them marginally in theme. Probably you need an inborn
:telepathy skill that ca not be acquired. Or a sufficiently powerfull
:mage to send a message by magical means or a priestly prayer that her
:diety passes on to a priest in another town. NOT something like: "Hey
:we're toasting the red dragon. care to help?"
The communicators of a high-tech game world are a great relief to my
efforts to add realism without stripping fun.
::: I forgot to bring up about making stuff less game termish,
::: So that you don't have someone saying "Oh man, that 50th
::: level dragon took off 200 hit points per round, he's tough."
::: Instead you get, "Wow, we fought an elder dragon ealier today
::: and his claws sliced right through my plate armor, knocking me
::: to the ground, it was all I could to to get up and run away while
::: he was distracted by the rest of my group..."
:Definitely a much better read, but I'm afraid you'll find many play-
:ers will not like it at all. They prefer the clarity of numbers over
:the deliberate obscurity of phrases. In a game where combat and hit-
:points mean everything I don't think I can blame them, and a sliding
:bar to indicate your health is really much the same as numbers.
This, I think, will improve as a new generation gets used to these sort of
games. Or maybe I am too optomistic.
:This gets even worse when you use local damage. I.e. when your chest
:gets hit it is -only- your chest armour that deals with the blow and
:only your chest that gets bruised or injured. Then you need an awful
:lot of numbers or words to keep track of all those damages. And you
:get a very spammy combat because all those injuries must keep remin-
:ding you of their existence (much like in reality). I don't think it
:can be combined with fast paced action and still remain playable but
:I'm willing to be surprised.
Liberal use of noise filters is essential. An injured leg only makes
itself known when you put weight on it, unless it is overriding pain, in
which case it begins to drown out (get a higher filter weighting than) the
other information coming in...
:> Johnny Angel lopes by, his assult rifle slung over his shoulder. He grins
:> at you and gestures, waving you to follow. Ira pats your shoulder as she
:> runs past, and behind you Krr*ganfth growls as he straps himself into a
:> combat mech. Krr*ga's mech tromps past, and Captain HarshLight turns to
:> you and yells "Get a move on! This operation is important! If we pull it
:> off, I might be able to pull a generalship. [mutter damn uptight
:> mercenary] You mutter under your breath. HarshLight whirls around and
:> glares at you. Ira winks back at you and whispers "Don't mind HarshLight.
:> He's just not a very good roleplayer." Ira blanches. "Oops." [chuckle]
:> You chuckle. Krr*ganfth pushes open the bulkhead door with a groan. A
:> blast of heat and light blinds you and sears against your face. Someone
:> screams, and HarshLight roars over the comm, "It's an ambush! Fall back!"
:> You smell charred meat. Something sharp and hot tears into your left wing,
:> and you smell burning feathers momentarily before the dull numbness of
:> hurt penetrates, and your wing begins pulsing loudly. {note: this
:> character is a tre'laeci, and their species does not feel pain in the same
:> way as humans and glah*drack.}
:The above is lovely, but very hard to acquire. It also is hard to achieve.
:I've not only added which commands every player must give, but also what
:the game should be sending to produce this kind of atmospheric description
Aquisition may yet become a problem. I'm hoping niose filters will help,
and that players will adapt to reading text like a book.
:{seen: Johnny Angel <lopes> by <, his assult rifle slung over his
:shoulder.>[john:grin ..., follow]{seen: <He> grins at you <and> gestures,
:waving you to follow}[Krr*ganfth: growl, wear mech]{seen: <and behind you>
:Krr*ganfth growls <as he> straps himself into a combat mech.}[Krr*ganfth:
:goto ...]{seen: Krr*ga's mech tromps past}[cptn:yell ...]{seen: <, and>
:Captain HarshLight <turns to you and> yells "Get a move on! This operation
:is important! If we pull it off, I might be able to pull a generalship.}
:.....
:[Krr*ganfth: open bulkhead]{seen: Krr*ganfth pushes open the bulkhead door
:< with a groan>.}!A blast of light and heat!{seen+felt: <A blast of heat
:and light blinds you and sears against your face.>}<Krr*ganfth: scream>
:[cptn: shout: ...]{hear: <, and> HarshLight <roars over the comm,> It's
:an ambush! Fall back!}<smell: burn, charred meat>
:...
:Everything between { and } is what you eventually get on your screen?
:everything between [ and ] is a command somebody has to give,though I
:left the actual text of messages out, for clarity. Things between the
:< and > are difficult as here the game must reformat the messages ge-
:nerated by the commands to string them together. And in the case of
:Krr*ganfth being hurt makes him scream as well. Also it introduces a
:couple of scenic descriptions, like the charred meat.
:I wonder if it is possible to make a game understand so much of lan-
:guage that it can do this? I hope so because without it the scene be-
:comes something like this:
:Johnny Angel walks by.
:Johnny Angel grins at you.
:Johnny Angel gestures you to follow.
:Krr*ganfth growls
:Krr*ganfth wears combat mech.
:Captain Harslight yells "Get a move on!...."
:...
:Krr*ganfth opens the bulkhead.
:A combat mech hits Krr*ganfth.
:Captain Harshlight shouts "I's an ambush! Fall back!"
:...
:
:And then I doubt anybody would ever use so many words if the entire
:effect is ruined by chunky descriptions.
OK, let me try to take it apart piece by piece.... mind you, this WAS just
off the top of my head... but my parser is fairly close.
:> Johnny Angel lopes by, his assult rifle slung over his shoulder.
Johnny has already typed the 'go door' command... this is a fairly
standard interpretation of his motion. It could have picked some feature
of his face or clothing, or an interpreted action based on condition
("panting lightly") or preselected personality/traits ("his face set in a
grimace")...
:> He grins at you and gestures, waving you to follow.
This sort of thing may well be the result of the personality/traits
evaluator, or could have been directly input. Incidentally... in this
scenario, I think I only intended Ira and HarshLight to be PCs. These
touches are actually MORE common from NPCs, as they have a heavy
dependancy on their p/t eval.
:> Ira pats your shoulder as she runs past, and behind you Krr*ganfth
:> growls as he straps himself into a combat mech.
These sentances were linked because of concurency... they have no common
subjects, no common verbs. The growl is just p/t eval, probably. The pat
on the shoulder, on the other hand, would have required Ira to "pat XXXX".
This could have entered as a command at any point while she was moving
toward the bulkhead, and would have sceduled to execute when she came
within range, hence the "as she runs past".
:> Krr*ga's mech tromps past, and Captain HarshLight turns to you and
:> yells "Get a move on! This operation is important! If we pull it
:> off, I might be able to pull a generalship."
Krr*ga (if it were a PC) would have just typed "go bulkhead". This is
linked arbritrarily with the near synchronous command from HarshLight,
"yell XXXX Get a move on! This..." The turn is part of the execution of
yell.
:> You mutter under your breath.
You muttered something. HarshLight (without your knowledge) has aural
enhancement, and catches what you said.
:> HarshLight whirls around and glares at you.
HarshLight types "glare XXXX"
:> Ira winks back at you and whispers "Don't mind HarshLight. He's just
:> not a very good roleplayer."
Advantages of linked commands: Ira types "wink XXXX, whisper "Don't
mind..."
:> Ira blanches. "Oops."
Ira types ", blanches. "Oops.""
:> You chuckle.
You type "chuckle"
:> Krr*ganfth pushes open the bulkhead door with a groan.
The groan was involuntary. "open bulk" would have done it.
:> A blast of heat and light blinds you and sears against your face.
Basic sensory reaction to a plasma explosion... these are your senses
reacting.
:> Someone screams, and HarshLight roars over the comm, "It's an ambush!
:> Fall back!"
Scream was probably involuntary. Tends to happen when impulse buffers
(pain) overflow. Harshlight used a ";It's an ambush..." command... the
semicolon is a shortcut to the current primary communicator.
:> You smell charred meat. Something sharp and hot tears into your left wing,
:> and you smell burning feathers momentarily before the dull numbness of
:> hurt penetrates, and your wing begins pulsing loudly.
Sensory output. Tre'laeci are very sensitive to scent. This one was off.
It would have parsed (properly) as
You smell charred meat. Something sharp and hot tears into your left wing!
You smell burning feathers momentarily before a dull numbness of hurt
drowns it out, and your wing begins pulsing loudly.
Tre'laeci percieve sensory input differently from humans, part of an
effort to convey the feeling of playing an alien species.
__ _ __ _ _ , , , ,
/_ / / ) /_ /_) / ) /| /| / /\ First Light of a Nova Dawn
/ / / \ /_ /_) / \ /-|/ |/ /_/ Final Night of a World Gone
Nathan F. Yospe - University of Hawaii Dept of Physics - yospe at hawaii.edu
More information about the mud-dev-archive
mailing list