[MUD-Dev] Player Manipulation of Environment

Paul Schwanz paul.schwanz at east.sun.com
Mon Dec 3 11:47:46 New Zealand Daylight Time 2001

Jasper McChesney wrote:
> Paul Schwanz wrote:

>> When it comes to responding to extremes in animal populations,
>> however, I don't think we are limited to simply increasing spawn
>> rates.  While I haven't fully fleshed out the idea, I lean toward
>> having various "genes" that automatically respond to player
>> actions in a way that functions something like a crude sort of
>> natural selection.  This is off-the-cuff, but I'll give a simple
>> example.

> I'm a great fan of ALife, and think such models would be really
> interesting if implemented in an online world.  I have to question
> though, whether it's really a very useful thing to do.  At the
> most basic level, you'd be devoting a fair amount of CPU cycles to
> determining a lot of things that would be entirely in the
> background and probably never surface to player view.  Natural (or
> unnatural) selection allows an organism to adapt to its
> environment -- i.e.  survive better.  Unless your MUD really needs
> rabits to survive better, I think it's a lot of work for not much
> reward.  I guess you may indeed want better rabbits just to keep
> the population alive but to what end?  You'll have a lot of
> imbalances if monsters start getting tougher and tougher as the
> game goes on.  You always (and I'm speaking with the general "you"
> here) have to be aware that allowing a large subsystem of your
> game to "evolve" freely could potentially change the game
> environment a lot. (If it can't, what's the point?)

Well, since the whole point of the post was to address the
possibility of avoiding rabbit extinction, it is the case that we
really need rabbits to survive better, especially at population
extremes.  We'd like to keep the population alive, so that the
content we've created (rabbits) is not completely removed from the
game by player actions.

The system is not designed so that monsters get tougher and tougher
as the game goes on.  Rather, it is designed to have a monster get
"tougher and tougher" as that monster's population levels reach a
lower extreme.  At least, that is the goal of the design.  If the
former instead of the latter will be the practical outcome of the
system as it stands currently, I'd be happy to have this illustrated
so that I can work to tweak the design.

I really can't say definitively how many CPU cycles or resources
will be used by the system.  I really don't have enough experience
in this area.  It probably isn't a trivial amount.  Basically, you'd
need to add to each rabbit object some method for determining when
it is time to "give birth" again.  You'd also need a birthing method
that calculated the "trait" the new rabbit would possess.  I think
that the one I presented is actually rather simple.  Perhaps it is
too simple.  Of course, each rabbit object would also need more
variables to hold trait information.  You might need additional
methods for determining eating habbits so that rabbits are put into
the context of their environment.  Some traits might also need their
own methods (i.e. the camouflage method described below).  Once you
put this in place for all animals (and plants?) in an environment,
it seems clear to me that the cost in resources is not overly cheap.
On the other hand, I'm not at all sure it would be much more
expensive than many of the other AI or combat systems in place in
current games.  Again, I just don't have enough experience with the
programming side of things to really know.

>>   (h) Higher hit point gene (b) Faster birth-rate gene (c) Better
>>   camouflage gene

>> Each rabbit has one of these genes that is dominant.  Provided a
>> rabbit recieves the proper nourishment, it will give "birth"
>> after a certain amount of time.  (This can be a simple spawn
>> nearby, since our desire for more interaction with our virtual
>> world doesn't necessarily require that we have rabbit sexes or
>> preclude the idea of having things spawn into our world.)  When
>> it gives birth, there is the greatest chance that the offspring
>> will carry the same dominant gene, but a smaller chance that
>> another gene will become dominant.  There is also a chance that
>> the dominant gene will become more pronounced.  We could test and
>> tweak the numbers, but let's assume a 60/20/20 per cent chance
>> respectively.

> Just to get off on a technical tanget here, aside from the general
> (and very interesting) idea of ALife on MUDs....

> Although I'm sure you know that your setup here doesn't strictly
> follow the way real genes work, you have two problems, I think.
> First, IMO, the whole point of ALife is to run a simulation that
> eventually (or continually) comes up with a result -- in this
> case, What rabbit-type lives best?

I'm not sure that this is the whole point of what I've proposed.
I'm interested in having rabbits respond to pressures so that
rabbits are fit enough to survive.  In this paradigm, I'm not really
interested in one optimal rabbit-type, but only in whatever
rabbit-type is fit enough to respond to whatever pressures its
localized population is currently experiencing.

