[MUD-Dev] Alright... IF your gonan do DESIESE...

Alex Oren alexo at bigfoot.com
Tue Jun 24 07:06:02 CEST 1997


Nathan wrote:

} On Mon, 23 Jun 1997, Shawn Halpenny wrote:
} 
} :Did the discussions about rumor-spreading touch on this?  (The parts of them
} :that I saw did not).  It's easy enough to create a rumor based on the
} :occurrence of an event (e.g.  witnessing someone slaying a dragon), but in
} :this case, spreading a false rumor implies there was no event that caused
} :it, so how does the rumor get created?
} 
} I've already mentioned that, if I do create a rumor system, I intend to
} make rumors autopassable by PCs, IE "tell X about Y". This post started me
} thinking that this sort of thing could be extended further. For example:
} "Did you hear about Y?" <rumor recorder starts recording> Later, your
} listener can pass the rumor on normally. Now, to be effective, the
} triggers need to be the same as the output.
} 
} :It could be created and carried solely by players who choose to pass
} :it on to other players.  That's only a partial solution, since a
} :rumor will only travel if someone tells it to a player.  The other
} :part of the solution requires NPCs to be able to carry false rumors
} :(though not start them--I think it would be fantastically difficult
} :to automatically create sensible, at least somewhat believable false
} :rumors).  So how does an NPC overhearing or being told a false rumor
} :pass that rumor on?  And let's say that it must be done without using
} :something silly like a "rumor" command.  I think natural language
} :processing is buried in there somewhere...

See below.

} :    # l
} :    You see Bubba and Boffo on the side of the street.
} :    A shopkeeper is sweeping his front steps.
} :    # 'I saw Humperdink kill two dragons and an elderly lady!
} :    You say it.
} :    Bubba says 'No kidding!?'
} :    Boffo says 'The murderous rogue!  I knew she was no good...'
} :    The shopkeeper looks aghast in your direction and scurries inside.
} :    # snicker
} :    You snicker to yourself.
} :    # 'Oh, did I mention that my new china and flatware finally arrived?
} :    etc.
} 
} This sounds murderously impossible.
} 
} :Now the shopkeeper heard the Humperdink and elderly lady bit and
} :chalks that up as a rumor which he can pass on to as many people as
} :he wants to (a rumor juiciness factor comes to mind).  However, the
} 
} :bit about the china and flatware would make a pretty shoddy rumor,
} :IMO, and the intent is to have NPC passers-by disregard things like
} :that.  I cannot, however, think of how an NPC would distinguish the
} :two.
} 
} :Thoughts?
} 
} Fully functional AI?

Nahhh... an overkill.  Let's simplify it a bit.

[please note that the capitalizations in the statements is weird on purpose.]

Assuming you have a decent parser (which I don't have, anybody wants to give me
some instructions?).

1)  Parse the overheard statement.

2)  Heuristically substitute some of the words, depending on the environment.
    (Bubba says: "i will give you the one ring".  Boffo is nearby.  The 
    statement becomes "BUBBA will give BOFFO the one ring".)

3)  Assign scores to certain "important" keywords.  E.g.: killed, robbed, 
    dragon, clawrenc, etc.

4)  Sum up all the scores in the statement (maybe weighted by word proximity so 
    that "i KILLED a DRAGON" gets higher weight than "bubba KILLED the princess 
    that was guarded by the DRAGON").
    The higher the score, the higher the chance of generating a rumor.

5)  Generate a plausible statement from the keywords, adding syntactic sugar 
    (not being familiar with the technical terms for english grammar, such as 
    adjectives, etc.)
    This is the rumor to be spread.

Now, the above algorithm is prone to generate more false rumors than true ones.
Not necessarily a bad idea in itself, but we might want to adjust the
probabilities a bit.

So:

6a) Whenever a mob generates a rumor, it won't start spreading it until it 
    generates at least X rumors with, say, 80% of the same keywords (preferably 
    from different sources).

-or-

6b) Cheat.  Have a central repository of important events and cros-reference the

    generated rumor with it.  Make the success of the check skew the rumor 
    generation probability or the exact wording of the rumor.

OK, what about rumor mutation?

7)  A mob receiving a rumor from another mob will apply a similar algorithm for 
    rumor recognition.

Problem: this will cause too much mutation and decay.

Solution:

7a) A mob receiving a rumor from another mob will recognize it as a such (it can

    be done implicitly, by creating key phrases in the rumor e.g. "It was said 
    that...", etc. and recognizing them) and will pass the rumor unchanged most 
    of the times.

Comments?  Ideas?


Have fun,
Alex.




More information about the mud-dev-archive mailing list