[MUD-Dev] Better Combat (long)

Paul Schwanz pschwanz at comcast.net
Sat Aug 7 00:49:19 CEST 2004


Brendan O'Brien wrote:

> To tie in with the animation aspect, I realized I left out a
> factor in the design which would certainly have an impact.  In
> some ways similar to what John Buehler has been proposing, I also
> had the intent of taking basic character control out of the
> player's hands during combat.  What I mean by this is that once
> engaged, the player will no longer use the basic movements to get
> his character into a certain position (i.e. moving forward,
> turning, or strafing).  Instead, he gives the charcter commands as
> to how he wants to execute the fight, and the character does his
> best to carry them out.

This is very similar to the approach that I envision for combat.
Although JB's "fligh simulator" idea is very interesting and I'd
like to see it developed more, my own musings tend toward a "speed
chess" paradigm.  I've heard many players say they'd like to see
combat that was more like chess, but I've seen very little in the
way of proposed mechanics for this.  I hope to make some progress in
that regard with this post, although doing so is likely to result in
something quite long and perhaps a bit dry at times.  You've been
forewarned.  :)

So what makes chess so successful as a game of strategy?  I believe
it is the result of a good balance/mixture of simplicity and
complexity.  (This suddenly reminded me that good music is often
seen as the result of a good balance/mixture of repetition and
variation.  <friendly jibe> I'd wonder whether other forms of good
art share a similar quality if I didn't hear Dave Kennerly's
admonition to not compare art forms bouncing around in my
head. </friendly jibe> ) The movements of chess pieces are simple
enough for a child to learn, but a lifetime of playing cannot plumb
the depth of patterns to be learned.  (If you are not familiar with
Raph's "A Theory of Fun," I *highly* recommend taking a look at it,
especially as it pertains to models for combat:
http://www.legendmud.org/raph/gaming/theoryoffun.html )

How does chess manage this?  It seems to me that, although the rules
of chess are simple enough to be summed up in one page of text, the
complexity comes from every move being predicated upon all the
preceding moves, both yours and your opponent's.  To play chess well
often requires thinking ahead many moves into the future and
correctly predicting how your opponent will react to your play.
However, there are those (I am not a particularly skilled player)
who are capable of bypassing the typical multi-level analysis of
every possible iteration and making good moves based on experience,
intuition, and a keen understanding of the positional aspect of
chess.  These players are good at speed chess, where short time
considerations are a nice fit for their skills.  It is this
characteristic of chess, where a long-term strategy accross a series
of moves puts you in a more advantageous postion than your opponent,
that I'd like to see transferred over to MOG combat.

What might this look like?  I imagine there are many possibilities,
but I'd like to explore one in which stance, sword-point location,
orientation to oponent, and weapon reach describe a position (not
unlike the arrangement of chess pieces describe a position) from
which a limited number of learned combat maneuvers (forms) are
possible.

  Stance: Imagine you are looking down on your character from above;
  he is standing on a 3x3 grid and is facing toward the top of your
  screen.  Suppose his left foot can be in any of the 6 squares on
  the left side of the grid (the left and middle columns) and his
  right foot can be in any of the 6 squares on the right side of the
  grid (the right and middle columns).  By my calculations, that
  gives him 33 possible stances (his left and right feet cannot be
  in the same square simultaneously).  If you add in the ability to
  be either crouched or upright, the possible stances double to 66.
  Of course, using a 4x4 or larger matrix adds even more complexity.

  Sword-point location: Now imagine looking at your character from
  behind; he is standing in front of a 3x3 grid, facing it.  Suppose
  that, while standing, his sword-point can be in any of the 6
  squares at the top of the grid (the top and middle rows) and,
  while crouching, it can be in any of the 6 squares at the bottom
  of the grid (the bottom and middle rows).  That gives 12 possible
  sword locations.  Combined with stance, we now have 792 possible
  positions.  If you add more 3x3 grids, to your character's right,
  left, and rear, there are 48 possible sword-point locations
  (although for the sake of being realistic, it might make sense to
  limit the possibilities for striking at something behind you) and
  3168 possible combat positions.  Add in a shield or a second-hand
  weapon for more possibilities.  And again, using larger matrices
  will add even more complexity.

  Orientation to opponent: Imagine an opponent with a 3x3 grid
  overlaying her image standing in front of your character.
  Depending upon her stance, major possible hit locations can be
  described in terms of grid location.  For instance, if she has
  taken a typical /en garde/ stance, major hit locations would be
  located in the center column of the grid.  Her head would be
  top-center, her right arm/torso would be mid-center, and her right
  leg would be bottom-center.  If her sword location is mid-center
  and your character is standing, then she has done a good job of
  limiting your possible targets to her head (top-center of the
  grid).  As you engage in combat, however, orientation will change,
  not only as your stances change, but also as you both select forms
  that cause your characters to pivot or to move around your
  oponent's periphery, flanking them.  You might also allow a
  character to be higher or lower than their opponent based on
  terrain, which would also affect orientation.  At this point, the
  possible positions are too complex for me to enumerate, but I'd
  guess that we're up in the hundred thousands to millions range.

  Weapon Reach: But what if we move out of 2D and into 3D?  Imagine
  using a 3x3x3 grid instead to describe both your character's and
  his opponent's stances.  Suppose we track the location of
  weapon-wielding hands.  Excluding the cubes describing the torso,
  the head, and the other hand, that gives us 15 possible positions
  for a hand.  But perhaps a hand can extend up to one cube into
  your opponent's 3D grid (6 more positions).  If that hand is
  holding a dagger, perhaps it can only attack or defend the cube in
  which it is located.  However, a sword would increase the reach,
  allowing you to attck and defend cubes one position removed from
  the hand's location.  A staff or spear would increase reach even
  more allowing a character to attack even deeper into his
  opponent's 3D grid or to keep a balanced and centered stance in
  the center of his own grid while still having the reach to strike
  his opponent.  In the end, you can get quite a lot of complexity
  from four-ish factors (3D grid stance/hand location, 3D grid
  orientation/stance of opponent, weapon reach, and 3D grid
  tip/blade location,)

When I first started thinking about this sort of approach to combat,
my first thought was to create combat forms that would describe how
a character got from one position to another.  I thought it would be
cool (as well as Robert Jordanesque) to give each form a name like
"Heron moves through reeds" or "River undercuts bank."  I imagined
that players would seek out new forms thorugh questing or perhaps
through spending skill points earned with experience, and that each
form would have strengths and weaknesses either as defensive
responses to an opponent's actions or as offensive initiatives
against which an opponent would need to defend appropriately.

This is very much a work in progress, but here are some of the
thoughts that are currently rolling around in my head.  (MUD-Dev
readers are certainly encouraged to think out loud in response to
anything that I'm presenting.)

  Forms would be of three different types: defend, /riposte/ (a
  maneuver that defends while also transitioning to an attack), and
  attack.

  Forms are not always executed successfully.  Each form would have
  a skill level associated with it that would help determine
  success.

  A blow would land when a successful attack was not met with a
  successful defense.  Armor will determine the damage done by a
  landed blow.

  If your opponent is on the offense (i.e. using attacking forms), a
  /riposte/ is not your only recourse for taking the initiative.  If
  you have a lot of faith in your armor, you could just choose to
  ignore her attack and respond with an attack of your own.  Your
  armor will be damaged (course location-based damage would be nice)
  and less likely to stop additional blows, so you won't want to do
  this often.

  Some forms might be considered gambits.  In other words, even when
  fully trained, they may have only a 75%, 50%, or 25% chance of
  success, depending upon the level of gambitness (no, I don't think
  that's a real word).

  Endurance and conditioning could also play a role in determining
  the outcome of a fight.  Wearing heavier armor, swinging a heavier
  weapon, and executing more physically challenging forms would all
  result in greater depletion from your endurance pool, depending
  upon your conditioning.  Waning endurance will result in negative
  modifiers to the skill checks for your forms.

  Forms need only be concerned with my own character's movements.
  We can let the computer calculate the effectiveness of the form
  based on opponent's stance, orientation, response, etc., but as
  far as creating actual content, we only need to describe the
  forms, not every possible position/situation.  Nevertheless, this
  is still a lot of content to generate.  However, perhaps the
  problem could be broken down into smaller pieces.  Intelligent
  rules regarding how the feet are allowed to move, how the relation
  of the torso and head to the feet affects balance, how balance and
  stance restrict hand movement, and weapon appropriate maneuvers
  (i.e. slashing, thrusting, etc.) might allow for the procedural
  creation of many forms.  Tying various concepts to different words
  might also allow for the procedural creation of form names.  For
  instance, perhaps thrusting motions are identified with bird
  names, feet positioning determines which bird, and cube attacked
  determines whether you perform "Heron moves through rushes" or
  "Heron flies over pond."

  Decent AI should be able to present the user with a list of the
  most appropriate forms for a particular situation.  If the user
  doesn't select a form within the alloted time (10-15 seconds?) the
  computer should execute the form at the top of its list.  The user
  should be able to specify whether, in such cases, a more defensife
  or agressive selection is preferred.

Of course, if my intent is to present a combat system that measures
up to the subtlety and efficiency of chess, it should be apparent
that I've failed miserably.  While the complexity side of things
seems relatively easy to solve, it is quite difficult to do so in
the same sort of incisive manner that chess manages.  Nevertheless,
as I said, I consider this a work in progress moreso than a failure.
My aim is to move MOG combat in that direction, and I hope I've had
some marginal success in that regard.

--Paul "Phinehas" Schwanz
_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://www.kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list