[MUD-Dev] Re: Issues from the digests and Wout's list

Adam Wiggins nightfall at inficad.com
Fri Apr 25 19:59:46 New Zealand Standard Time 1997


[me:]
> >Hmmm.  Yeah, that's what I mean - we have nothing at all to indicate
> >any sort of combat state - certainly no combat object.  You simply
> >have two (or more) guys (or gals, or even objects) which are doing
> >certain things at certain times.  If those things happen to be
> >hacking at each other with big axes, we like to assign the tag
> >'combat' to the situation, but the mud makes no such distinction.
[JCL:]
> Does your combat have some sort of automated attack/defense?  That is,
> can a user launch a command like "Kill Boffo" and more or less sit
> back and watch the slaughter?  If not, if Bubba does a "Kill Boffo"
> and then does absolutely nothing further, will anything in fact
> happen?  I suspect that there is a question of state in there under
> the comvers.

Yes.  What you have are two seperate sets of data.  One contains what
you are 'attempting'.  Ie - typing 'headbutt' doesn't just headbutt
immediately, it just sets into your attempts that you want to headbutt
at the next possible opportunity.  If that opportunity happens to be
now, you get an instantanous effect - and you will continue to try to
headbutt whenever it is convenient.  As you can imagine, this conveys
some other information to the system, since 'headbutt fred' indicates
that you want to a) get Fred into a position where you can headbutt him,
and b) actually headbutt him.  This may involve a lot of things, including
dropping whatever you are currently doing, moving into position to attack
Fred (which will probably trigger some stuff on Fred, of course) and then
doing the deed.
The second set of data is much more complex, and involves what your
character is actually _doing_, which can be an unlimited number of things.
This is everything from hanging onto a rope, to casting a spell, to
drinking some ale, to circling Fred.  In the last case, you're probably
attempting to do something related to hacking Fred to little bits, but
not always.  You may be attempting to run away, or teach Fred how to
swordfight, or even drink a mug of ale.  The system then must decide what's
the best way to get from the current task(s) to the desired (attempting)
tasks.  Thus if you're hanging on a rope and defending against Bob, typing
'eat bread' will indeed have an effect, but it will have the effect of
setting your attempt to be eat this piece of bread in my sack.  Unfortunately,
this may not happen anytime soon, since you have to get off the rope, get
to a position where you're no longer threatened by Fred, free up your hands,
get the bread from your sack, and only *then* can you actually do what
you were trying to do.  On top of this, you can be doing multiple things
as well as attempting multiple things at any given time.  So you can be
hanging on a rope and fighting Fred while attempting to eat your mutton and
drink your ale.
So it's as I said originally - there is indeed a "state", but it's really
in the mind of the player as to what that state is.  There's nothing you
can do like if (ch->is_fighting()), or if there is, it's because is_fighting
is a complex routine that takes into account a whole bunch of things.

> >My mana is suddnely all gone, which makes me angry.
> >My mana is all gone because of the objects nearby, so I am angry at
> >the objects. The objects are nearby because UggUgg tossed them there,
> >so I'm angry at UggUgg.
> 
> <wince>
> 
> That way leads madness.  The traceback of causality can (and often
> will be) incredibly ugly especially given, say, the liquid nature and
> flow of mana.

Eh, how's that?  Hmmm...maybe if the effect is too delayed it could get
difficult, but I don't see how it's difficult for the player to decide
that the last person they saw interact with the object that screwed them
over is the guildty party.  This has the nice effect of making it so
that if someone does something incogneti, it's very easy to 'frame' others,
as I think I mentioned before.  Someone walks into the room, drops some items
on the ground...you don't really pay attention, but someone invisible then
picks them up and throws them at you.  Assuming that you didn't have the
spacial stuff which I believe you have (meaning they would get a message
about the objects floating around on their own), they'd get mad at the
person who originally dropped the objects, since what they saw was:

Boffa drops a magical sword.
(pause)
A magical sword suddenly drains all your mana!

Or whatever.  I'm not saying this isn't somewhat tricky (keeping a list of
things that happened in the character's sight recently), but you're the
one that wanted to do it this way...

> Good point.  I have a system default combat package which rides along
> on default bodies, but its, err, well, wimpy.  Its basic modus
> operandi equates pretty well to, "run in circles, wave your arms
> about, scream and shout, hit him with your inventory, run some more".

Heh.  Well, just as long as it's not frustrating.  MUD-types are used
to being able to jump into combat right away, especially if they choose
a dwarven berserker with ten years of combat training.  This might quickly
prove tiresome.  On the other hand, it should force them to learn more
about the combat system - hopefully the simplest and most important commands
should be easy enough to understand and your help is well written and
organized in such a way so that a descently intelligent person can figure
it out within 15 or 20 minutes.  If I can't figure out what's going on
or find soemthing to catch my interest within about half an hour upon
logging onto a new mud, I usually leave.

> The point of a learning curve also raises the question (outside of
> steepness and duration) of how much better a player at the top of the
> learning curve should be than one at the bottom.

True.  On today's muds, knowledge is power.  Someone who knows all the
tricks and locations and whatnot of a given mud can take a newbie
character and whip them into shape in no time at all.
I like this, and I'd like to maintain this, even though our mud plays
vastly different from its peers.

Basically it's like this.  Let's say, for example, that you're fighting
someone and they grab you and drag you down to the ground.  Your character
will happily elbow, knee, bite, claw, and whatever else he feels like
while you're down there.  As the player, you know full well that being
a minotaur, headbutting is by far your best option, so you type 'headbutt'.
Now you're just gonna sit there and try to headbutt the hell out of them.
Then you remember that you're wearing a spiked kneeguard, so you type
'knee'.  Now you'll knee them when it's convenient, and headbutt them when
that's convenient.  The other character would just keep pounding away, but
the player who's playing him realizes that he's in a bad position, and even
though he hasn't taken any real damage yet, that spiked kneeguard has
come awfully close to the family jewels once or twice.  So, he opts to
try to stand and go to combat that is further from the ground.  At this
point he starts trying to stand up.
As you can see from this simple example, the fight will still 'work'
if they had never typed anything from the starting point of the example.
They'd happily claw away at each other until one character hit his 'wimpy'
(a mud-term we use to relate to the level at which your character decides
his's no longer in shape for combat).  The first player made a wise choice
by choosing the 'moves' which would win him the fight.  The second player
made a wise choice by standing up when they did - they might have lost
had they stayed in that position.

End result is that your character isn't _stupid_ without your input, but
the person who is closely monitoring what is going on and issuing commands
based on the current situation is probably always going to win unless they
are just vastly outmatched.  (The analogy here is a swordmaster showing
a studen the ropes - the swordmaster hardly even has to think to parry
the incoming blows.)




More information about the MUD-Dev mailing list