Resets and repops

Adam Wiggins nightfall at inficad.com
Sat Mar 22 19:49:05 CET 1997


[NY:]
> Actually, Object display is static. The issue here is the "player added"
> routine for the Location. Whenever a Player requests info from an Area, in
> any form, it takes the form of adding the Player, by proxy at the least,
> to the Location, for whatever duration, then extracting the Player later.
> If I wanted to keep everything alive, I could put a null Player container
> in every room in the game, or even define the Location default with player
> present flags... but, I think of this as equivalent to a haunted house.
> You ever run a really good haunted house? The secret is, have everything
> ready for the people coming through, and give them some background noises,
> but don't have the scenes all running when they are empty. This just tires
> out your actors and gains nothing. Same with my MUD. Its all about how
> convinced the Players are, after all. And Shrodingers can could have
> remained undefined until opening time, instead of trying to calculate
> every milisecond whether the isotope decayed and released the poison. The
> end result is the same to the outside observer.

Okay, sounds like you've got everything under control.  I'm still lazy,
though.  The only concession to memory/processor constraints we're
planning to make use of is the item-cleanup thing I already mentioned, and
a 'statis' mode for untouched zones.  Thus a zone with a player in it right
now will have mobiles running their AI routines every second or more to
decide what they should be doing, whereas one that was just left recently
by a player runs at, say, once every 5 seconds, and zones which haven't been
touched in a while only move once every minutes or less.
However, I find it hard to get worried these days about processor and memory.
First of all, our mud with only a base area loaded up takes approximately
the same amount of memory as the tcsh it's running in.  Secondly, I
made a tiny code mistake a few months back that caused the mob AI pathfinding
routine (recursive, which can get rather nasty for long distances) to be
called 20,000 times per second instead of only when it needs to find a path
(should be once every couple of real life minutes for most mobiles).
The only reason I noticed is that our CPU usage jumped from 3% to like 8%.
Since then we've upgraded to a computer that is signifigantly faster (mud
compiles in 20-30 seconds instead of 1-2 minutes) and has four times as much
ram.  So I have trouble getting worked up about processor usage :)

> *smirk* I did write an area that had a certain species being generated
> like clones on an assembly line. _Very_ like clones... that's exactly what
> they were. I guess its nice having things like that... things are a little
> too turbid in my world to notice, though. There are few stores, and many,
> many battlefields.

My co-imp used to build for a mud we used to play together, and he always
had monster creation rooms with whimsical decriptions of artificers hard
at work constructing various mobiles.  They'd load up in that room and
then wander out through the one-way exits, to avoid having them just 'appear'
in rooms with the player (since he didn't want to make his zone pop-if-empty).

> Er.. the second case. Seperate game worlds. Yes, a tad messy, but no one
> is going to design a complex Area if its gonna get turned into a crater by
> the first hotshot Character to visit it... unless it can also get turned
> into a crater by the second, third, and so forth. This lets a Player feel
> like he's accomplished a permanent thing (until he gets to be a builder of
> high enough skill to catch on) without making the builder feel like his
> beautiful Area has been trashed.

Nod...I'm curious to know how the resolution of room descs works.
Like...one guy is standing there who thinks its a crater, someone walks
in who's never been there before...they are both seeing different things?
Or the crater-guy somehow transfers his info to the new arrival?

[memory bases..]
> :Amusing.  Could even toss player notes onto a given memory, thus:
> :
> :> note silke this asshole tried to steal my hat!
> :
> :And later...
> :Silke has arrived from the north.
> :> ponder
> :> recall Silke
> :You seem to remember thinking, 'This asshole tried to steal my hat!'
> :> growl
> :
> :Hmmm.  Dang, that could be useful in real life:
> 
> Hey! I liiike that! Mind if I steal the idea?

I wouldn't write about 'em if I didn't want people to use them. :)

> :A tall man approaches you.
> :A tall man says, "Adam!  How's it going?  Been a long time!"
> :> say uhh....
> :> recall man
> :You think really hard, trying to remember anything you can about the tall man
> :Hmmm, you think his name might be "Phil."
> :> ' how's it going phil
> :Phil says, "Uh, it's 'Bill'."
> :> doh
> :> name phil bill
> :You will now call him 'Bill'.
> 
> *grin* Never thought of scrambled names...

This was actually the first thing that occured to me when we put in memory
(oh so long ago).  The other nice thing about storing your last remembed
state of someone, aside from the disguises and things, is that you immediately
'notice' new things, but you can choose to filter out things that your
character already 'knows'.  Thus if you're used to seeing Chani wearing
a stillsuit, and she walks in wearing one, you just see:

Chani has arrived from below.

versus that guy who _hates_ wearing stillsuits:

Joeseph, clad in a stillsuit, has arrived from below.

or:

Joeseph, missing an arm, has arrived from below.
> say joe!  what happened to your arm??

> *grin* well, I keep trying for those. Sooner or later, one of these Turing
> AIs is gonna pull it off.

Actually, it's not all _that_ tricky.  That mud I metioned above that
my co-imp used to build for had a couple of pretty nice mob-procs.
Uhh....Flewder was one, and then some warrior guy.  They'd cast spells on
you, group with you, etc etc.  Or Biff the Dragonslayer, who we jokingly
referred to as Biff the Newbie Slayer.  Basically he'd shout, 'All
those that wish to hunt a dragon, come to me!' every so often.   I think he'd
only take people under level 15 (on a 50 level system) with him.  They'd
follow him, he'd group them and they'd head off to fight the green dragon
nearby.  Now, the dragon wasn't all that tough...Biff would usually kick
its ass.  However it liked to breath partway through combat, usually doing
enough damage to kill any character (particularly spellcasters) under level
10, not to mention fragging most of their eq.
Heh, that was a pretty lame mud, but at the time it seemed cool.
Anyhow, the main problem I see with mobs is just their repetitiousness.
That is, what breaks the illusion is this:

> say flewder, cast fly on me
Flewder says, 'Just a moment, I'm all out of mana right now!'
Flewder sits down and rests.
> say flewder, cast fly on me
Flewder says, 'Just a moment, I'm all out of mana right now!'

It would be immediately better if he'd choose from a list of mesages
randomly, and better still if he 'remembered' recent requests:

> say flewder, cast fly on me
Flewder says, 'Just a moment, I'm all out of mana right now!'
Flewder sits down and rests.
> say flewder, cast fly on me
Flewder says, 'I *said*, just a moment!  Sheesh.'
> say flewder, cast fly on me
Flewder says, 'Look, if you keep pestering me, you're not gonna get your fly at all.'

> :Ha...I still read and post to r.g.m.*, mostly because they have pretty
> :low traffic anyways (especially when you cut out the spam with a nice
> :killfile or a quick next-message-key finger), but I do get tired of the
> :"Are you out of your MIND?!?!?" and "Why would anyone want to play any
> :mud that isn't exactly like all the ones that are existing right now?
> :You ought to quit wasting your time and just code yet another druid
> :class, or maybe C00L ANS1 C0L0RZ."
> 
> Well, we've had a couple of nice discussions pop up from time to time. I
> try to fan the flames whenever one of them comes up... potential recruit
> screening for here, for one thing. *grin*

Very true.  And I must say I do enjoy fanning the flames, myself, despite
my better judgement...




More information about the mud-dev-archive mailing list