Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Reworking DF's Seasons and Climate by Latitude  (Read 727 times)

Rekov

  • Bay Watcher
  • Elf Aficionado
    • View Profile
Reworking DF's Seasons and Climate by Latitude
« on: December 11, 2019, 02:38:36 am »

I am going to describe the situation as it currently is. I will list which scenarios are possible in Dwarf Fortress, and then I will describe possible real world scenarios that cannot currently be recreated in Dwarf Fortress. Finally, I will suggest two alternate schemata for Adv. World Generation that allow for finer and more realistic control.

The four variables I will be talking about are:
1) Does the temperature of a world map tile change with latitude relative to one or two poles?
This variable basically determines whether the map in DF represents a whole/half world, or just a small part of one.

2) Does the temperature of a world map tile change with the seasons?
This variable determines whether there are seasons, driven by orbital eccentricity or axial tilt.

3) Does the amount of seasonal temperature change vary by latitude relative to one or two poles?
This variable is another way of asking whether the seasonal variation is driven by axial tilt (yes) or orbital eccentricity (no)

4) Are the seasons flipped across the equator in bipolar worlds?
This SHOULD NOT be a variable, because it SHOULD be the same as 3). I list it separately only because currently Dwarf Fortress has 3) = yes, 4) = no as a possibility.



Currently Possible in Dwarf Fortress:
1) temp. by latitude = yes
2) temp. by seasons = yes
3) seasons by latitude = yes
4) seasons flipped across equator = no

This is the current Dwarf Fortress set up if you have poles enabled. If you only have one pole enabled, this represents a world with a low orbital eccentricity and a significant axial tilt. If you have two poles enabled, this scenario doesn't make sense given the laws of physics as I understand them.

1) temp. by latitude = no
2) temp. by seasons = no
3) seasons by latitude = N/A
4) seasons flipped across equator = N/A

This represents a small portion of a world without significant axial tilt and a low orbital eccentricity.


Currently NOT Possible in Dwarf Fortress:
1) temp. by latitude = yes
2) temp. by seasons = yes
3) seasons by latitude = yes
4) seasons flipped across equator = yes

This represents, essentially, earth. The seasons are driven by axial tilt. Summer in the North is winter in the South, and vice versa. Seasons are stronger at the poles and weaker at the equator.

1) temp. by latitude = yes
2) temp. by seasons = yes
3) seasons by latitude = no
4) seasons flipped across equator = no

This represents a world with low axial tilt, but seasons driven by high orbital eccentricity. The northern and southern hemispheres experience the same seasons at the same time, and the equator and poles experiences equally intense seasonal variation.

1) temp. by latitude = no
2) temp. by seasons = yes
3) seasons by latitude = no
4) seasons flipped across equator = N/A

This represents a small portion of a world with either significant axial tilt and/or high orbital eccentricity to drive seasons.


There are obviously far more scenarios of increasingly low utility. Consider for a moment how to represent seasons on a moon orbiting a planet which then orbits the sun. If the moon has axial tilt, then its "year" would be equal to its "day", and seasons could only be driven by the planet's highly eccentric orbit. What about tidally locked planets, or moons with orbits far off the plane of the ecliptic? There are a ton of possible scenarios as Dwarf Fortress moves forward into being able to express many different kinds of worlds, and it might not be worth trying to accommodate them all.



Alternative Schema 1:
The first possibility is to give the player controls which simply describe the planet, and everything else happens behind the scenes.

Poles: Exactly like the current setting. Possibly add a 'center pole' option to represent one half of a world with the pole in the center of the map.

Axial Tilt: The degree to which seasons are influenced by latitude, and whether seasons are flipped across the equator.

Orbital Eccentricity: The degree to which seasons are driven across the entire planet by distance from the sun, regardless of latitude.

Date of perihelion/aphelion: This optional variable controls how axial tilt and orbital eccentricity interact, if both present.

It should be noted that a world could both have high axial tilt and high orbital eccentricity (both operate on period = 1 year). Depending on how these two cycles lined up with each other, these two different drivers of seasonal temperature change could stack or cancel each other out in different hemispheres.

Alternative Schema 2:
The second possibility is to simply let the player specify hard numbers:

Amount of Seasonal Variation: By how much does temperature vary with the year?

Influence of Latitude on Seasonal Variation: At 0, seasons are equally strong across the world. At 1, seasons are extreme at poles, non existent at equator, with a range in between. At 0.5, seasons are strong at the poles, and mild at the equator, etc.

Are seasons flipped across the equator?: A simply binary

This schema is slightly less sophisticated than the first in that it doesn't let you play axial tilt and orbital eccentricity off against each other, but is probably a lot more straight forward in terms of giving the player what they want.
Logged