[What follows is a rather long-winded technical discussion. If you wish, skip most of it and just go down and read the conclusions I give at the bottom.]
In crafting my weathers mods, I try to follow several principles, among them: try not to deviate too much from the AGEOD official standard.
How to check for deviations?
For my mods, I have written a Perl script -- mkweathers.pl -- to auto-generate the weather .ini files. (I will unveil mkweathers.pl more fully at a later date.) In that script, I have a system for specifying area-to-area, month-to-month weather (fair, mud, snow, etc.) parameters in a concise and easy to understand form.
The five different weather types are assigned numbers, as in:
0 = Fair (aka Clear)
1 = Mud (aka Rain)
2 = Snow
3 = HarshWeather (aka Frozen)
4 = VHarshWeather (aka Blizzard)
In mkweathers.pl, here are the (current, subject to future change) month-to-month weather parameters for "normal" (not coastal, not elevated) terrain in continental weather areas:
# jan feb mar apr may jun jul aug sep oct nov dec
@continentalnorm = (3.2, 2.4, 1.6, 1.0, 0.5, 0.2, 0.1, 0.1, 0.2, 0.3, 1.6, 2.4);
(Pardon the poor formatting and mis-alignments in the displays here. In the actual code, things line up nicely.)
In general, I am striving to follow these general principles:
- colder to the north, warmer to the south
- colder in the uplands and wilderness, warmer in the lowlands and toward the coasts
- consistency east to west (no "crazy quilt" weather patterns)
In order to achieve the desired effects (adhere to the three design principles), I have to constrain each region to just one or two "adjacent" weather possibilities in any given month (e.g., 2.0 => 100% chance Snow; or 1.5 => 50% chance Mud, 50% chance Snow). (To allow three or more possible weathers for a given region and month is to invite inverted weather/temperature patterns, "crazy quilt" patterns, or worse.)
So, in the above example, January weather falls between (for AACW) Frozen (3) and Blizzard (4). In the Weathers *.ini files, 3.2 translates to
Weather_Great_Lakes|January|Other|Fair|0
Weather_Great_Lakes|January|Other|Mud|0
Weather_Great_Lakes|January|Other|Snow|0
Weather_Great_Lakes|January|Other|Frozen|80
Weather_Great_Lakes|January|Other|Blizzard|20
May weather falls between (for AACW) Fair (0) and Mud (1). 0.5 translates to
Weather_Great_Lakes|January|Other|Fair|50
Weather_Great_Lakes|January|Other|Mud|50
Weather_Great_Lakes|January|Other|Snow|0
Weather_Great_Lakes|January|Other|Frozen|0
Weather_Great_Lakes|January|Other|Blizzard|0
So far, so good. But again I ask myself the question: How do my modded weather parameters compare to the AGEOD official defaults?
To answer that question, I wrote another Perl script, ageweathers.pl:
#!/usr/bin/perl
# ./ageweathers.pl -g rus | egrep "jan|Subarctic|SiberianSteppe|EasternSiberian|Caucasus|Mountain"
$DEBUG = 0;
$ROOT = "/media/KINGSTON/Games/AGEOD";
@months = ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
while ($#ARGV >= 0) {
if ($ARGV[0] eq "-e") {
shift;
$elevation = $ARGV[0];
shift;
} elsif ($ARGV[0] eq "-g") {
shift;
if ($ARGV[0] eq "acw") {
$ACW = 1;
} elsif ($ARGV[0] eq "ncp") {
$NCP = 1;
} elsif ($ARGV[0] eq "pon") {
$PON = 1;
} elsif ($ARGV[0] eq "rop") {
$ROP = 1;
} elsif ($ARGV[0] eq "rus") {
$RUS = 1;
} elsif ($ARGV[0] eq "wia") {
$WIA = 1;
} else {
die "invalid or missing game parameter\n";
}
shift;
} else {
print "Usage: ageweathers.pl -e {-1|0|1} -g {acw|ncp|pon|rop|rus|wia}\n";
exit 1;
}
}
if ($ACW) {
$gamedir = "AGEod\\'s\\ American\\ Civil\\ War/ACW";
%levels = ("Clear", 0, "Mud", 1, "Snow", 2, "Frozen", 3, "Blizzard", 4);
} elsif ($NCP) {
$gamedir = "Napoleon\\'s\\ Campaigns/NCP";
%levels = ("Clear", 0, "Mud", 1, "Snow", 2, "Frozen", 3, "Blizzard", 4);
} elsif ($PON) {
$gamedir = "";
} elsif ($ROP) {
$gamedir = "Rise\\ of\\ Prussia/ROP";
%levels = ("Clear", 0, "Mud", 1, "Snow", 2, "HarshWeather", 3, "VHarshWeather", 4);
} elsif ($RUS) {
$gamedir = "Revolution\\ under\\ Siege/RUS";
%levels = ("Clear", 0, "Mud", 1, "Snow", 2, "HarshWeather", 3, "VHarshWeather", 4);
} elsif ($WIA) {
$gamedir = "Wars\\ in\\ America/WIA";
%levels = ("Clear", 0, "Mud", 1, "Snow", 2, "Frozen", 3, "Blizzard", 4);
}
print " jan feb mar apr may jun jul aug sep oct nov dec\n";
open(WEATHERS, "cd $ROOT/$gamedir; ls -1 GameData/Weathers |");
while (<WEATHERS>) {
chomp;
$file = $_;
print "$file\n" if $DEBUG;
next if $file eq "WeatherAreas.ini";
if ($ACW || $NCP || $RUS) {
if ($file =~ /WeatherPatterns_Weather_(.+)\.ini/) {
$warea = $1;
print "$warea\n" if $DEBUG;
}
} elsif ($ROP || $WIA) {
if ($file =~ /WeatherPatterns_(.+)\.ini/) {
$warea = $1;
print "$warea\n" if $DEBUG;
}
}
undef %wlevel;
open(INIFILE, "cd $ROOT/$gamedir; cat GameData/Weathers/$file |");
while (<INIFILE>) {
chomp;
$line = $_;
print "$line\n" if $DEBUG;
@fields = split /\|/, $line;
if ((($elevation == -1) && ($fields[2] =~ /^(low|coastalwaters)$/i)) || (($elevation == 0) && ($fields[2] =~ /^(normal|other)$/i)) || (($elevation == 1) && ($fields[2] =~ /^(high|mountain)$/i))) {
$month = $fields[1];
$weather = $fields[3] eq "Fair" ? "Clear" : $fields[3];
$pct = $fields[4];
print "$month $weather $levels{$weather} $pct\n" if $DEBUG;
$wlevel{$month} += $levels{$weather} * $pct / 100;
}
}
close(INIFILE);
printf "%-21s", $warea;
for ($i=0; $i<12; $i++) {
$wl = sprintf "%.1f", $wlevel{$months[$i]};
$sp = $i<11 ? " " : "";
printf "%s%s", $wl, $sp;
}
print "\n";
}
close(WEATHERS);
exit 0;
(In the actual script, lines are indented and nicely formatted. I'd like to display the script better here, but the Matrix Forum code display facilities are quite broken, so I have to resort to a flatter, plainer display as shown above.)
A sample invocation of ageweathers.pl would be (in Linux, where I do most of my AGEOD development work):
[root@berto weathers]# ./ageweathers.pl -g acw
jan feb mar apr may jun jul aug sep oct nov dec
Central_America 0.5 0.5 0.6 0.5 0.1 0.1 0.1 0.1 0.5 0.1 0.2 0.2
Coastal_Lowlands 1.1 1.1 0.6 0.3 0.1 0.1 0.1 0.1 0.1 0.1 0.3 0.8
Europe 2.9 1.8 1.1 0.7 0.3 0.1 0.1 0.1 0.1 0.2 1.3 2.7
Great_Lakes 2.9 2.2 1.6 0.5 0.2 0.1 0.1 0.1 0.1 0.2 1.4 2.7
Gulf_Coastal 0.4 0.4 0.5 0.4 0.1 0.1 0.1 0.1 0.4 0.1 0.2 0.2
Map_Seas 1.1 1.1 0.7 0.5 0.2 0.1 0.1 0.1 0.1 0.1 0.4 0.8
Mid_Atlantic 2.2 2.2 1.6 0.6 0.2 0.1 0.1 0.1 0.1 0.1 1.4 2.7
Mississippi_Basin 2.2 2.0 1.7 0.3 0.2 0.1 0.1 0.1 0.1 0.2 1.2 2.4
New_England 2.9 2.9 2.0 1.1 0.2 0.1 0.1 0.1 0.1 0.1 1.6 2.9
North_Appalachian 2.9 2.9 1.8 0.6 0.3 0.1 0.1 0.1 0.1 0.1 1.4 2.9
North_Plains 2.9 2.2 1.8 0.3 0.2 0.1 0.1 0.1 0.1 0.2 1.4 2.7
Ozarks 2.9 2.0 1.7 0.3 0.2 0.1 0.1 0.1 0.1 0.2 1.2 2.7
South_Appalachian 2.1 2.0 1.8 0.3 0.3 0.1 0.1 0.1 0.1 0.2 1.2 2.7
South_Plains 2.2 1.9 1.6 0.2 0.2 0.1 0.1 0.1 0.1 0.2 1.1 2.7
Upland_South 1.4 1.4 0.6 0.3 0.1 0.1 0.1 0.1 0.1 0.1 0.3 0.9
Upper_South 1.1 1.1 0.6 0.3 0.1 0.1 0.1 0.1 0.1 0.1 0.3 0.9
(Again, pardon the poor display.
Aargh!)
In effect, each monthly weather parameter is a weighted average of the five weather types, 0 to 4, based on their probabilities.
To show the weather parameters for just the colder weather areas, I might grep (pattern match) the above output, as in:
[root@berto weathers]# ./ageweathers.pl -g acw | egrep "jan|North_Plains|Great_Lakes|New_England|North_Appalachian"
jan feb mar apr may jun jul aug sep oct nov dec
Great_Lakes 2.9 2.2 1.6 0.5 0.2 0.1 0.1 0.1 0.1 0.2 1.4 2.7
New_England 2.9 2.9 2.0 1.1 0.2 0.1 0.1 0.1 0.1 0.1 1.6 2.9
North_Appalachian 2.9 2.9 1.8 0.6 0.3 0.1 0.1 0.1 0.1 0.1 1.4 2.9
North_Plains 2.9 2.2 1.8 0.3 0.2 0.1 0.1 0.1 0.1 0.2 1.4 2.7
I have still another script -- doageweathers.sh -- to show the weather parameters across all supported (by my weathers mods) AGEOD games:
#!/bin/bash
ELEVATION=$1
echo "ACW WEATHERS"
echo
./ageweathers.pl -e $ELEVATION -g acw | egrep "jan|North_Plains|Great_Lakes|New_England|North_Appalachian"
echo
./ageweathers.pl -e $ELEVATION -g acw | egrep "jan|Upper_South|Upland_South|South_Appalachian|Ozarks|South_Plains|Mississippi_Basin|Mid_Atlantic|Coastal_Lowlands|Europe|Map_Seas"
echo
./ageweathers.pl -e $ELEVATION -g acw | egrep "jan|Gulf_Coastal|Central_America"
echo
echo
echo "NCP WEATHERS"
echo
./ageweathers.pl -e $ELEVATION -g ncp | egrep "jan|Arctic|Mountaineous"
echo
./ageweathers.pl -e $ELEVATION -g ncp | egrep "jan|Continental|Northern_Steppes|Northern_Seas"
echo
./ageweathers.pl -e $ELEVATION -g ncp | egrep "jan|Temperate|Southern_Steppes"
echo
./ageweathers.pl -e $ELEVATION -g ncp | egrep "jan|Mediterranean|Tropical|Southern_Seas"
echo
./ageweathers.pl -e $ELEVATION -g ncp | egrep "jan|Desertic"
echo
echo
echo "ROP WEATHERS"
echo
./ageweathers.pl -e $ELEVATION -g rop | egrep "jan|Alpine"
echo
./ageweathers.pl -e $ELEVATION -g rop | egrep "jan|Interior_Lowlands|Interior_Uplands|Baltic_Coast"
echo
./ageweathers.pl -e $ELEVATION -g rop | egrep "jan|North_Sea_Coast"
echo
echo
echo "RUS WEATHERS"
echo
./ageweathers.pl -e $ELEVATION -g rus | egrep "jan|Subarctic|SiberianSteppe|EasternSiberian|Caucasus|Mountain"
echo
./ageweathers.pl -e $ELEVATION -g rus | egrep "jan|NorthContinental|SouthContinental|Steppe|BalticSea" | egrep -v "DeserticSteppe|SiberianSteppe"
echo
./ageweathers.pl -e $ELEVATION -g rus | egrep "jan|European|WarmSeas"
echo
./ageweathers.pl -e $ELEVATION -g rus | egrep "jan|Mediterranean|BlackCaspianSeas|Moonsoon"
echo
./ageweathers.pl -e $ELEVATION -g rus | egrep "jan|DeserticSteppe"
echo
./ageweathers.pl -e $ELEVATION -g rus | egrep "jan|CentralAsian"
echo
echo
echo "WIA WEATHERS"
echo
./ageweathers.pl -e $ELEVATION -g wia | egrep "jan|Canadian_Maritimes|Eastern_Canada|Eastern_Great_Lakes|Lower_New_England|Northern_Plains|Upper_New_England|Upper_West|Western_Canada|Western_Great_Lakes|Upland_Middle_States|WxAtlantic"
echo
./ageweathers.pl -e $ELEVATION -g wia | egrep "jan|Coastal_Middle_States|Kentuckee_Uplands|Upland_South|Upland_Southeast|Southern_Plains|WxEurope"
echo
./ageweathers.pl -e $ELEVATION -g wia | egrep "jan|Carribean|Coastal_Carribean|Coastal_Southeast|Lower_Louisianne"
echo
Game by game, doageweathers.sh greps weathers in several broad weather groupings, from coldest to warmest: subarctic, continental, temperate, subtropical, desert.
Here is the doageweaters.sh output (for normal, not coastal or mountain, elevation):
[root@berto weathers]# ./doageweathers.sh
ACW WEATHERS
jan feb mar apr may jun jul aug sep oct nov dec
Great_Lakes 2.9 2.2 1.6 0.5 0.2 0.1 0.1 0.1 0.1 0.2 1.4 2.7
New_England 2.9 2.9 2.0 1.1 0.2 0.1 0.1 0.1 0.1 0.1 1.6 2.9
North_Appalachian 2.9 2.9 1.8 0.6 0.3 0.1 0.1 0.1 0.1 0.1 1.4 2.9
North_Plains 2.9 2.2 1.8 0.3 0.2 0.1 0.1 0.1 0.1 0.2 1.4 2.7
jan feb mar apr may jun jul aug sep oct nov dec
Coastal_Lowlands 1.1 1.1 0.6 0.3 0.1 0.1 0.1 0.1 0.1 0.1 0.3 0.8
Europe 2.9 1.8 1.1 0.7 0.3 0.1 0.1 0.1 0.1 0.2 1.3 2.7
Map_Seas 1.1 1.1 0.7 0.5 0.2 0.1 0.1 0.1 0.1 0.1 0.4 0.8
Mid_Atlantic 2.2 2.2 1.6 0.6 0.2 0.1 0.1 0.1 0.1 0.1 1.4 2.7
Mississippi_Basin 2.2 2.0 1.7 0.3 0.2 0.1 0.1 0.1 0.1 0.2 1.2 2.4
Ozarks 2.9 2.0 1.7 0.3 0.2 0.1 0.1 0.1 0.1 0.2 1.2 2.7
South_Appalachian 2.1 2.0 1.8 0.3 0.3 0.1 0.1 0.1 0.1 0.2 1.2 2.7
South_Plains 2.2 1.9 1.6 0.2 0.2 0.1 0.1 0.1 0.1 0.2 1.1 2.7
Upland_South 1.4 1.4 0.6 0.3 0.1 0.1 0.1 0.1 0.1 0.1 0.3 0.9
Upper_South 1.1 1.1 0.6 0.3 0.1 0.1 0.1 0.1 0.1 0.1 0.3 0.9
jan feb mar apr may jun jul aug sep oct nov dec
Central_America 0.5 0.5 0.6 0.5 0.1 0.1 0.1 0.1 0.5 0.1 0.2 0.2
Gulf_Coastal 0.4 0.4 0.5 0.4 0.1 0.1 0.1 0.1 0.4 0.1 0.2 0.2
NCP WEATHERS
jan feb mar apr may jun jul aug sep oct nov dec
Arctic 2.9 2.9 1.8 0.8 0.4 0.1 0.0 0.0 0.1 0.2 1.4 2.9
Mountaineous 2.9 2.9 1.8 1.1 0.4 0.1 0.0 0.0 0.1 0.2 1.0 2.9
jan feb mar apr may jun jul aug sep oct nov dec
Continental 2.2 2.2 1.4 0.6 0.6 0.2 0.0 0.0 0.1 0.2 0.8 2.7
Northern_Seas 1.1 1.1 0.7 0.5 0.2 0.1 0.0 0.0 0.1 0.1 0.4 0.8
Northern_Steppes 2.9 2.0 1.8 0.8 0.3 0.1 0.0 0.0 0.1 0.2 1.3 2.7
jan feb mar apr may jun jul aug sep oct nov dec
Southern_Steppes 0.5 0.5 0.6 0.5 0.0 0.0 0.0 0.0 0.5 0.1 0.2 0.2
Temperate 1.3 1.1 0.7 0.5 0.2 0.1 0.0 0.0 0.1 0.1 0.4 0.8
jan feb mar apr may jun jul aug sep oct nov dec
Mediterranean 0.8 0.6 0.6 0.3 0.1 0.1 0.0 0.0 0.1 0.1 0.3 0.7
Southern_Seas 1.1 1.1 0.7 0.5 0.2 0.1 0.0 0.0 0.1 0.1 0.4 0.8
Tropical 0.5 0.5 0.6 0.5 0.0 0.0 0.0 0.0 0.5 0.1 0.2 0.2
jan feb mar apr may jun jul aug sep oct nov dec
Desertic 0.2 0.1 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.2 0.2
ROP WEATHERS
jan feb mar apr may jun jul aug sep oct nov dec
Alpine 2.6 2.4 2.0 0.6 0.6 0.1 0.0 0.0 0.1 0.3 1.3 2.6
jan feb mar apr may jun jul aug sep oct nov dec
Baltic_Coast 2.5 2.0 1.2 0.6 0.5 0.1 0.0 0.0 0.1 0.3 1.1 2.6
Interior_Lowlands 2.1 1.8 0.8 0.4 0.2 0.1 0.0 0.0 0.1 0.3 0.6 1.3
Interior_Uplands 2.5 2.4 1.8 0.6 0.6 0.1 0.0 0.0 0.1 0.3 0.9 2.4
jan feb mar apr may jun jul aug sep oct nov dec
North_Sea_Coast 1.4 1.1 0.8 0.5 0.2 0.1 0.0 0.0 0.1 0.2 0.6 1.4
RUS WEATHERS
jan feb mar apr may jun jul aug sep oct nov dec
Caucasus 2.4 2.3 1.9 0.6 0.3 0.2 0.1 0.0 0.1 0.4 0.7 2.3
EasternSiberian 2.6 2.5 1.8 0.7 0.1 0.0 0.0 0.0 0.2 0.3 1.3 2.4
Mountain 2.9 2.7 2.0 1.2 0.4 0.1 0.0 0.0 0.1 0.3 1.6 2.9
SiberianSteppe 2.6 2.5 1.8 0.7 0.1 0.0 0.0 0.0 0.2 0.3 1.9 2.4
Subarctic 2.8 2.8 2.5 1.1 0.4 0.2 0.0 0.0 0.2 0.3 1.4 2.8
jan feb mar apr may jun jul aug sep oct nov dec
BalticSea 1.1 1.1 0.7 0.5 0.2 0.1 0.0 0.0 0.1 0.1 0.4 0.8
NorthContinental 2.6 2.5 1.8 0.8 0.3 0.2 0.0 0.0 0.2 0.4 1.5 2.6
SouthContinental 2.4 2.3 1.3 0.7 0.3 0.2 0.0 0.0 0.2 0.5 1.5 2.3
Steppe 2.4 2.4 1.4 0.6 0.2 0.1 0.0 0.0 0.2 0.5 1.4 2.1
jan feb mar apr may jun jul aug sep oct nov dec
European 2.3 2.2 1.2 0.5 0.3 0.1 0.0 0.0 0.1 0.4 0.7 1.8
WarmSeas 1.1 1.1 0.7 0.5 0.2 0.1 0.0 0.0 0.1 0.1 0.4 0.8
jan feb mar apr may jun jul aug sep oct nov dec
BlackCaspianSeas 1.1 1.1 0.7 0.5 0.2 0.1 0.0 0.0 0.1 0.1 0.4 0.8
Mediterranean 2.2 1.6 0.9 0.5 0.1 0.0 0.0 0.0 0.1 0.1 0.9 1.7
Moonsoon 0.0 0.1 0.2 0.3 0.6 0.8 1.1 0.8 0.7 0.2 0.1 0.0
jan feb mar apr may jun jul aug sep oct nov dec
DeserticSteppe 1.3 1.2 0.6 0.4 0.1 0.0 0.0 0.0 0.1 0.1 1.0 1.3
jan feb mar apr may jun jul aug sep oct nov dec
CentralAsian 1.3 0.9 0.1 0.1 0.1 0.0 0.0 0.0 0.0 0.1 0.3 0.9
WIA WEATHERS
jan feb mar apr may jun jul aug sep oct nov dec
Canadian_Maritimes 2.9 2.9 2.4 1.6 0.6 0.1 0.0 0.0 0.1 0.2 1.3 2.9
Eastern_Canada 2.9 2.9 2.4 1.6 0.6 0.1 0.0 0.0 0.1 0.2 1.3 2.9
Eastern_Great_Lakes 2.9 2.0 1.8 1.2 0.3 0.1 0.0 0.0 0.1 0.2 1.3 2.7
Lower_New_England 2.9 2.0 1.8 1.2 0.3 0.1 0.0 0.0 0.1 0.2 1.3 2.7
Northern_Plains 2.9 2.2 1.9 1.2 0.5 0.1 0.0 0.0 0.1 0.3 1.3 2.7
Upland_Middle_States 2.9 2.0 1.8 1.2 0.5 0.1 0.0 0.0 0.1 0.3 1.3 2.7
Upper_New_England 2.9 2.1 1.9 1.3 0.3 0.1 0.0 0.0 0.1 0.2 1.4 2.7
Upper_West 2.9 2.2 1.9 1.0 0.5 0.1 0.0 0.0 0.1 0.3 1.3 2.7
Western_Canada 2.9 2.9 2.4 1.6 0.6 0.1 0.0 0.0 0.1 0.2 1.3 2.9
Western_Great_Lakes 2.9 2.9 2.4 1.6 0.6 0.1 0.0 0.0 0.1 0.2 1.3 2.9
jan feb mar apr may jun jul aug sep oct nov dec
Coastal_Middle_States1.1 1.2 1.1 0.8 0.5 0.1 0.0 0.0 0.1 0.2 0.7 0.8
Kentuckee_Uplands 1.7 1.8 1.8 1.4 0.2 0.1 0.0 0.0 0.1 0.2 0.9 1.5
Southern_Plains 2.2 1.5 1.1 0.7 0.5 0.1 0.0 0.0 0.1 0.3 1.1 1.9
Upland_Southeast 0.9 0.9 0.9 0.7 0.3 0.1 0.0 0.0 0.1 0.2 0.3 0.8
Upland_South 0.9 0.9 0.8 0.5 0.2 0.1 0.0 0.0 0.1 0.2 0.3 0.3
WxAtlantic 2.9 2.0 1.8 1.2 0.3 0.1 0.0 0.0 0.1 0.2 1.3 2.7
WxEurope 0.5 0.5 0.6 0.5 0.0 0.0 0.0 0.0 0.5 0.1 0.2 0.2
jan feb mar apr may jun jul aug sep oct nov dec
Coastal_Carribean 0.5 0.5 0.6 0.5 0.0 0.0 0.0 0.0 0.5 0.1 0.2 0.2
Coastal_Southeast 0.5 0.7 0.6 0.5 0.2 0.1 0.0 0.0 0.1 0.2 0.3 0.5
Lower_Louisianne 0.5 0.5 0.6 0.5 0.0 0.0 0.0 0.0 0.5 0.1 0.2 0.2
This is really nifty, because I have a concise, easy-to-see cross reference from one game to another, from one weather area to another, between the AGEOD defaults and my own modded parameters.
If you look at the official AGEOD AACW weathers in the doageweathers.sh output above, you will see a North_Plains weather area,
jan feb mar apr may jun jul aug sep oct nov dec
North_Plains 2.9 2.2 1.8 0.3 0.2 0.1 0.1 0.1 0.1 0.2 1.4 2.7
Contrast the above AGEOD official defaults with the continental weather area parameters in the first-release v0.8 of my AACW Weathers Mod:
# jan feb mar apr may jun jul aug sep oct nov dec
@continentalnorm = (3.2, 2.4, 1.6, 1.0, 0.5, 0.2, 0.1, 0.1, 0.2, 0.3, 1.6, 2.4);
Hmm. There's a bit of difference between my specs and the official AGEOD specs. In some cases, for mountain regions especially, I can see that maybe I've tended too strongly toward harsher winter weather. I maybe need to tone that down a bit. Adjustments will be made.
This all looks very complicated. (It is! In my discussion here, I omit some detail and complexities having to do with warmer or colder weather parameter "tilts" for coastal and higher elevations. And other details.) If you don't quite follow this discussion, don't worry. What you should take from all of this is:
- I try not to stray unnecessarily far from the official AGEOD standards and defaults. (I try to minimize weather area adjustments and region re-assignments, for example.) You should not expect a radically different gaming experience.
- I am basing my mod on real-world climate and weather patterns. Within reason (given limitations in the AGE engine weather mechanism, and limits on time and effort -- I am not a meteorologist or climatologist, and the weather mods are not a scientific study or PhD thesis!) -- within reason, you can expect a fairly good weather model and representation of the real physical world.
- The weather mod will follow these general principles: colder to the north, warmer to the south; colder in the uplands and wilderness, warmer in the lowlands and toward the coasts; consistency east to west (no "crazy quilt" or "peek-a-boo" now-you-see-it-now-you-don't weather patterns).
- I am diligent, and careful, and to the best of my ability I will QA my work and give you the best product reasonably possible.
In the next release of my weathers mods, due out in a week or so, I will provide updates for all four of the now-supported AGEOD games -- AACW, ROP, RUS & WIA. (NCP will come later. PON likely never. AJE? Hmm, maybe...) Expect to see the next version of the AACW weathers mod soon.