Issues from the digests and Wout's list

clawrenc at cup.hp.com clawrenc at cup.hp.com
Thu Apr 10 18:57:45 CEST 1997


In <199703040508.FAA81286 at out2.ibm.net>, on 03/03/97 
   at 12:13 PM, alexo at europa.com (Alex Oren) said:

>I know that C&C, Spoofs, Watchers, Affects/affects, etc. have been
>beaten to death in the previous (Wout's) incarnation of this list,
>but some of the later participants might benefit from a concise
>summary.

Is this still true?

>One of the things that were not discussed at length is the issue of
>parsing and handling user input.  Could you comment on that too?

<shake head>  

The only outstanding one I can remember here is suggesting command
compleation ala:

  > get bag
  Do you want the:
    1 -- Mouldy sack
    2 -- Paper bag
    3 -- Leather satchel
    0 -- Cancel command
  >> 3
  You take the leather satchel,

I currently do this, with caveats for nested compleations, multiple
character support (multi-playing) and priority interrupts.

>Some of the discussions that (IMHO) were left unfinished were:

>1) The combat system.
>* Limb based combat.

Someone else will have to resurrect this one/  I'm not a big fan.

>* Staged combat (scripts).
>} > By default chop at Bubba's legs with the shield.  But, if Bubba swings
>}   at my head, buck and stab at him with the sword.  If Bubba attacks my
>}   legs, jump clear while smashing his head with the shield.  If Bubba
>}   attacks my middle or arms, block with the shield and stab his legs with
>}   the sword.

I'd like to ressurect this one.  There's a lot of value in there to go
yet.  My current model for the combat scripts is woefully crude, and
not very human readable.  My recent moves to de-emphasise physical
combat in place of stressing magical and/or mental battles is also not
helping.  I need something a lot more freeform.

Hurm.  A combat script needs to be able to express the following:

--  Attacks, where blows are any of magic, physical, mental, or
aggressive defenses.

--  Defenses, where defenses are any of magic, physical, mental, or
defensive attacks.

-- Feints, where a feint can be an illusory attack or defense.

-- Sequences, where a sequence is any ordered set of attacks,
defenses, and feints (including a sequence of one member).

-- Reactions, where a reaction is a defined sequence to be used in
response to a stated sequence or sequence characteristic from a
defined or undefined opponent.

-- Scripts, where a script is a statement of the various sequences and
reactions to attempt during a combat round.

The design is for every combatant to submit a script (as above) to the
controlling Combat Object for the fight for each round (I use round
based combats).  At the end of the round, the combat object resolves
the scripts against each other (eg feedback loops between reactions),
and sets the sequences attempted by each combatant.  These resolutions
are then sent back to the combatants, they do them, the relevant
damages are levied (this is all automatic), and the next round starts. 


The oproblem here is to define a simple user-friendly scripting
language which is capable of expressing the sequences and reactions
constituting a script.

This also raises the doubt in my mind that my basic approach to combat
is flawed.  Most MUDs treat a fight as some sort of special state. 
Various commands are no longer available, new ones are added, motion
is commonly curtailed, etc.  To an extent the combatants are removed
from the normal run of the game.  

This creates verisimilitude problems.  Bubba sits high on a cliff with
a sniper's rifle and shoots at some chap a couple miles away on the
plains.  Are they *really* in a fight?  What if the guy on the plains
climbs into a tank and fires a howitzer back?  How about the sniper is
instead a spell caster and the plains hugger is a knight in a tin can? 
How about the lurker in ambush who throws a knife?  The guy in the
middle of the street who throws a knife?  They guy who stabs you in
the back?  The pitched battle?  The melee?  The two tanks sitting on
opposing hills trading shells?

There's a concept of level of engagement here that I'm not sure how to
deal with.  It get messier when you realise that many actions are not
fighting actions in themselves, but may effectively act as attacks or
defenses when in a battle.

Consider the hyopothetical battle I posted earlier:

