[MUD-Dev] Formulae Generation

cruise cruise at casual-tempest.net
Thu Aug 25 12:30:22 CEST 2005


Ximon spake thusly...

> I envision a more dynamic system that understands that 12 reflex
> gives a 15 to 25% chance that the defender will evade, and the
> higher the number, the less 'punch' actually hits the target, (and
> thereby modifies the forthcoming damage roll).... and things like
> that.

Interesting question - I've formulated many combat systems, but I've
never really considered the formal methodology I use.

Okay, initial things to consider:

What range of abilities do you want? Put another way, how much do
you want the difference in abilities between a high and low
character to be down to numbers rather than player skill? Is
swordsmanship rated beginner, intermediate, advanced, or from
0-1000?

Related to that, how much noticable effect should increasing
abilities have? An increase of one on a scale of a thousand won't be
noticed by the player ever, but going from beginner to intermediate
will be.

I tend to use a scale of 1-10; a reasonable range of abilities, but
each increase is noticeable.

The same question needs to be asked about the number of skills or
abilities. Do you want seperate skills for two-handed, single-edged,
slightly curving swords and two-handed, single-edged, straight
swords? Or is just "attack" enough? You said you wanted a realistic
system, so I'd favour the wider-range of skills, so someone who is a
skilled swordsman can't pick up a whip and use it just as
effectively.

Presuming you have a level system, what makes a higher-level player
better than a lower-level? There are three main variables:
hit-points and damge, accuracy and defense, and actual level.

These can be used exclusively (eg. only damage taken/dealt seperates
high and low), or in combination (eg. (accuracy + attacker's level)
- (defense + defender's level)).

Personally, I prefer an exclusive accuracy/defense system, as the
closest simple model to reality.

How random do you want the system? With very little randomness,
there is often no chance for lowbies to defeat highbies (unless
player skill is a large factor in success). However, high-randomness
leads to lowbies often defeating highbies with just a few lucky
rolls, which is a quick way to garner claims of "unfair" from your
playerbase. The Matrix Online, for example, uses D100's added to
combat abilities (or did when I played it). But since at the lower
levels, combat abilities are in the 10-60 range, anything within the
first ten or so levels can potentially be a threat.

Chance is important, as dealing with the unexpected is an
entertaining challenge - but without /some/ decent expectations on
what will happen, players quickly become frustrated.

Once you have the components and ranges of your formulae, then you
need to decide how to combine them. Linear combinations (+,-) are
simple, are not always appropriate. City of Heroes unfortunately
used linear combination with it's accuracy and defense calculations,
which are percentages, leading to some weird behaviour at
extremes. A character with 50% accuracy against a character with 45%
defense has a 5% chance to hit. But gaining 5% accuracy gives them a
10% chance to hit, which is twice as much!

Multiplicative combinations (*,/) make more sense in some
situations, but can magnify small changes greatly if numbers start
getting too large.

Again, this depends on the range you decided on at the beginning,
and what sort of distribution of results you want across that
range. Linear, so results can fall equally amidst the entire range,
or gaussian, so most results fall around the mid-range, with
occasional departures to the extremes; again, this is probably the
closest simple approximation to reality.

Apologies for the length of this, but hopefully it's helped identify
some thoughts to ponder.

--
[ cruise / casual-tempest.net / transference.org ]
   "quantam sufficit"
_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list