[MUD-Dev] ecologies and random encounters

Paul Schwanz paul.schwanz at east.sun.com
Thu Jun 6 13:36:12 New Zealand Standard Time 2002

From: John Robert Arras <johna at wam.umd.edu>

> I was looking at the recent threads on ecologies and resets and
> simulations and random encounters of mobs in SWG and the Skotos
> cellular automata articles and had been kicking around this idea
> about how to make a big dynamic world without actually creating
> everything in it. This is an alife/agent simulation that I tried
> out that works well in a MUD context.

[SNIP of very nice explanation]

> A system like this could be used to cheaply create meaningful
> dynamic encounters for a huge world. Any comments, ideas? Is
> anyone currently integrating something like this into their game?

Heh.  I've been meaning to write almost this exact same email, but
haven't found the time.  I've been working on the same issue of
using ecology to determine random encounters, but so far I've been
approaching it more from the plant and animal level.  I haven't yet
moved up to orc societies and such, but I'll certainly be keeping
your email handy for when I do.  ;) Also, I don't think I'm using
the cellular automata concepts as much, but maybe I should look into
it more.

Originally, I wanted to use actual objects (plants, animals, etc.)
living in the virtual world of Magicosm (www.magicosm.net) to
simulate an environment, but after talking to our server programmer
several months ago (who was much more comfortable with random
encounters for very practical reasons) I hit upon the idea to use
simulated population levels to determine random encounters.  In this
way, the player still experiences the encounters as a sort of
feedback regarding the ecology of the area and thus can experience
changes in the area as a result of his (along with many other
gamers') actions over time.

Here are some of my random thoughts on a work in progress:

     - We could have a rather simplistic ecology for a certain area
     where there are two basic resources affecting population: food
     and cover.  For instance, the following could be indigenous to
     a certain area.

          - soil fertility is food for clover, berry bushes, and
          trees (soil fertility may be affected by many factors,
          such as rainfall, irrigation, fertilization, magical
          influences, etc.)

          - clover is food for rabbits

          - berry bushes are food for bears and cover for rabbits

          - trees are cover for wolves and bears

          - rabbits are food for wolves

          - water fertility is food for fish (affected by other
          factors as well)

          - fish are food for bears

     - While we might not be able to model every tree in the area in
     3D with animations for chopping it down and collecting the
     wood, I do think it is important to give some sort of feedback
     to players as to the basic tree population of the area.  So,
     maybe we just use a tree model to represent 10 trees (or 100 or
     whatever).  The player might not see any immediate change when
     they "/cut down tree," but over time the forest will look more
     sparse or full as we add and remove tree models.  The same
     concept would apply to the other plants as well.  Clover
     patches on the ground or berry bush models let the players
     experience plant population levels, while encounters with
     animals help them experience the animal population levels.
     Population levels would be tracked using a grid overlay to
     break the area up into acres, square kilometers, whatever.

     - In general, I'd like to see population growth imitate a bell
     curve over population level.  So as rabbit population goes from
     min_pop to max_pop, rabbit growth goes from min_growth to
     max_growth (at mu) and eventually back to 0 at max_pop.  I'd
     like to do this by using current population as the main
     variable determining growth on the upslope (simplistic growth
     as a percentage of current population might work fine), but
     then have a throttle kick in as the "surplus" of resources
     (food and cover) begin to be taxed.  (I really need to get our
     smart math guys to help me figure out the specifics on this.)

     - With bell-curve-like population growth in place, the
     population would be healthy when on the right side of the curve
     (since growth actually increases when the population is being
     depleted toward mu on that side of the curve), but if the
     population is depleted to the point that it is on the left side
     of the bell curve (less than mu, the apex of our bell curve),
     then it is in danger, since now growth actually decreases as
     population continues to decrease.  (I hope you followed that.
     A whiteboard sure would help.)  Since this is the case, it is
     important to set things up so that natural predation doesn't
     push a population backward "over the hump" so to speak.  In
     fact, both natural predation *combined with* whatever is deemed
     to be "normal" human predation need to live on the right side
     of the hump.  This concept is used to help determine "surplus"
     of resources which in turn acts as the throttle on the
     predator's population growth as well as the predator's max

     - In the end, this is all about giving players interesting
     choices.  The output of resources in a certain area can be
     maximized by 1) working to ensure that the impact from
     predators and competitors is minimized, 2) working to ensure
     that food and cover for the resource is maximized, and 3)
     keeping the population level near mu, where growth is highest
     (but making sure you don't let it slip backward over the hump).
     The player also gets to choose which resource gets maximized.
     This can become important to helping supply meet demand in a
     realistic economy, especially where there is a concept of
     player-owned land that can be managed.

     - Special "rare" resources become available or are more likely
     to be encountered in areas where a resource becomes more
     "prominent."  In other words, if an area is managed such that
     it predominantly consists of clover, it becomes much more
     likely for a player to encounter a four-leaf clover in the
     area, which then can be harvested and used as a reagent in some
     magical spells.  Or if it is managed such that it is densely
     forested with trees, there is a greater chance to find a higher
     quality tree to chop down.  Rare silver wolves, white rabbits,
     special berries, etc. are all possibilities, depending upon how
     the land is managed.  There may even be "levels" so that a
     carefully cultivated oak forest might lead to a few elm, which
     left to multiply might lead to birch, ash, and so on (depending
     upon your particular setup for wood quality).  In other words,
     the elm actually "costs" you all of the oak that you could have
     chopped down and used, and so on for the birch, ash, etc.

     - So, suppose there is a shortage of four-leaf clover, meaning
     that many magicians are not able to cast important spells.  The
     price for four-leaf clover goes up to the point that there is
     quite a big incentive for an individual or group to manage land
     such that it is more likely for four-leaf clover to be
     produced.  They do what they can to maximize soil fertility.
     Then they harvest bushes and trees so that the clover gets to
     utilize all of the soil fertility.  They also try to kill all
     the rabbits.  (Or perhaps they leave a few trees as cover for
     the wolves and try to let the wolves help them keep the rabbit
     population down.  Of course, trees provide cover for bears as
     well, and bears might be useful for helping keep the berry bush
     population down.)  Soon, the area is covered in clover, making
     it much more likely to find and harvest the four-leaf type.
     (Interesting aside: What will the smart merchant who foresees a
     clover shortage do as it pertains to trees and rabbits, since
     he expects the market may be inundated with both in the near

     - Other thoughts:

          - There could be some sort of migration in place so that
          plants or animals without the surplus resources needed to
          survive attempt to move to an adjacent grid square instead
          of dying off.

          - Hunting an animal specifically might increase your
          chances of encountering it, based on your hunting skill.
          A similar mechanism could work for foraging for plants and

          - The "encounter" with an animal could consist of finding
          animal "signs" that would then require a tracking skill to
          determine direction and distance to the animal (finding
          other signs along the way may change this assessment).
          These signs can provide valuable information even if you
          are not looking for that particular animal.  For instance,
          spotting rabbit tracks might be useful information even if
          you are hunting wolves.  They can also help a player
          manage risks.  If you spot dragon signs, you may want to
          head the other direction...fast-like.

          - Some animals may be trapped and domesticated instead of
          being killed immediately.  For instance, you might be able
          to build a rabbit pen (if you have the right building
          materials and skills) and raise rabbits.  The pen itself
          would provide "cover" for the rabbits (subject to
          maintenance costs) and you'd need to gather or buy bales
          of clover to give the the rabbits for food.  The advantage
          would be that you "encounter" all the rabbits in the pen
          by interacting with it.  Similarly, you may be able to put
          together an herb garden for certain types of plants.

          - As discussed a few months back in another thread, it
          would still be quite possible to have "genes" that help
          determine plant and animal characteristics and behavior,
          if you wished.  This would mean that your rabbit growth
          would be dependant upon the types of rabbits currently
          available and their characteristics, your rabbit deaths to
          predation would be calculated and subtracted from each
          specific type as appropriate, based on their
          characteristics, and your players' rabbit encounters would
          also be dependant upon those same characteristics.

Anyway, those are some random thoughts that I believe demonstrate
that you can still have quite a complex and interesting ecology
built underneath a pretty simple encounter system.

Thanks for your post.  I found it both encouraging and enlightening.


MUD-Dev mailing list
MUD-Dev at kanga.nu

More information about the MUD-Dev mailing list