Issues from the digests and Wout's list
Nathan Yospe
yospe at hawaii.edu
Thu Apr 17 11:07:48 CEST 1997
On Thu, 17 Apr 1997, Shawn Halpenny wrote:
:> :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).
Yes, this has been bothering me a little. In an earlier post, I described
a character who had an instinctive level of agression, and _not_ attacking
on a slight offense required deliberate action on the player/controller's
part. The scene went something like this:
(from the POV of Arghu*ath the Ghladrakh - a large, mamalian warrior race)
(Note: my pet mud is science fiction, and this is reflected here.)
The barkeep walks toward you and plunks a flaming lager down in front of
you. He stands there expectantly.
>give 5 cred bar
You pay the barkeep, and he smiles and walks away.
>drink fla
You sip the flaming lager cautiously, then tank the entire spiced brew.
A large human sits down next to you. The large human next to you yells,
"Hey, barkeep! Gimme a 'nother beer!"
> look human
He looks like a typical male human, quite a bit on the stupid side, with
reddish hair covering most of his body. He wears sweat stained pants and a
sleeveless shirt to small to contain his bulk. The human glances over at
you. "What do you want, you hairy freak of a beast?" He laughs
uprouriously at his brilliant wit.
> shrug
You shrug. The human scowls at you. "What, to good for us puny little
humans? You and your high and mighty people think you are so hot, just
cause you are ten feet tall. Well, us humans have been wiping out bears
and wildcats for aeons. Don't think just cause you wear clothes you're
any different." He shoves you. You feel your fur rising on your neck. A
growl rises in your throat. The human laughs. "What? You gonna fight me?
You gonna kill poor little me?" Your muscles tighten. Your vision narrows
on the human.
> calm down
You try to take a breath, to grab ahold of yourself, but the blood is
pounding in your ears. This human attacked you!
> calm down
You force yourself to take a breath, to relax your muscles, to sit back on
your stool. The human says, "What? Are you afraid to fight a little guy
like me?" The human grabs a chair and throws it at you. It shatters across
your chest. You hear a snarl escape your mouth as you lunge at him, claws
extended. The human reaches behind himself and pulls out a vibro blade.
You reflexively grab your plasma rod from its hip holster and roll to the
side, landing in a crouch behind him. Your arm lashes out with the plasma
rod.
> |
You stop yourself before the plasma rod reaches its target.
>stun hum
You thumb your palm stunner and tap the human on the shoulder before he
gets a chance to turn around. The human slumps to the floor, and his vibro
blade clatters across the ground. The barkeep looms up behind you. His
nose flares, and his ears flatten. "The authorities have been called. You
showed great restraint, soldier. What is your name?"
. . .
This is a good demonstration of what combat is about in Singularity 2. The
long term consequences of killing that troublemaker would have been
greater than the satisfaction of letting the instinctive reaction take
control would be worth. It also demonstrates how much of the combat is
instinctive and computer controlled. Combatants nudge and guide their
instincts, but the instincts carry a great deal of weight.
:> :-- 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?
I can't see how. Was stunning an offensive strike? An illusory attack? A
palm stunner is invisable, and could be slipped in as a handshake, so
there is no way for the target to recognize it coming unless they already
distrust the would be stunner. How do you tie setting a trap and backing
the opponent into it into a set of categories? How about adding a poison
to their water supply while they are not looking?
:> :-- 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?
Probably.
:> :-- 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.
I think that's what he meant.
:> :-- 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.
Well, the sequence above was not two evenly matched guys. Light armed and
unarmed combat invariably falls in favor of a glahdrahk, given their
larger size and faster reflexes. Nevertheless, most sequences involve
missiles, guns, plasma rifles, and anything else the combatants happen to
be packing, and the above was fairly typical. Fights may be delayed if one
or both sides are taking cover, sniping, or running away. Certainly, a
fight is rarely just an exchange of blows, and, say, two guys in armor
with wooden swords could whack at each other indefinately, or at least
until one of them gets clever.
:> :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...
The problem is the vast number of input messages... output is no problem.
:> :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>
See the above. I think it had the feel of combat, but if you don't agree,
I can supply a few more. BTW, the stuff after the '>' was typed in a
seperate window, and there was no break in text in most of those
sequences. Text only breaks when I get a paragraph tag. There would be one
of those after the calm down, and one at the end.
:> :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)?
Their scripts and the built in reflexes, which were all that came into
play above.
__ _ __ _ _ , , , ,
/_ / / ) /_ /_) / ) /| /| / /\ First Light of a Nova Dawn
/ / / \ /_ /_) / \ /-|/ |/ /_/ Final Night of a World Gone
Nathan F. Yospe - University of Hawaii Dept of Physics - yospe at hawaii.edu
More information about the mud-dev-archive
mailing list