[MUD-Dev] ecologies and random encounters
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
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
- 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