[MUD-Dev] RE: Randomness

Alex Chacha achacha at hotmail.com
Mon Feb 2 15:14:17 New Zealand Daylight Time 2004

Felix Croes wrote:
> From: Brian Hook

> The issue is not just that people expect less than true
> randomness, but that MUDs use randomness to model processes which
> aren't truly random.

This is quite accurate in describing the problem.

However there are complexities that arise when dealing with how to
model the random number generator.  If you have a perfectly balanced
d20, then you have a white distribution (p(n) = constant).  This
would imply that each number 1-20 has 0.05% chance of showing up.
If the THACO0 is 10 and you are fighting something with AC0 (for
simplicity sake) then you will miss 50% of the swings.

>>    T T T F T T T F T T T F T T T F

>> Or at least something approximation that.  If they occasionally
>> get a:

>>    F F F F F F T T T T T T T F F F

Assuming you take 10 swings, with this system it is perfectly legal
to get 5 misses in a row, then get 5 hits in a row (one can come up
with a scenario explaining this, but a frustrated player does not
care).  The player will get a lot more frustrated when they get 5
misses in a row rather than 7 misses out 10 sparcely distributed
(e.g. T F F F T F F F T F).  There seems to be some feeling of
"doing work" that players expect, if they are fighting a monster and
they keep missing they get frustrated but if they get a hit once
every 3 or 4 swings they accept it since they are doing something.
And as mentioned before, if someone misses a few times they are
extra careful with each swing to actually hit something (this is
speaking of players and not an AI flagged at mindless, those can be
white RNG) This does tread on a sensitive topic of design vs. user

I have been experimenting with an adaptive RNG (random number
generator) that is based on a pure white noise but "shapes" itself
into a lopsided (in some cases even Gaussian) distribution to allow
a slighly higher success rate based on how many consecutive failures
occured.  It works like a state function, every failure moves it to
the next state, I have tried experiementing with 5 different RNG
states.  First one is a pure white RNG, every missed trial "moves"
the curve towards a success value, so initially rolling 10+ with a
d20 is 50%, if the user misses, then next time around the RNG
coefficient is adapted so the chance to roll 10+ is 60%, then 78%,
then 86% etc with 90% cap.  This is similar to the LaPlace (if I am
not mistaken, I don't have my probability refrence with me atm)
distribution when applied to packet arrival, the more time goes by
the higher the probability of receiving a packet.  This does tie the
RNG process closely to the actual game, while takes a bit of
genericity away.

In the initial trial this has worked very well, the only issue is
more complex implementation associating various RNG coefficients to
the user and qualifying which RNG type is needed and reseting the
RNG if the user performs a different action.  It does have a more
realistic "feel" to it.  What started my thinking about this was the
sheer number of frustrated friends I had that tried tradeskills with
EQ (they would miss combines 4 or 5 times in a row on trivial items
that cost a lot of money to try and make), in reality if something
is trivial to make and costs a lot to try, craftspeople are extra
careful not to fail.  While failure can happen, 4 or 5 times in a
row on trivial attempts is unfair to the player.

RNG is essential to MUDs and I would wager a guess that once picked,
they are quite difficult to change with regards to the balance of
the game (it is one of those early choices that has exponential
effects down the line).
MUD-Dev mailing list
MUD-Dev at kanga.nu

More information about the MUD-Dev mailing list