[MUD-Dev] Re: How to handle log-outs in a totally dynamic world.

Adam Wiggins adam at angel.com
Thu May 14 19:11:23 New Zealand Standard Time 1998


On Tue, 12 May 1998, Ben Greear wrote:
> On Mon, 11 May 1998, Dan Shiovitz wrote:
> > On Mon, 11 May 1998, Ben Greear wrote:
> > > I will definately try to not allow wild swings from one 'alignment' to
> > > another.  At least to the point where an evil pirate can't set his
> > > alignment to good right before logging off...
> > 
> > I don't think there's any need to prevent the players from changing
> > their personality. Just remember that if someone's been nasty and
> > aggressive to you for a long period of time and suddenly starts being
> > friendly, that's almost always a sign of weakness or stupidity on
> > their parts*. Then have the NPCs respond appropriately. (This gets
> > trickier if the NPCs don't remember how players acted in the past .. 
> > in that case you might want to restrict personality changes, yes).
> 
> Yeah, good point.  Keeping logs for every entity in the game could
> be quite large, but I do think it would be worth it...  Suppose you
> could encode the info in 5 integers, 40 bytes, and have 1000 ppl
> you *could* meet... 40k for each player/NPC..ouch!!  Could always 
> flush old entries, "let bygones be bygones...".  And could only remember
> grievious or particularly helpful individuals/Corporations...
> 
> But, NPC's die fairly often, so they would get 'flushed'.  Corporations
> and such would remember longer, but there won't be too many of them.
> Hrm, what about players though, when offline?  Could store this on
> disk and hope it's not accessed too often.  (Cache for a bit and
> destroy if not needed....)

Orion and I ran into this while setting up our NPCs event memories.  Each
event is small, but when you keep track of every last thing, it can add up
quickly.  What we did was start blending old memories together.  As it
turns out, this is pretty realistic.

Each memory has a severity value - you'll remember the specific instance
of Bubba saving your life for many years to come, but you'll quickly
forget about the sword that you sold to Biffy last week.  So, the oldest
and lowest severity memories get rounded up once every so often, sorted,
and shoved together.  Thus you might have the following memories of one
week:

  Bubba saved my life
  Bubba asked me how I was doing
  Bubba sold me a rapier
  Biffy said hello to me
  I sold Biffy a sword
  I sold Boffo a rapier

Two weeks later, the memories would become:

  Bubba saved my life
  Bubba is a good friend
  I sold some swords to some people

Then, as a player querying the NPCs, you'd get pretty realistic results.
If someone asked how sales were yesterday, they'd say "Not bad, I sold a
sword to Biffy and a rapier to Boffo."  If you asked them two weeks later
they'd say, "Yeah, I sold some swords that day..."

Eventually they'd get VERY general.  The way that which events could be
concatinated was based primarily on who and what.  A whole bunch of events
about one person becomes a specific feeling about that person - ie, the
NPC 'knows' them, even if they don't recall every last event that ever
transpired between them.  A whole bunch of similar events about 'unknown'
people get shoved together based on event type, and similar objects are
concatinated by object type.  A slightly more complex situation would be:

Day 1:

  I sold a sword to Fred
  I sold an axe to Tim
  I sold a rapier to Beth
  I sold a helm to Bill
  I sold a bracelet to Jill
  I sold a mace to Hellen

Day 10:

  I sold some swords to some people
  I sold some armor to some people

Day 20:

  I sold some stuff to some people

Then, finally, they get concatinated by time.  If you've got a "I sold
some stuff to some people" event on each day from Mon thru Fri, you end up
with an event "I sold some stuff to some people that week", which could
eventually go to "that month" and "that year".

Ideally the NPC would end up with extremely old memories like:

I sold weapons from Sept '97 to June '98

Thus you could ask them: 'So what did you do before you started working
here?' or 'What were you doing three years ago?'

You could potentially extend this to include events which weren't
important, but which stuck in the NPC's head due to the signifigance of
other events going on at the time.  Ie: "I remember the day the volcano
exploded over my village quite well.  I was selling Biffy a sword at the
time..."


Adam



--
MUD-Dev: Advancing an unrealised future.



More information about the MUD-Dev mailing list