Thanks again, I'm getting a much clearer picture now.
The climate engine will be a LOT less complicated than the geologic engine.
I could be wrong, but I'm getting the impression that you have a bigger interest in geology than me, while I have a somewhat bigger interest in the climate generation. It's not like the other field doesn't interest us at all, but there seems to be a slightly different emphasis. We could complement each other well.
Basically I will make a list of all beach plots and mid continent plots. These plots will already have a wind direction, wind speed, relative humidity, and temperature initiated based on global winds, nearby geography types, and latitude. They will also have a calculated amount of water in the air. So I simply move the air from that plot to the next plot in the direction of the global winds. Calculate the change in elevation, the rise (or fall) in humidity, and any thing over 100% is reduced to 100% with the excess being converted to precipitation. Next plot please... (and so forth) until we intersect another air mass.
I will be using a queue structure to do the calculations so we do one piece of the air mass at a time.
A final precipitation value will also consider the "air mass frequency." I will consider the size of the body of water, the wind speed, and possibly one or two other variables to come up with a "number of air masses per season" type of calculation (frequency). This will lead to the final rainfall statistics for the plot.
Sounds okay. We will see how well it works in practice, and then we can tweak it. The goal is that it should generate accurate results, in broad terms, on an Earth map. That should be the yardstick, as you wrote earlier.
What is crucial, in my view, is that calculations for the airflow are done for different times of the year as well.
Then, for each plot the climate will be determined based on temp statistics*, season length, humidity statistics*, latitude, direction of nearest coast, and rainfall statistics* (did I miss anything?)
I have done some thinking about this, and I believe that, actually, you can determine climate a lot easier. That is, at least you don't need as many factors as the ones you mentioned.
Frankly, "season length" and the whole messing around with different seasons of different lengths strikes me as unncessarily complicated. I would just leave it out. You also don't need "direction of nearest coast" or "humidity statistics" to determine climate. All you really need is temperature and rainfall for different times of the year, and you have the climate type - that is how Köppen does it.
Here is how I would do it, just as an idea, and to illustrate how it could work:
- You calculate the mean temperature of a square, as a result of latitude, elevation above sea level, time of year (angle of sunlight) and airmass flow. Temperature according to latitude, elevation and time of year is a very straightforward calculation. Factoring in the airmasses, the hot and cold winds, is a bit more complicated, but you have the airmass calculator / simulator for this.
- Similarly, you calculate the precipitation that a square gets. This is also largely a result of the airmass calculator / simulator.
- You do these temperature and precipitation calculations for different points of the year. This is the crucial part - otherwise, the Köppen system can't really be applied. Ideally, temperature and precipitation should be calculated for every month of the year, which would mean 12 calculations. I believe dividing the year into four phases and doing only four calculations would be adequate, though. To do this, we don't need to mess around with "seasons" per se, nevermind seasons of different length in different places. We just divide the year into four phases of three months each, straightforward.
- The third thing you need to know (in addition to temperature and precipitation) is whether a plot is on the northern or on the southern hemisphere, so that you know whether a certain month (or 3-month phase) belongs to the "summer" time or the "winter" time.
- Once you have the mean temperature and precipitation for the 12 months (or four 3-month phases), the climate type can be determined in a pretty straightforward way, like Köppen does it. For instance: if the mean temperature of the coldest month is 18° C, the square has a Tropical (A) climate. If, in addition to that, the precipitation of the driest month is more than 60 mm, it has a Tropical Rainforest (Af) climate. If it has some dry months, it has a Savannah climate (Aw). Et cetera. Or, if the hottest month has a mean temperature of more than 10° C, and the coldest month a mean temperature between 0° C and 18° C, we are talking about a Temperate (C) climate. Furthermore, the precipitation values determines whether it is dry summer (Cs), dry winter (Cw) or fully wet oceanic (Cf). And so on.
- You can take a look at the way the different Köppen climate types are determined in Table 1 of
this essay. It gives the general idea. Simpler equations would also work well enough, I think - I'll come up with something.
As far as ice versus greenhouse? I may add that for calculations during the game. But not for the historical part of it. The reason is because it doesn't really matter much for the game. Climates are much more fleeting than geology. I suppose I could randomize an "ice earth" occurrence during the whole effect by lowering temperatures globally every now and then. Still... it wont effect much since climates can change overnight in geologic terms. The only potential affect could be hidden bedrock layers and their potential to create different bonuses.
I think a "Greenhouse Earth" and "Icehouse Earth" simulation for the geological stages would really be overdoing it. My point was the opposite: do we really need to model climate for the geological timespans at all? If you don't take all the massive climate changes, greenhouse phases, icehouse phases etc. into consideration, it is not a very accurate simulation. But if you do, it gets incredibly complicated.
Maybe it would be a better idea to simulate the geological climate, insofar as it is relevant for resource placement (coal and oil), in a much, much rougher fashion?