• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.

ewphoenix123

Darkest Hour Cartographer
10 Badges
Apr 26, 2007
817
2
  • Arsenal of Democracy
  • Cities in Motion
  • Crusader Kings II
  • Europa Universalis III
  • Divine Wind
  • Hearts of Iron III
  • Sword of the Stars
  • Sword of the Stars II
  • 500k Club
  • Crusader Kings II: Holy Knight (pre-order)
DEV DIARY II - WORLDMAP







It is Monday, and as promised, we are going to reveal a little more about Darkest Hour.
But let us start with a few words from Eric 'Eginhard' who defined most of the concepts of the main map (used in the grand campaigns).


The Holy Rule

The basic problem with game design is to find the best compromise between simplicity and realism. Knowing the community’s (and our own) fondness for historical realism, and at the same time the needs of the Europa engine to provide an enjoyable game, we had to resolve the same dilemma with the map.

The first issue that we dealt with was to establish specifications that would make sure that our map would not completely break the game balance, especially regarding artificial intelligence capabilities. After many discussions during the preliminary phases of map development, three major specifications were established.
First, in order to keep consistent with the massive improvements made by Martin with game speed, it was agreed to keep the overall number of provinces below 3,000. It was soon discovered that only the actual number of province IDs used had influence on game performance, which allowed us to put the province number limit to 10,000 (or even higher for future modders’ use) as well as to suppress all other limits regarding map modding.
Second, given that military artificial intelligence may have trouble with handling fronts with too many connections (that is, when attackers could come from too much sides), it was decided that no province would have more than six connections with its neighboring provinces. Each time where a province had borders with seven or more other provinces, we suppressed extra connections, either on geographical grounds (major obstacles such as mountains, escarpments, lakes…) or by redrawing it slightly to make the absence of connection “visually acceptable”. After some jokes among the team, this rule became known in our team as the Holy Rule. Nevertheless, this rule admits arbitrary exceptions for gameplay reasons. For instance to ensure fluidity in the Belgian front, Lille has seven connections instead of six.

The Holy Rule can be summed up in two articles:

  1. A province shall not have more than six connections with other provinces;
  2. If it proves impossible to comply with article 1 without breaking all you have done previously, skip article 1.

Third, we were asked to put emphasis on 1914-1945 era. This means that whenever eras borders would conflict, borders from the world wars era would prevail. It also means that some areas would have more attention than others, so you’ll find far more provinces in North Africa than in Sub-Saharan areas. This point has never been fully consensual in our team and has evolved along the overall concept of the game, but combined with the other two specifications it gives the map its current look. Map design is now frozen until release (to ensure a proper game balance and the implementation of other features), but this doesn’t mean that it won't change in the future.

All combined, these three major specifications brought us on the verge of insanity more than once, especially when you compare them with our methodology and our desire to achieve the best possible map in terms of geography, history and realism. At one point, I even felt schizophrenic, but now, we do feel better.


So what's new?

Now let us have a look at the things you can see.

Our map originally started as the E3 map, as many of you already realized from the screen-shots. But as beautiful as the E3 map was, it soon became clear that it had severe weaknesses and that was not exactly what we had in mind for our own game.
The biggest was that it was of course limited to 2607 provinces, which were just not enough. :)
Another one was that it took no account of what became the so-called "Holy rule" of map design.
Others were not real weaknesses but different design choices.


  • Optical changes

We decided to switch back to English names for all provinces in order to keep things as user-friendly as possible for the majority of players.
We switched to a new font, Calluna, that is a lot clearer and better to read on higher zoom levels.
We also switched back to a dotted border concept which really brightened up the whole map.


  • General concepts

We obviously kept the general guidelines of E3 to try to get as close as possible to historical borders when setting up provinces.
We removed mini-provinces that were too small to host counters, unless they were of key importance during the World Wars.


  • Optical gimmicks

Every province can now have its own illustration. We can add unique capital icons for each province. We also no longer use the HOI2 beaches icons, as they didn't really fit on a map that uses realistic coastlines and we instead included a new small icon.


  • Things you don't see at first glance

The terrain types and resource distribution is based on historical data and is a big change compared to HOI2. You will be pretty surprised and curse a lot at first when your old strategies lead you in a swamp or forest that wasn't there before.
Of course, the climate zones are as close to the real climate zones as we could get as well.
We also tried to adapt the design of the map to pay tribute to little details like the Trans-siberian Railroad or the Burma Road.


  • The things you don't see at all

Let us start first with the obvious, all limits are gone.
There is no limits on province number. Well, to be really honest the current limit is set to 10000, but if you can come up with a map featuring more then 10000 provinces, I will get you a patch with a higher limit the next day. :p
There are no limits on connections.


  • Gimmicks for modders