> Further, the point of ALife is really to do this for situations
> which are so complex that a person can't just look at it and see
> how things will turn out.

Again, I'm not at all sure that this is the point of what I've
proposed.  I think you are talking about the point of ALife in
scientific inquiry.  I'm not proposing a system that is suited for
use by scientists who are searching out complex interactions between
populations that are not obvious.  I'm actually looking to put
together something as simple as possible while still being
functional.  My goal is to allow players to interact with a virtual
world across more dimension and according to a wider range of
methods than currently allowed.  I actually think I'm setting the
bar rather low in this regard. :P

> With this setup, I can look at any rabbits with the same "dominant
> gene" and myself determine which is better -- no simulation
> required.  Having "more pronounced" versiouns of each dominant
> gene seems pointless to me, or at least less interesting than
> other options, since the lesser forms are always worse.  It's liek
> being given the choice between the shotgun and the super-shotgun
> in Quake on the later levels -- why even choose the former (I
> know, there are reasons -- not the best example).

The more pronounced versions are there to respond more dramatically
when populations are experiencing extremes in pressure.  Their
function is to help avoid extinction and not so much to provide some
sort of "neato" interest to players...at least not directly.

> Secondly, and more problematic, is the fact that your traits are
> numeric in nature and not binary switches.  If I ran it now, I'd
> soon enough have rabbits that became better and better: their
> trait rating would continue to rise unchecked.  Eventually, you'd
> have 100% invivisble rabbits -- or whatever other ceiling you
> establish.  The problem is that there's no disadvantage to
> becoming specialized here: no complex interaction between genes.

You will only have 100% invisible rabbits (overlooking the fact that
this conflates fittest with fit enough--in reality, the fit enough
survive) until the next generation, where (with the specific numbers
I used to explain the concept) you'd have only 80% invisible

There is a disadvantage to becoming specialized.  The disadvantage
is that you don't have the other specializations.  If the wolf and
other natural rabbit predators avoid hunting/eating rabbits with
higher hit points, then specializing in the sort of camouflage that
works well agains human hunters would indeed leave them at a
disadvantage where there are fewer human hunters but more natural
predators.  As explained (perhaps poorly) below, the advantages and
disadvantages of each specialization is dependant upon pressures in
the environment.

> At a minimum, you don't simply want a "dominant gene" but rather a
> total balance between traits.  If a rabbit gets better at stealth,
> its other abilities should suffer.

A rabbit can only get better at stealth by not having the other
traits.  So, its other abilities do suffer.  The rabbit that has the
camouflage trait cannot also have either the higher hit point trait
or the faster birth rate trait.  The confusion is probably my lack
of knowledge concerning the terms used in real scientific study in
this area.  Obviously, my original post wasn't very clear.

To explain further, what I meant by a particular gene being dominant
is that, although the other genes can be passed along to offspring,
they are not in any way active in the current rabbit.  Only the
"dominant" gene is active.  A rabbit that has the camouflage gene
active has a set amount of hit points.  Its offspring's hit points
will only be higher if the offspring takes the higher hitpoint
trait/gene instead of the same or better camouflage trait/gene.  In
this sense, it is a sort of "either-or" proposition.  I think this
is what you meant by "binary" above.

>> What would this mean?  As I think through the different
>> scenarios, a few thoughts come to my mind.

>> When a particular area of rabbits came under heavy hunting, it
>> seems to me that those with the b-gene would be the first to go
>> according to Raph's information.  But certainly those with the
>> h-gene wouldn't be far behind.  This will naturally select for
>> those with the c-gene to survive, especially those with higher
>> levels of the c-gene, since a rabbit with the c9-gene could be
>> effectively invisible.  Eventually, hunters will not find very
>> many rabbits in that area and move on to other hunting grounds.

> I don't quite understand how this is a good thing.  If the purpose
> of rabbits (or whatever other player-accessible resource exists)
> becomes unaccessible, what's its purpose?

Rabbits with the c9-gene will give birth to one of the following
rabbit types.  (This is slightly different than the more general
case, since this particular rabbit has reached the peak level for
his gene.)

  - a rabbit that has the c9-gene, but not the h-gene or the b-gene
  (60% chance)

  - a rabbit with the h(1)-gene, but not any form of the c-gene or
  the b-gene (20% chance) 

  - a rabbit with the b(1)-gene, but not any form of the c-gene or
  the h-gene (20% chance)