--<cut>--
  UggUgg slashes at you with his Sword of Instant Beheading 
    and minor discomfort!
  > cast soakhole on uggugg
  You cast the dreaded mana eater soakhole on UggUgg!
  UggUgg sneezes and buries your in green snot!
  Your armour suddenly dissappears!  
  Your spell of magical summon protection fails!
  Your spell of magical sight fails!
  UggUgg's Nose Ring of Killer Snot dissappears!
  UggUgg's Belt of Gas Containment dissappears!  Phew!
  UggUgg's dagger of wart removal dissappears!
  > cast create mana
  You create 5,000 units of mana!
  Your mana stores are now empty.
  >cast $my_protections
  You are now magically potected from summons.
  You can now see all magically hidden objects.
  UggUgg thows a blade of painful castration at you!
  > jump!
  You leap mightily.
  The blade misses!  You are still a baritone.
  > attack uggugg with spear
  You ram UggUgg through with the spear of Icy Death!
  UggUgg now has the flu and looks a bit watery about the eyes.
  UggUgg picks up a rock.
  UggUgg bases you with a rock!  Ouch!  That hurt!
  > throw TC at uggugg
  You throw the charmed trash collector at UggUgg.
  The TC englobes UggUgg!
  UggUgg gives you the Sword of Instant Beheading and minor
    discomfort.
  UggUgg gives you the Boots of Mighty Chilblains,
  UggUgg gives you the Goggles of Big Farts.
  UggUgg gives you Super Nose Hair Puller.
  The TC has eaten everything UggUgg was carrying!  Yech!
  UggUgg is naked!
  Your spell of magical summon protection fails!
  Your spell of magical sight fails!
  Your spell of magical tummy tuck fails!
  Your spell of power voice fails!
  Your spell of land control fails!
  Your spell of bowel control fails!  
  Your spell of toe cheese protection fails!
  > stat spells
  You have no spells.
  > stat mana
  There is no mana here.
  > strangle uggugg
  You wrap your hands about UggUgg's neck and begin to squeeze!
  UggUgg prays to the Great God GooGoo!
  GooGoo mana blesses the area!  
  There is a LOT of mana here!  You skin prickles!
  > i
  You have a mana shielding sack
  > l in sack
  There are 5,000,000 TC spores in the sack.
  >empty sack on UggUgg
  The spores eat all the mana!
  There are 5,000,000 TC's here!  Wow.
  All the mana is gone!  
  ...
--<cut>--

Your giving the charmed TC to UggUgg __acted__ as an attack in the
context of a fight because the TC attempted to eat UggUgg's inventory. 
However, normally giving someone a TC, even a charmed TC would not be
an attack.  Similarly, UggUgg giving you his magical inventory in an
effort to exhaust your mana stores and cause all your magical objects
to destruct in the context of this fight was an attack.  However
giving someone a macgical item or items during a fight is often NOT an
attack.  This same sort of dichotomy holds true for the TC spores.

These are not fighting actions any more -- but in the context of a
magical battle where indirect control and manipulation of the the mana
supply is the major weapon, they suddenly turn into fighting actions.

Think you have a rule?

What if Boffo the clown wanders into the fray, DOESN'T join the fight,
but does proceed to do all the same things as above (giving magical
objects etc).  He could be trying to help you by giving you a super
magical weapon, or help UggUgg by accellerating your magical
inventory's decay...

Friend or foe?  Context driven I'm afraid.

I'm beginning to think that fights should be handled like any other
player interaction.  Let each player enter individual commands for
each blow which are then handled as if they were exactly the same as
every other command.  Allow automation of this process via scripts
etc, but forget the whole deal of combat objects, rounds, etc.  Let
the guy pick his nose one command, shoot his neighbor the next, and
water his garden the third.

Problem:  Fast typists and fast clients have a massive advantage. 
Solution: All commands need to be paced.  Problem:  This makes for a
laggardly game.  Next thing you know you'll be insisting that
characters rest and sleep, feed and shit, and wear holes in their
longjohns.  Whaddya want?  Toothbrushes and cavities?  Athletes foot? 
Jock itch?  Flatulence?   I can see it now:

  Bubba of the awful farts...

<<Still thinking>>

>2) Namespaces.
>* Allowing players to name one another.
>* Introduction systems.
>* The "familiar face" element and remembering/forgetting names. *
>Naming objects and exits.

I proposed this initially.  I still rather like my solution where
there are no global names, there is no WHO command etc.  Players can
assign whatever names they wish to whatever they see, be they rocks,
mobiles, other players, or whatever, and those name assignments are
private to that player.

I'll flesh this area out later if anyone is interested.

>3) Skills and skill trees.

Nathan: I like your recent comment on flat trees without
pre-requisites (eg anyone can *try* to fly, it just won't work if you
don't have wings/rocket assist etc)  Care to expand?

>4) Rumors.
>* Decaying rumors.
>* "Alerting authorities".

We definitely need to get back into this.

>5) Containers and grouping.
>* Handling different yet similar objects.
>* Groups of people/mobs.
>* "Piles of junk".
>* Referring to specific items/individuals in a group.

Still no real idea how to handle.

>6) Global mob AI.

Ouch.  Like it.  Don't have an elegant solution yet.

--
J C Lawrence                           Internet: claw at null.net
(Contractor)                           Internet: coder at ibm.net
---------------(*)               Internet: clawrenc at cup.hp.com
...Honorary Member Clan McFUD -- Teamer's Avenging Monolith...





More information about the mud-dev-archive mailing list