Announcement

Collapse
No announcement yet.

Weather Design

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Weather Design

    This is a list of ideas gathered during Stella Polaris Design
    WARNING: This is a design thread, plase keep it clean.

    TILE'S VARIABLES
    • Warmth:Indicate how much heath the tile absorb from the Sun(s). Affect the quantity of energy taken from Solar Collectors
    • Wind:Wind intensity and direction. It is a vector-type variable. Affect the quantity of energy taken from Windmills
    • Water:Total quantity of drinking water in the tile. Affect the MAX quantity of food produced
    • Wet:Quantity of water vapor in the air.
    • Ice:Quantity of ice present in the tile. (high altitude/latitude only) Affect the MAX quantity of food produced
    • Rain:Quantity of rain that fall every turn. Rain will turn into Water Affect the MAX quantity of food produced
    • Snow:Quantity of snow that fall every turn. Snow will turn into Ice. (high altitude/latitude only) Affect the MAX quantity of food produced
    • Sand:Sand transported by the wind. Affect the desertification
    • Pollution (Air):Pulluting dust transported by the wind. (chemical pollution only)
    • Drainage:Affect the quantity of water vaporized. (fixed value)
    • Gradient:Difference of altitude with near tiles. (change only in case of terraforming)


    NOTE: These are the variables that affect the Weather. The tile will require other information.

    FORMULAS
    NOTES:
    += is a C/C++ notation: x+=y means that the quantity y is added to x and the result is the new x
    k,k1,...,kn are parameters and f(...), g(...) are non-determined function (suggestions will be welcome). Every parameter or function must be CAREFULY BETA-TESTED.

    latitude(x,y)=2*pi*(y-map_height/2)/map_height

    Warmth(x,y)=Star*(cos(latitude(x,y))+k)+ f(Dust)+ g(altitude), where Star is a fixed value and f(Dust) a specific function (implement Greenhouse Effect/Nuclear Winter)

    Wind.x(x,y)=Coriolis*(cos(latitude(x,y))+f(Gradien t), where Coriolis is a fixed value.
    Wind.y(x,y)=(Warmth(x,y)-Warmth(x,y-2)*k+ f(Gradient), if yWind.y(x,y)=(Warmth(x,y)-Warmth(x,y+2)*k
    Wind.I(x,y)=sqrt(Wind.x(x,y)^2+Wind.y(x,y)^2)

    Rain(x,y)=Wet(x,y)*Dust(x,y)*k+ f(Warmth,Gradient)
    Water(x,y)+=Rain(x,y)*k1-Warmth(x,y)*[(1-Drainage/k2)*k3-k] (cumulative, this means that this quantity is added every turn)
    Wet(x,y)+=Warmth(x,y)*Drainage(x,y)/k2*k3-Rain(x,y)-Wind.I(x,y) (cumulative)
    Dust(x,y)+=Sand(x,y)+Pollution.Air(x,y)-Rain(x,y)-Wind.I(x,y) (cumulative)

    Snow(x,y)=f(Rain,Warmth)
    Ice(x,y)+=Snow(x,y)-k*Warmth(x,y) (cumulative)

    FINAL NOTES
    This will be the more detailed and realistic Weather System seen in a game; it will be not a simulation. If anyone has any idea to have a more simple model is invited to post.
    Any pertinent comment/suggestion will be welcome.
    Aslo the gods are impotent against men's stupidity --Frederich Shiller
    In my vocabulary the word "Impossible" doesn't exist --Napoleon
    Stella Polaris Development Team -> Senior Code Writer (pro tempore) & Designer

  • #2
    one question only: will there be seasons....? coding them wouldnt be hard...just give each season a % of the parameters to work with..like in autumn 140% (1.4)rain...and winter 160% (1.6) snow....etc....
    Bunnies!
    Welcome to the DBTSverse!
    God, Allah, boedha, siva, the stars, tealeaves and the palm of you hand. If you are so desperately looking for something to believe in GO FIND A MIRROR
    'Space05us is just a stupid nice guy' - Space05us

    Comment


    • #3
      I've got some good ideas. Gimme a couple hours to get 'em worked out .

      Comment


      • #4
        Looks good, Vultur. I'll fine tune the summary and add it to the GOD material, once the suggestions by Disparat are posted and we have a consensus.
        "Kids, don't listen to uncle Solver unless you want your parents to spank you." - Solver

        Comment


        • #5
          Sorry, it's not nicely formatted, I'm lazy.


          These are just some variables I came up with...

          Temp (same as old warmth, just a different name. I just thought it might more encompassing)
          WindSpeed (I don't think wind direction should have any effect, just intensity.)
          PressureGradient (This helps determine windspeed. It will be the difference between high and low pressure zones. This might be too detailed. Might want to discard it.)
          LandGradient (same as old gradient variable. Slope of terrain)
          Precipitation (combined rain and snow. Temp variable will determine which it is.)
          Groundwater (combined ice and water. Again, Temp variable will determine which it is.)
          RelHumidity (Water vapor in air divided by total volume of water vapor the air can hold. Expressed as a percentage.)
          CloudCover (Overall cloudiness. Pretty self-explanatory, this will affect precipitation.)

          Now, I think these variables will help simplify things a bit with the exception of pressure gradients which may not be necessary. Anyway, I'm working on some more definitive formulas but first I've been doing some research to give me some sort of idea about what the heck I'm doing.

          Another thing - I think a set scale for all variables might help a lot, say 1-10 or 1-100. I think that way you don't have to worry about conversions and which units to use and all that. It might make the formulas a bit easier to set up as well. Also, concerning formulas, I'm no mathematician so I might find it easier to set it up as a C++ function (or something close to it, I don't do a ton a programming ). That way I can throw in conditional statements and such. Well, I'm still working on some stuff, but thought I'd put this out here. Tell me what you think.

          Comment


          • #6
            Originally posted by Disparat
            Temp (same as old warmth, just a different name. I just thought it might more encompassing)
            Yes, but warmth will affect also other things...
            WindSpeed (I don't think wind direction should have any effect, just intensity.)
            Wind.I(x,y)=sqrt(Wind.x(x,y)^2+Wind.y(x,y)^2)
            I means Intensity, the direction is to create inland deserts like SMAC, the player will see only the intensity.
            PressureGradient (This helps determine windspeed. It will be the difference between high and low pressure zones. This might be too detailed. Might want to discard it.)
            The idea is very good, but I've found a more simple way:
            Wind.y(x,y)=(Warmth(x,y)-Warmth(x,y-2)*k+ f(Gradient)
            (Warmth(x,y)-Warmth(x,y-2)*k is a sort of pressure gradient (more heath->more pressure, with a bit of semplification...)
            LandGradient (same as old gradient variable. Slope of terrain)
            Ok, but land gradient is an array with 8 variables (one for North, one for South,...)
            Precipitation (combined rain and snow. Temp variable will determine which it is.)
            Groundwater (combined ice and water. Again, Temp variable will determine which it is.)
            RelHumidity (Water vapor in air divided by total volume of water vapor the air can hold. Expressed as a percentage.)
            CloudCover (Overall cloudiness. Pretty self-explanatory, this will affect precipitation.)
            These are realy efficient ideas , I'll think a bit then we can begin a serious design.
            Aslo the gods are impotent against men's stupidity --Frederich Shiller
            In my vocabulary the word "Impossible" doesn't exist --Napoleon
            Stella Polaris Development Team -> Senior Code Writer (pro tempore) & Designer

            Comment


            • #7
              Hey, glad you like some of the ideas. I'm interested in what you think of the last paragraph with the 1-100 scale.

              I missed the thing where you used pressure gradients and I agree; your way is a better implementation. Sorry I never came up with some formulas but I'm still thinking about it. I'll try and devote some time to it this week.

              Well, hope you can use some of my ideas.

              Comment


              • #8
                I'm interested in what you think of the last paragraph with the 1-100 scale.
                Sorry, for the moment I've not thought at what type of scale we must use to code it, but only one scale will be not sufficient.
                This is a list of possible scales:

                Warmth:1-10000 related to Temp(seen by players):-100°C - +100°C
                Wind Intensity:0-300 km/h (related to windmill energy, tornados, hurricanes)
                Drainage:0-50(?) m (affect the underground water that need pits to be used)
                Water:0-100(?) m (affect the total quantity of water, so, the presence of rivers/swamps/lakes)
                NOTE:
                The non-underground water will partialy turn to Ice if the Temp is <0
                Precipitation:0-100(?) m(???) same as water
                NOTE:
                For obvious reason players will see only 7 levels of precipitation:
                0: Desertic
                1: Arid
                2: Dry
                3: Normal
                4: Wet
                5: Rainy
                6: Monsonic/Stormy (demends on the Temp value)
                This will be also drawed on the map when we'll have some more graphic.


                one question only: will there be seasons....? coding them wouldnt be hard...just give each season a % of the parameters to work with..like in autumn 140% (1.4)rain...and winter 160% (1.6) snow....etc....
                Sometimes ago I've proposed to have miniturns(fraction of year) with season switching. The miniturns idea is under design (we must ask Blake, he has a couple of ideas...), but season will risk to drive crazy players for the first years (imagine to lose 1/4 of total food for flooding and 1/4 for arid climat...) and it is almost useless in the mid-late game.
                An other good idea was "binary star solar system":
                if our planet is in a binary star solar system, there will be a slow temp variation that take several year (more near/far from the other Star). To manage this it's possible to change Warmth formula adding a cosine function of the other Star:
                Warmth(x,y)=(Star1+Star2*cos(t/T))*(cos(latitude(x,y))+k)+ f(Dust)+ g(altitude).
                If Star1 is a little/far star and Star2 a big star we can have alternate massive glaciations/desertifications of the whole planet every T turns.
                For obvius reason only expert players can try to play in such difficult conditions.
                Aslo the gods are impotent against men's stupidity --Frederich Shiller
                In my vocabulary the word "Impossible" doesn't exist --Napoleon
                Stella Polaris Development Team -> Senior Code Writer (pro tempore) & Designer

                Comment


                • #9
                  Effect of the weather on producion

                  After the weather design, we need to know how the weater affect the tiles' production:

                  FOOD
                  Other tile's variables:
                  Biomass: Affect the possibility to farm a tile (no biomass= no life possibilities)
                  Flora(& Fauna): Level of native Flora (& Fauna), affect the biomass present in the tile

                  Formulas
                  Biomass*=(1+k)^Fauna_Lv, where 0<k<1, and very little (~0.005).
                  Fauna_Lv=Biomass*f(Temp,Water)-g(Pollution)
                  Biomass-=Farm_Lv*k, where Farm_Lv is:
                  0 if no farm or eco-friendly farms (organic farming)
                  1 for Normal or Hidroponic farming
                  2 for Gene-Modified farming
                  3 for Intensive farming

                  Food production=precipitation_lv *Farm_Type *Stormy_Flag *k

                  precipition_lv:
                  0: Desertic
                  1: Arid
                  2: Dry
                  3: Normal
                  4: Wet
                  5: Rainy
                  6: Monsonic/Stormy

                  Farm_Type:
                  1: No Farm
                  1.5: Eco-Friendly Farm
                  2: Normal Farm
                  3: Intensive Farm
                  4: Gene-Modified Farm
                  NOTE: Hidroponic farm is a facility, not a terrain enhancement.

                  Stormy_Flag:
                  1: Non-stormy
                  0.25: Stormy (drasticaly reduction due to the cold)

                  NOTE:
                  Condensers will raise level of precipitation, don't add nothing to the food production.

                  ENERGY
                  Energy=Wind.I *Windmill_Flag*k1 +Warmth*(Solarcollector_Flag*k2 +Echelon_Flag*k3 +f(Altitude) -g(Precipitations)) +Borehole_Flag*k4
                  Flags are 1 if the enhancement exist, 0 if not.
                  Aslo the gods are impotent against men's stupidity --Frederich Shiller
                  In my vocabulary the word "Impossible" doesn't exist --Napoleon
                  Stella Polaris Development Team -> Senior Code Writer (pro tempore) & Designer

                  Comment


                  • #10
                    Vultur, did you take a look at existing weather models?
                    There are probably lots of models described on the internet, they might help give you some ideas, or cover things you may have forgotten.
                    <Kassiopeia> you don't keep the virgins in your lair at a sodomising distance from your beasts or male prisoners. If you devirginised them yourself, though, that's another story. If they devirginised each other, then, I hope you had that webcam running.
                    Play Bumps! No, wait, play Slings!

                    Comment


                    • #11
                      Vultur, did you take a look at existing weather models?
                      No, I didn't. If you know any site that could contain useful informations, please post it here.
                      Aslo the gods are impotent against men's stupidity --Frederich Shiller
                      In my vocabulary the word "Impossible" doesn't exist --Napoleon
                      Stella Polaris Development Team -> Senior Code Writer (pro tempore) & Designer

                      Comment


                      • #12
                        Food production=precipitation_lv *Farm_Type *Stormy_Flag *k

                        precipition_lv:
                        0: Desertic
                        1: Arid
                        2: Dry
                        3: Normal
                        4: Wet
                        5: Rainy
                        6: Monsonic/Stormy

                        Farm_Type:
                        1: No Farm
                        1.5: Eco-Friendly Farm
                        2: Normal Farm
                        3: Intensive Farm
                        4: Gene-Modified Farm
                        NOTE: Hidroponic farm is a facility, not a terrain enhancement.

                        Stormy_Flag:
                        1: Non-stormy
                        0.25: Stormy (drasticaly reduction due to the cold)
                        what kind of number for K are you thinking of?

                        because if you have a: monsonic tile(6) with a gene-modified(4) farm and non-stormy(1) then you are looking at: 6*4*1*k = food production
                        =>
                        24K = food production per turn.....

                        that is a lot if k>0.50
                        Bunnies!
                        Welcome to the DBTSverse!
                        God, Allah, boedha, siva, the stars, tealeaves and the palm of you hand. If you are so desperately looking for something to believe in GO FIND A MIRROR
                        'Space05us is just a stupid nice guy' - Space05us

                        Comment


                        • #13
                          what kind of number for K are you thinking of?

                          because if you have a: monsonic tile(6) with a gene-modified(4) farm and non-stormy(1) then you are looking at: 6*4*1*k = food production
                          =>
                          24K = food production per turn.....

                          that is a lot if k>0.50
                          ...this will depend on how many food is needed from the population:
                          2 food/10,000 people, k=1/2 production=enough food to feed 60,000 people/tile (~1.2 Millions of people=base size 120 with 20(!) tiles cultivated in this way).
                          I think this could be a beginning... (w/o crawling,space facilities...)

                          P.S.
                          The number of nutrients/people will must designed by other aspect of the game (% of talents, tech/economy/production produced by people...) so it's soon to decide on these parameters.

                          Soon I'll post my ideas on production/economy/..., but before I desire know what the whole SPDT think about this "Weather Guideline" and have some news from the "Great Kiwi".
                          Aslo the gods are impotent against men's stupidity --Frederich Shiller
                          In my vocabulary the word "Impossible" doesn't exist --Napoleon
                          Stella Polaris Development Team -> Senior Code Writer (pro tempore) & Designer

                          Comment


                          • #14
                            Bunnies!
                            Welcome to the DBTSverse!
                            God, Allah, boedha, siva, the stars, tealeaves and the palm of you hand. If you are so desperately looking for something to believe in GO FIND A MIRROR
                            'Space05us is just a stupid nice guy' - Space05us

                            Comment


                            • #15
                              The problem is that the most productive farm lands aren't determined by rainfall. Too much is as bad, or worse, than too little. Central California has too little rainfall to support intensive agriculture, but through irrigation it is the prime fruit and vegetable growing region of the USofA. Same with central Texas.

                              The American wheat and corn belt is not a heavy rainfall area either, yet every square mile produces food for 4000+ people. In this region irrigation would not raise the productivity, but only serve to minimize the damage of drought. Ironically, the profit margins are too small for most farmers to afford irrigation.

                              For much of history the "bread basket" of the Mediterranean basin was the lower Nile valley—a few miles wide and a hundred plus miles long. Rome would've had no "bread and circuses" if it weren't for Egyptian wheat.
                              (\__/) Save a bunny, eat more Smurf!
                              (='.'=) Sponsored by the National Smurfmeat Council
                              (")_(") Smurf, the original blue meat! © 1999, patent pending, ® and ™ (except that "Smurf" bit)

                              Comment

                              Working...
                              X