[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