[MUD-Dev] Understanding Simulation (was: Point of View)

Ted L. Chen tedlchen at yahoo.com
Wed Sep 25 23:57:52 CEST 2002


John Robert Arras wrote
> On Tue, 24 Sep 2002, Ted L. Chen wrote:

>> Not to harp on John - as he's not the only self-proscribed
>> simulationist on this list - but I roll my eyes whenever someone
>> offers the roaming wolf example as if that system would be stable
>> throughout the course of any game.  Raph and some of the boys
>> from UO in the early days can probably attest to the stability of
>> programmed ecology systems.

> I realize that simple systems won't work too well, but I'm saying
> that you should try to make a system that does what you want, even
> if it has to be very complex. Thinking about this is fun for me,
> so I don't mind if it's hard.

> Also, I'm not trying to model ecologies or economies right now.  I
> am more trying to model at the level of colonies of smart ants. I
> think ecologies are too hard to do right.

I like ants.  :) They're very localized creatures - in that they
don't respond to any stimuli other than what is immediately around
them - which takes most causal loops out of the system, and makes
them great things to be simulated in numbers.  People on the other
hand, know the world around them and beyond.  Even more irritating,
they expect things (using rate information), often influencing their
reactions... which then creates very interesting dynamics.  So ants
are great in that repect, but by that same token, any community
they've formed are very subject to the environment that the
indivuduals don't sense.  An ant may see a shadow on the ground next
to them and react accordingly, but that SR model treats it the same
whether it's a cloudy day or the shadow cast by the sole of
someone's shoe.

The smarter you try to make your ants by giving them meta
information (from the vantage point of an ant), the more complex
their interaction with the environment, and we get back to where we
started this discussion.

So I would personally temper that enthusiasm of stimuli-response
models (hey, I love them too).  In a MMOG, if you model an aspect of
the environment using stimulus-response models, where one of the
stimuli are players, the environment survives at the whim of
players.  I think "gaming" is the term used.

It's hard to talk about the stability of SR based simulations.  By
themselves, and if you isolate what set of stimuli are presented,
I'm sure you can create a successful SR-based population.  However,
throw that in to a live environment, or even more simply, introduce
noise into the stimuli, then there's no guarantee that the system
will be successful like before.

The Sims uses SR and is really nothing more than smart-ants ;) It's
a great simulation toy!  How successful have your Sim populations
been if you totally left them alone?  For me, they usually last for
3 or so days before the dynamics go out of control.  Little changes
in eating time built up, job satisfaction wanes, etc... all those
little things add up enough that the environment that my SR model
was setup to handle was no longer there in any appreciable form
(from the model's vantage point at least).  The "player" is the hand
of god that goes in to tidy things up, to keep the stimuli within
some predefined set.

>> For those who wish for close-system ecologies, I suggest looking
>> at: "Generic Structures: S-shaped growth I" in Roadmap #5.
>> "Oscillating Systems 2: Sustained Oscillation" in Roadmap #8.
>> then "Generic Structures: Overshoot and Collapse" in Roadmap #9.

> I have seen predator/prey simulations many times. That's why I
> wouldn't simulate things perfectly. I am not interested in having
> a perfect simulation, I am interested in making a simulation that
> the players will find interesting. Therefore, I would increase
> population growth when something's population decreases, and
> decrease it as the amount of the thing increases. Perhaps we're
> not talking about different things here. I'm arguing that you can
> make simulations that are interesting to the players, not actual
> "correct" simulations.  Creating actual "correct" simulations of
> ecologies and economies is too hard.

I'm just interested in creating stable, 'life-like' simulations
here.  Note that I purposely left out any references to the
validating the models.  For one thing, I don't think anyone could
ever validate an ecology of orcs and trolls.  :) Second, like you
just said, it doesn't really matter as long as it's interesting.