Everybody knows we love modders. :) Thus we have added extensive map related debug logs with warnings for misplaced map icons (grouped by icon), possible wrong climate zones, missing sea province definition in the province.csv file and suggestions for which sea province would be the best choices. There are also warnings for wrong or not ideal sea province definition in the province.csv and suggestions which sea province would be the best choices, as well as logs about resource/IC distribution by province or for whole countries.
Modders will also find analysis of connections per province in different variations (depending on what you are doing, you might prefer one presentation or the other, this is mostly interesting in regard of the Holy Rule that we introduced above).
And finally, analysis of distance between provinces are also available (I will explain in the next paragraph what this is about).


  • A new heart

Here is the first of the really big new features to be revealed, and I am pretty excited about it. :eek:
HOI2 distance calculation was based on pixel coordinates defined in the province.csv file (the amount of pixels between one airbase coordinate and another to be exact).

The whole thing started like this.
One of the biggest problem with HOI2 maps was the size of the oceans.
It was a bit of a compromise, according to the range calculator for the game, the world was 10,000 km in circumference. While that might be fine per se, it created other (and worse) problems considering that large amounts of the Pacific have been shrunk.
It could therefore never be possible to really fix the naval combat system unless we had more reasonable ocean cartography. If the map had to be expanded, how about doing something to increase the relative size of the oceans, so that the Mediterranean is not half the size of the Atlantic?

What have we done about this?

In Darkest Hour, we replaced the old HOI2 system with a new distance calculation which is based on real geographic coordinates (the old engine can of course still be activated in the misc.txt file, as most new features, it is optional to use the new calculation).

Most of you are now asking: "Why should I care? What is so exciting about that?" :confused:

Well let us think about it.
You can now see real distances between one province and another, the distance between Berlin and Moscow is as far in the game as it is in reality.
While this is cool in itself, it becomes even cooler when it comes to sea provinces. With HOI2, all you got was wrong distances based on the way the map was morphed to display a 3D earth on a 2D map.
When you used to have, for instance, a giant Mediterranean sea, and a tiny Pacific ocean compared to reality, the game now features real distances.

The whole thing gets especially important when it comes to battle-scenarios, which use new and more detailed maps (that we will show you later ;)).
As in HOI2, all distances were based on pixel coordinates you ended up with provinces that were hundreds of kilometers far away in-game, although they were maybe 20kms away from each other, only because you had increased the scale of the map.
Even with massive workarounds and modified units speeds you couldn't get it completely right.

Still not excited? :(

Alright, what does it mean for the casual player who doesn't care about realistic distances? And why should you as a map modder go through the hassle of creating coordinate tables?

The simple answer is performance.

The following table shows the time that it takes with Darkest Hour compared to Hearts of Iron II to perform distance calculation (more than one calculation taken into account to get a nice average) :

Code:
HOI2  DH   
188   94    
187   109
203   109   
203   94     
219   94     
218   94    
218   109       
203   110     
203   110         
1842  923      Total
205   103      Average

That is a 45-50% reduction in calculation time for each distance check. The artificial intelligence does multiple of those for each division every tick to decide about unit movements, and even more for air units.
Of course a lot more things influence game performance, but this one is a good chunk and led to a noticeable performance boost.

The best thing about this improvement is that it actually has a higher impact when the game progresses as the amount of units increases and war breaks out. The more distance calculations the engine does, the higher the performance gain compared to vanilla.
Same goes for maps that have more provinces.

We do regular tests to check performance, the old Doomsday (fictional WW3) scenario shows the impact pretty well.
We compared the average cycle time of different game versions between 1936 (the world at peace) and the Doomsday scenario with fighting all over the place.

Switching to the new distance calculations increased game speed by up to 10-15% in scenarios with heavy fighting compared to the same Darkest Hour version that used the old calculation model. :eek:


Code:
    Game       1936    DD          1936/DD %
    Arm 1.2    25'       72'          34.7 %
    Arm 1.3b   25'       59'          42.4 %
    DH 0.32    24'       38'          63.2 %
    DH 0.36    24'       36'          66.7%
    DH current 24'      30-32'      80-75% (in 3 tests) This with the new distance calculation


In Armageddon 1.2, game speed in DD scenario was ~1/3 of the speed in 1936.
In Armageddon 1.3b it is increased by ~8 points to 42%.
In our current DH version, it is at 75-80%, or only 20-25% slower then in 1936


We of course included the necessary coordinate tables for our own map, and the old HOI2 map, so that all mods that are based on HOI2 can benefit from the new system.
I will not say that it is not intensive work to set up those coordinate tables, because it is! But it is definitely worth it to do so for your own mod maps, and once you get in a rhythm, it is not that bad.
We will support mods conversions from HOI2 to DH anyway.

You can get the coordinates straight out of Google Earth, and with the right settings and tools to copy the coordinates, it gets pretty fast (at least compared to the time involved to actually draw a new map).



And that's it for today guys, I hope you enjoyed it.
Of course this thread is open to topic related questions.
See you next Monday for a new development diary. :)



Björn 'Nathan' Winkler,

Darkest Hour Developer
- Map Implementation



P.S.:

As promised screenshots of the USA
screensave2.png


screensave3.png


screensave4x.png


And as an extra gimmick one of our ID maps of Europe 1936. (this is a big one)
http://img709.imageshack.us/img709/5199/europe1936.jpg
 
