 |
|  |
 |
|
Vultur
|
 |
Milan
Jun 2000 time: 06:23
|
|
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(Gradient), 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.

|
|
|  |
 |
|
Disparat
|
|
East Coast, USA
Nov 2002 time: 05:23
|
|
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.
|
|
|  |
 |
|
Vultur
|
 |
Milan
Jun 2000 time: 06:23
|
|
quote: 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...
quote: WindSpeed (I don't think wind direction should have any effect, just intensity.) |
quote: 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.
quote: 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:
quote: 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...)
quote: 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,...)
quote: 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.
|
|
|  |
 |
|
Disparat
|
|
East Coast, USA
Nov 2002 time: 05:23
|
|
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.
|
|
|  |
 |
|
Vultur
|
 |
Milan
Jun 2000 time: 06:23
|
|
quote: 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.
quote: 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.
|
|
|  |
 |
|
targon
|
|
Dolgoprudny, Moscow region
Nov 2002 time: 08:23
|
|
Does it mean that only Earth-like planets are meant to exist in game? Of course, Earth-like planets (Type M for Trekies) are best for colonization, but other planets may be rich of minerals or have great strategic, scientific or diplomatic value.
|
|
|  |
 |
|
Leland
|
|
Atmosphereless planets should be easy... no atmoshpere, no weather. Gas giants on the other hand aren't available for colonization so I don't know if their weather conditions need to be modelled in much detail.
But, I do think that Earth-like planets should be the priority for colonization, and moons/gas giants should be more of a resource pool than a place to put people in. So it's reasonable that the weather model is geared towards planets that are livable or at least terraformable.
|
|
|  |
All times are GMT. The time now is 05:23. Apolyton Time is 00:23. |
top of page
|
|
|
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is ON
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|