I think what you described was the s-shape growth (if you were
changing the growth rate of "something's" population).  That's all
great and stable if you just stop there.  The last reference to
overshoot and collapse only occurs when you introduce a prey.  But
then the question is, is the s-growth all that iteresting?  It only
depends on its own population, it doesn't interact with the player,
and its a one-time deal.  That is, once it reaches equilibrium, it
stays kaput.  I could hard-script the population levels to vary in
time and you wouldn't be able to tell the difference.

Talk about ecologies on this list have centered about interacting
popluations.  I guess because as the reasons stated above, isolated
populations aren't very interesting so we all want to throw
different competing ones together.  So that's why I stress the
reference in Roadmap #9, which helps to show why those ecologies
collapse.

>> So, are complex systems based on simple rules possible?  Of
>> course they are.  Nature is a prime example of that.  But don't
>> discount all the natural extinctions that have occurred in the
>> past.  So unless you're cool with resetting your players every
>> few days, losing all content you've created so far (wolf meat is
>> no longer available... they're extinct!), all in the attempt to
>> find that rare local equilibrium point, I really suggest reading
>> up and understanding what simulation can and cannot do.

> Again, I am not talking about simple systems. I am talking about
> making systems that the players will find interesting. I have
> thought a lot about what happens at the extremes or when things
> get out of whack, and I have many mechanisms inside of my systems
> that bring them back toward areas that I consider to be
> interesting states.

The weird thing about the dyamics of complicated systems is that
what we normally think of as extreme situations (or inputs) aren't
even needed to throw a system out of whack.  The Sims (a somewhat
complicated SR system), can be thrown out even if left alone in a
seemingly stable configuration (strictly speaking, it was already
unstable, but just marginally so).

It's good that you're placing mechanisms to bring things back
inline.  That's the first step.  Knowing when to use it, and when
they're still useful, is another.  I suggest looking at Roadmap #9's
"An Introduction to Sensitivity Analysis" While the examples they
use are all of simple systems, it's still an invaluable tool.  It's
very much like the example you gave of finding coefficients for
polynominals.

>> So bringing it all back, John was making the point of coding the
>> rules of the dynamic systems, letting it run (based on those
>> rules), and generate the story from that.  To which I have to say
>> is fiddlesticks.  If you want an interesting story from such a
>> system, you're going to need a lot of factors and dependencies in
>> that simulation.  And by "a lot", I mean any number greater than
>> 3.  Which unfortunately, is already one too many.

> It depends on how much time and effort you put into those systems
> and it depends on how much you're willing to cheat by putting in
> constraints to make the systems interesting to the players. I also
> don't think it's easy to do this. It's just that it's amazing when
> it works the way you want, and since I find it interesting, I will
> continue plugging away at it.

Bingo!  Cheating is required by the simulation!  :) Well, it is if
you want it to remain running for long periods.  Now the question is
what cheats, and that can be answered when you learn to model the
system dynamics.

All in all, the System Dynamics references I gave don't tell you HOW
to create stable systems.  They're provided for this list as an
analysis tool to find out whether any suggested system is unstable,
and more precisely, WHEN/WHY it goes unstable.  Something that
ideally should be done before the first line of MMOG code is put
down.

The basic flow of how I personally attack this problem is

  1) model the basic underlying rules
  2) analysis
  3) add constraints
  4) jump to #2

Sometimes I find that the constraints I just added do absolutely
nothing to improve the system (eg. they never get used).  Sometimes
they even had the opposite effect of making the system worse.
Sometimes a very silly thing (like no backorders in an economic
model!?!) have a positive effect of increasing stability.  I don't
purport any ability to comprehend nonlinear effects a priori, and I
would be highly skeptical of anyone who claims they do.

So I guess the main thing to get out of all this is that simulations
are very fragile things.  A lot of them tend to collapse in on
themselves if left to their own dynamics.  Automated control systems
are useful in trying to keep the base simulation within its
operating environment, but that system comprised of both
control-simulation is not guaranteed to be stable itself.  There are
ways to analyze that and even design for it (as long as it looks
like a mass-and-spring), but its too much for me to go through here:
try a Google search on "discrete robust nonlinear feedback control"
if you feel brave.


TLC


_______________________________________________
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