Last edited by a moderator:
  • 1Like
Reactions:
Looks nice so far.

The state of Kentucky only has 2 provinces if Im looking right, I would have thought it deserved 1 or 2 more than that IMHO.

And thinking ahead to all those alternate history/CSA enthusiasts (myself included), having an extra province or 2 (or edit the borders) between Richmond, Virginia and the border with Maryland/Washington DC would probably be helpful too.

Nevertheless, good work.

Iron Cross seems to have gone much more province heavy on the North American continent, was speed issues then main reason you havent included as many? (And again, as an alt-history fan, more is better for me, but thats just me... :D )

EDIT: I made a reccomendation in another thread about multiple urban levels to represent different places better. What Ive alwawys wanted to see is urban provinces get their due. The UK in your map for example, cant really take this into account given the relatively few provinces it has. Hope this can be looked into.
 
Last edited:
The performance issue is awesome! Very promising, really.

Map is very cute. Just an observation about it: the Spanish 451 province is called "Burgos", not "Borgos" ;)
 
I see you accidentally marked Åland with Swedish blue. But I like the increased detail for Finland. Maybe an extra province in southwestern Sortavala (not bordering the Soviet Union or Joensuu but bordering Mikkeli and Viipuri) to represent a historical encirclement of Soviet troops there in the Winter War? The Soviets got trapped there north of Ladoga when trying to attack the Mannerheim line further south from the rear.

The small island of Bornholm in the southern Baltic is supposed to be Danish, not Swedish.

Province 1010 in Palestine east Gaza doesn't seem to have a name.
 
Last edited:
Iron Cross seems to have gone much more province heavy on the North American continent, was speed issues then main reason you havent included as many? (And again, as an alt-history fan, more is better for me, but thats just me... :D )

Only to a small degree, the new engine handles Maps with more provinces fine, and even with the old calculations it causes no critical performance drops.

We simply started adding provinces where we needed them, and removed others that we felt were not benficial for the gameflow.
And in the end we actually felt comfortable with an amount of around 3000 provinces for our grand campaings.

Most discussions in the community that call for higher province density want them for specific scenarios, like the in this thread mentioned Winter War.
And those actually deserve a higher level of detail then we could add to the World map. But that something we might talk about later. ;)
 
That distance thing sounds awesome.

I noticed in Egypt there's a super long skinny province along the Nile, is that what you did with the Burma road and the Kokoda trail?

"Tombouctou" in Africa should be switched to "Timbuktu."
 
A few issues with the Europa map;

Denmark:
Arhus - should be Aarhus since you don't use the correct Århus
Abenra - should be Aabenraa since you don't use "Å"

Bornholm south of Malmø is Danish, not Swedish

Sweden:
Malmo should be Malmoe (ö/ø -> oe)

Will there be something useful in all provinces? I don't like empty provinces.
 
A few issues with the Europa map;

Denmark:
Arhus - should be Aarhus since you don't use the correct Århus
Abenra - should be Aabenraa since you don't use "Å"

Bornholm south of Malmø is Danish, not Swedish

Sweden:
Malmo should be Malmoe (ö/ø -> oe)

Will there be something useful in all provinces? I don't like empty provinces.

I would indeed prefer some decimal IC, resources and manpower in all provinces to having them empty. Is there any notable performance hit from that? I'd say I prefer having å replaced with plain a and ö with o instead of the ridiculous aa or oe (they look completely wrong for Finnish placenames at least, as they violate Finnish spelling/pronouncement rules, ruling that spelling and pronouncement should always be the same, in ethnically Finnish words).

EDIT: Then again the Finnish names are already fine. *facepalm*
 
Last edited:
Nice. Personally I would split the Swedish province Linköping in two and create Strängnäs (Since it was bomben in WW2 and it had this

1. Being Strängnäs or just Södermanland
2. Being Linköping or Östergötland.

fdh.png
 
Just wanted to say name corrections are highly appreciated, most are already fixed in the latest version, but there are some new ones that were still wrong. :)

I see a typo on Colmar (Colma).
 
Great DD. Especially the real distances. Something that PI hasn't even done with HOI3.

I don't see the Spanish enclave of Ifni though. Spanish Morocco (Tetuan and Nador) is French for some reason. Tanger might be a more appropriate name for Tetuan if it's not a small seperate province.

The sea looks a bit empty though. How about adding a colored depth map like in this screenie of Mexbuild's map mod. Non-functional but it would really give the map look.

http://www.abload.de/image.php?img=mapseadeppnessamkb.jpg
 
good map, ewphoenix123,

just the location of Cologne and D'dorf are wrong. Düsseldorf is located north west of cologne, not in the east.

as for the english names, does that mean that Munster instead of Münster is WAD? - just because at least the english wiki meantions Münster and Munster seems to be an irish province.

keep it up
 
There´s also a city called Munster in Germany between Hamburg and Hannover

ok now back to topic :D

As mentioned before, most of the bugs are corrected but don´t stop reporting new ones ;)