David Kennerly wrote:
> Randomness without Replacement
> The analysis of a game mechanism is given with applications to
> single-player RPGs and MMORPGs. Furthermore, the probability
> theory employed is relevant to any game with chance, whether
> played on a computer or on a board.
>
http://www.gamedev.net/reference/articles/article2206.asp
Very interesting article, I have seen Poisson distribution used in
modeling expectation networks which lends itself well to human
expectation. If something is definitely expected, the longer you
wait the more likely you are to receive it (if you keep swinging at
that spider with every swing you expect to get closer to hitting it,
may not be very realistic, but the game is meant to please the
players not frustrate them). This works well with online games that
are heavily hit/miss based, if a user keeps missing they expect to
hit and to do something productive, while their frustration goes up
inversely as they miss. There is no greater frustration than to be
involved in an encounter with many people and not being able to do
anything productive. You would be surprised how many people would
settle for doing negligible damage to a MOB rather than missing
everything, perception is very important.
There are many ways to improve this; one you have mentioned is to
use a replacement RNG which is akin to a deck of cards. Another is
to use a history buffer and use feedback to alter the RNG (random
number generator) results, while this is in essence skewing the game
a bit, I have always felt it is more important to have the players
feed good about what they are doing (even if barely significant)
rather than the adhere to strict randomness of some fixed
distribution (it is also much harder to model an RNG which is part
of a feedback loop and constantly adjusting its own distribution).
Yet another is to use different RNGs for different purposes.
Many games try to cater to newbies, a skewed RNG is a good way, when
you have an encounter and the players are heavily outclassed by that
2-ton spider, there is nothing more frustrating than everyone
missing the MOB and dying, the way a skewed RNG could work is that
they group does minimal damage before they die, the RNG can even
adjust itself based on the MOB's health since the MOB may not be
trying too hard, taking the players for granted, at the start of a
fight but would be trying harder as it got more damaged.
Many, not all, RNGs are written to be white (meaning that each RNG
sample is not only independent it is also completely uncorrelated
and the mean of the process is zero). This type of RNG is great for
security systems (if someone can actually design a truly
uncorrelated one) but it's not very good for online gaming.
Sometimes I hear statisticians compare white RNGs in the same tone
as audiophiles comparing transistors to tubes, there may be
something in that argument.
Considering some of the recent games, there have been a few which
tried to reduce frustration in players. City of heroes actually has
fractional damage and until the purple patch it gave even the lower
level players a sense of contributing to the fight (when they were
not side-kicked), sure they barely did any damage but seeing 1s
above the enemy's head is a lot more acceptable to players than a
constant "miss" which deep down inside makes them feel useless and
prone to give up on the game (I won't go into the psychology of
gamers this is a whole new thread).
Another common source of frustration is trade skills and luckily
some of the recent games have taken a no-failure path to the system,
only allowing skill raises on non-trivial items. World of warcraft
uses this system and it's satisfying until high skill levels when
skill raises get rare and for many cases recipes are dropped too
rarely. A hybrid of this which worked quite well was in Horizons
where you had a slider to control failure rate which was
proportionate to the output (so you could increase a risk of failure
for a chance at a higher yield), it was a good trade skill system
overall.
I am hoping more game developers look at the random number generator
they are using and consider moving towards one tuned for the
frustration reduction, while it is easy to dismiss it as "everyone
gets the same chance", when you consider the human factors and
comply with them you get a lot more satisfied customers, after all
customers that are busy doing things don't have the time to
complain.
++Alex