Issues from the digests and Wout's list

Shawn Halpenny rsh at dos.nortel.com
Thu Apr 17 10:28:49 New Zealand Standard Time 1997


> :>* 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.
>
> How about: an attack is any action which deliberately harms you, from your
> POV. If it was unintentional, but the attacker is of a sort unfamiliar
> enough to you that you didn't realize his electric buzz was a joke and not
> an attempt to fry you, then to you, that was an attack. No matter what the
> attacker intended it as. I can't see these scripts going inactive when not
> "in combat", mainly because combat is an arbitrary description of a state
> in which you and another entity are mutually attempting to cause each
> other damage, in my system.

The attack doesn't even have to be one such that it deliberately harms you.
Intention isn't a factor, since the decision to retaliate will always rest
with the victim (who can code his scripts appropriately:  that is, if he's
the jumpy sort, almost everything will cause him to retaliate, whereas
someone more calm would perhaps let an "attacker" get away with more).  For
example, if I'm sitting in a tavern, someone across the room chucks an
ale at me and it hits me in the head, I think whether or not I'd consider
it an attack would depend on my personal mood at the moment.  In any case,
it's my choice to get up and kill him, or just let it pass.  To a point,
though, I suppose that sort of decision cannot truly be automated, since
the number of factors seems (to me) to be substantial.  This implies that
the victim has to actively begin his retaliation combat script, rather than
having it kick in automatically (note that the jumpy sort has it easy,
since everything can kick in automatically).

> :--  Defenses, where defenses are any of magic, physical, mental, or
> :defensive attacks.
>
> Why must the script be able to recognize these as a seperate class of
> actions? Or do you mean successful defenses against your own actions, ie.
> failure of the target to display damage after you threw everything you had
> at it?
>
> :-- Feints, where a feint can be an illusory attack or defense.
>
> Again, why does this stand alone? There are too many ambiguities
> associated with breaking non harmful actions into categories..

I understand Nathan's PoV on this one, I think because I'm leaning the same
way:  I don't plan to make any distinction between offensive and defensive
actions, short of saying that offensive means damage can be done and
defensive means damage can be prevented.  Will the user coding his combat
script care if his defensive action is an illusory attack or just a
straight parry?  If there is a different advantage to using one over the
other, then yes, but does the combat engine require a distinction between
the type of defense?

> :-- Sequences, where a sequence is any ordered set of attacks,
> :defenses, and feints (including a sequence of one member).
>
> Do you mean like "charge, dodge, swing, parry, duck, block"? Hmmm.

Can sequences simply be chained-together commands with the odd conditional?
And then extrapolate to chained-together scripts?

> :-- 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.
>
> OK, this I can see. But why does it require recognizing the actions as
> "defensive", "feint"?

If you build the conditional into the combat scripting, then I'm not sure
you'd need reactions, since anything inside the conditional would be the
reaction to an action that the conditional evaluated to true.

> :-- Scripts, where a script is a statement of the various sequences and
> :reactions to attempt during a combat round.
>
> *nod*
>
> :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.
>
> Ack! Round based combat. That explains a lot. *gag* Sorry, but this went
> out the door for me a long time ago. It tends to spoil the momentum of a
> good story sequence, whereas reactive and monoactive events do not. In
> other words, it doesn't flush with the rest of the game.

I'm curious, Nathan, how long your "average" combat...er, session...lasts?
Is it fast-paced (assuming, say, a couple of matched-ability guys knocking
about with swords)?  Does each combatant have control over each atomic
attack (i.e. Ugg swings sword at Bubba.  Bubba sees this and then has a
slice of time to choose his reaction to Ugg's swing.  Etc.), or is it more
automated?  I'm not happy with the traditional combat model:  I want there
to be more thought and involvement in it, rather than just swinging your
sword, automatically blocking, and casting spells left and right.  I just
haven't hit upon a comfortable solution yet.

> :The oproblem here is to define a simple user-friendly scripting
> :language which is capable of expressing the sequences and reactions
> :constituting a script.
>
> That is extremely difficult. I'm still trying to create one of these
> myself. (My reflex system)

Well, is it plausible to simply use the commands that a character already
has available, with the addition of a conditional that would allow checking
to determine what a char's reaction will be?  This will definitely become
more involved (and possibly quite messy) with multi-character combat...

> :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.
>
> Yup. Now your talking sense. *grin*

I have an affinity for this scheme, but I agonize over it being too slow
to give the "feel" of combat.  However, perhaps continuous speed from the
start of the battle to the end isn't a factor:	Have any of you seen the
duel at the end of "Rob Roy"?  It wasn't a particularly speedy thing (and
that makes sense, I suppose...a claymore is probably a bitch to whirl
around), so perhaps some speed can be sacrificed in the interests of
combat "feel".  <shrug>

> :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:
>
> I do insist that there be a little of that... I have rest and sleep, and
> passing out from blood loss, and recovery time for a serious injury,
> though all of these can be remedied by cybernetics and nanotech,
> purchasable at a later time in the game. But seriously.. the solution is
> make combat fast, not slow. Really, really fast. The guy who gets in the
> first initiative wins, half the time, if he sets it up right. Client isn't
> part of it, nor is the connection, if there is hardly time to think once
> the blows have started to fly.

If things are going so fast and furiously, are people then relying on their
scripts to go through the action-reaction motions for them (since I think
it will be difficult to keep track of a really fast battle if you're
manually typing each action and reaction command)?

--
Shawn Halpenny



More information about the MUD-Dev mailing list