Re: Weather zones.

From: Chris Jacobson (fear@ATHENET.NET)
Date: 04/24/98


On 4/24/98 3:13 AM, Patrick J. Dughi (dughi@IMAXX.NET) stated:

>        Of course, this wouldn't have much to do with a world-wide climate
>would it? You could still have winter next to desert.  Sigh. It would be
>nice if there was some way to do that..

Well there is... have an "inheriting effect".  To do this you would need
to add to the zone file a list of zones it is "adjacent to" (inheriting
from) for weather.  This is where Pressure coms in handy - the MUD has to
try to keep pressure balanced, so when a zone's pressure increases, it
has to decrease at nearby zones, etc.

Thus, zone 1 could have:

inherit from zone 2: 20% of pressure change
inherit from zone 3: 10% of humid change

Zone 2:
inherit from zone 1: 20% of pressure change
inherit from zone 3: 1% of humid change

Zone 3:
inherit from zone 1: 20% of humid change          // Who says they have
to be equal?
inherit from zone 2: 5% of pressure change        // Or of the same
category!

Of course limits would be in effect too... and special "events" (perhaps
imm-triggered, or not) could change an entire zone's stats, which would
start to "disperse" out across the zones, such as:

You would not want to start applying changes immediately, either: run
through the list of zones, calculate all the changes and building linked
lists of changes for each zone, then run through and apply all the
buffered changes.

Day zero: Zone 1 = 0 pressure, 0 humid
          Zone 2 = 5 pressure, 0 humid
          Zone 3 = -5 pressure, 30 humid

Day one: (additions first)
          Zone 1 = 0 pressure      += .2*5 (from zone 2)    = +1
          Zone 1 = 0 humid         += .1*30 (from zone 3)   = +3
          Zone 2 = 20 pressure     += .2*0 (from zone 1)    = +0
          Zone 2 = 0 humid         += .01*30 (from zone 3)  = +.3
          Zone 3 = -5 pressure     += .05*5 (from zone 2)   = +.25
          Zone 3 = 30 humid        += .2*0 (from zone 1)    = +0

         (now subtractions - these built at same time as additions, since
its just
          the inverse of the addition data)
          Zone 1 = 0 pressure      -= .2*0 (to zone 2)      = -0
          Zone 1 = 0 humid         -= .2*0 (to zone 3)      = -0
          Zone 2 = 20 pressure     -= .2*5 (to zone 1)      = -1
          Zone 2 = 20 pressure     -= .05*5 (to zone 3)     = -.25
          Zone 3 = 30 humid        -= .1*30 (to zone 3)     = -3
          Zone 3 = 30 humid        -= .01*30 (to zone 2)    = -.3

Totalled: Zone 1, pressure         = 0 + 1                  = 1
          Zone 1, humid            = 0 + 3                  = 3
          Zone 2, pressure         = 20 - 1 - .25           = 18.25
          Zone 2, humid            = 0
          Zone 3, pressure         = -5 + .25               = -4.75
          Zone 3, humid            = 30 - 3 - .3            = 26.7

(BTW using floats is good here, and you can round off later, but you want
something with a greater precision than 1, like a precision of .1 -
allowing you 3 digits to play with, rather than 2, and keeping it in a
percentile format - or better, use a signed float, and keep it between
-50.0 and 50.0, with 0.00 being avg!).

Add events in to change things dramatically - say, a volcano eruption,
which would cause a major increase in humidity, pressure, temperature,
and dust/cloudiness, which would easily spread across several zones.  Or
if its just an active vent, constantly putting out minor changes.

You can also apply weather effects, such as wind: lower pressure zones
will have wind moving in (bringing nearby humidity), and higher pressure
zones will have wind moving out (carrying away humidity).

If one wanted, one could do this on an hourly or continuous effect!

If you start out with some good default values, or randomized (best), or
you start with NULL and cause several "random events" (rainstorm, etc),
you could end up with good effects.  Of course, over time things would
start to "settle down" - of course, thats the way it is in the real world
- or would be, if there was no change.  Natural events, and gravity and
changing sunlight affect the entire world.  So, perhaps use a "nighttime
cooling" effect, if you run the weather system by hour.  When it is cool
out, pressure drops (or was it the other way around - the standard
physics laws of hot/cold can't quite apply, so it might be reversed).

Apply monthly effects to certain zones, maybe even monthly changes to
minimum/maximum.  If you wanted to simulate a "warming pattern" occuring
in certain zones, have the global minimum/maximum increase by X, and
decrease by X-.1 or so over the course of a year.  In time, the zone
would have an extremely high min and max temperature!

- Chris Jacobson


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/15/00 PST