>> Since there is a chance that even those rabbits with a high level
>> c-gene will give birth to a rabbit with a different gene, when a
>> particular area is not hunted heavily, the area will be
>> repopulated with rabbits having the other genes dominant.  Soon,
>> there may be lots of rabbits with all sorts of genes in that area
>> again.

> True, if no further "evolutionary pressure" is put on the
> population, it would drift back to neutral.  However, my guess is
> that players aren't going to entirely abandon a zone like this,
> and that some degree of pressure will stay.  Once rabbits develop
> the 100% invisibility, a rabbit that is visible will just get
> butchered and never pass on its genes.  The problem I see is that
> you're going to get stagnant populations very shortly that will
> have no reason to change in one direction or another.  They're
> certainly not natrually going to become less specialized.

I'm not sure I'm understanding.  It seems to me that you are again
overlooking the possibility that a rabbit will be fit enough even if
it is not the fittest.  Also, provided your game area is large
enough and your birth rate numbers are in the right balance, I would
think that players would be more than likely to abandon a hunting
zone where rabbits were very hard to find in favor of one where
rabbits are much easier to find.  In fact, I'm pretty sure that
someone posted some behavioral information a while back which
discussed the fact that players would automatically distribute
themselves in a manner which is very closely related to the amount
of rabbits (cheese) available at different locations.

>> If the area has no other natural rabbit predators, the rabbits
>> with higher birth rates will tend to be most prevalent in an
>> unhunted area.  On the other hand, if predators are predisposed
>> to eat rabbits with lower hit points, then rabbits with the
>> h-gene may predominate.

> This is the most intersting part of your (specific) scheme: seeing
> what rabbit-type becomes dominant in a given area.  I still don't
> know what game purpose this really serves though.

The rabbits are responding to pressures that are in their
environment with the goal that they remain fit enough for the rabbit
population to survive.

>> Or consider the case where someone decides to have a rabbit farm.
>> As they observe the birth rates of the rabbits, they might figure
>> out that those with the b-gene give birth more quickly.  When it
>> comes time to kill a rabbit for its pelt, which rabbit will be
>> the first to go?  I don't think it will be the rabbit with the
>> highest birth rate.  I imagine rabbit farmers will come to value
>> rabbits with higher birth rates and seek to protect them over
>> others.

> Unnatural, artificial selection, eh? :) Also interesting, though
> as I stated, you'll really need to have genes that aren't all good
> or all bad to posess.  Right now, there's no reason for a farmer
> not to choose breeder rabbits.  It would be a lot more fun, IMHO
> if he had to weigh price gained (at market say) vs. number
> produced, for instance.

Well, perhaps that is the next step in making things more
interesting.  (My fist concern, though, is the survivability of
content where players are given additional freedom to interact with
content.)  It might be possible to have multiple genes at work
simultaneously in the same rabbit.  The case you describe, however,
seems to go contrary to the whole point of my post.  I want breeder
rabbits to be more survivable in certain circumstances than other
types of rabbits, just like the other types of rabbits are more
survivable in other environments.  If we make it so that the pelts
of breeder rabbits are also much more valuable, it tends to
undermine the whole point of the excercise.

>> Also, what if the utility of an animal increased with age?
>> Suppose you might run accross young bucks, adult bucks, mature
>> bucks, large bucks, and trophy bucks while hunting deer.  This
>> might also provide an incentive to be more selective.  Especially
>> if your community has noticed that the deer population is
>> dwindling, and has decided to implement deer permits and quotas.
>> The community might have an incentive to do this if they need to
>> meet (character) population goals to level and are concerned that
>> an ecosystem that is too out of whack may drive some players to
>> other communities.

> I don't think I'd have enough faith in a community to actually
> make decisions like this.  Few people really have a group
> mentality online, since the rewards are so imediate and the
> penalties not real.  (Always comes back to griefers doesn't it? ;)

Well, we've certainly proved that it is possible to implement things
poorly.  I don't think this is the same thing as proving that it is
impossible to implement things better, though.

>> In any case, that is the basic concept.  I'm not in any way
>> committed to the actual numbers.  I think it would take a lot of
>> experimentation to see what works best, but I don't see why the
>> concept cannot be made to work.  I may have missed much, though.

> It all depends on what you're trying to do.  Keep rabbits alive
> for the sake of maintaining the ecosystem?  Maintaining a
> challenge for ever-levelling-up characers?  Creating a simulation?
> I agree though, it *could* work.

My goal was to keep rabbits alive for the sake of maintaining an
ecosystem in which players can effect and experience changes.


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

More information about the MUD-Dev mailing list