darkest hour development diaries archive

103
Darkest Hour's Development Diaries Index DD1: Introduction to Darkest Hour......................................................................................................2 DD2: World Map.................................................................................................................................. 6 DD3: Spying System.......................................................................................................................... 13 DD4: Implementing Modifications.................................................................................................... 19 DD5: Claims.......................................................................................................................................23 DD6: It's your decision....................................................................................................................... 26 DD7: Missions, Interface and Leader Traits.......................................................................................29 DD8: Improved Interface................................................................................................................... 34 DD9: Questions & Answers Session.................................................................................................. 38 DD10: Improved Interface part 2....................................................................................................... 42 DD11: Modding with Darkest Hour part 1.........................................................................................46 Addendum to DD 11...................................................................................................................... 50 DD12: Modding with Darkest Hour part 2.........................................................................................52 DD13: Modding with Darkest Hour part 3.........................................................................................54 DD14: Modding with Darkest Hour Part 4........................................................................................ 58 DD15: Questions & Answers Session part 2......................................................................................62 DD16: Trade & Stockpile systems..................................................................................................... 66 DD17: Tech Tree Part 1...................................................................................................................... 71 DD18: Tech Tree Part 2...................................................................................................................... 76 DD19: Generic Decisions...................................................................................................................81 DD20: Production screen & AI.......................................................................................................... 84 DD21: Mobilization system............................................................................................................... 88 DD22: Countries Release and Rebel Systems....................................................................................94 DD23: New Map 2.0 and Improved Logs.......................................................................................... 98

Upload: im404

Post on 26-Dec-2014

360 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: Darkest Hour Development Diaries Archive

Darkest Hour's Development Diaries

IndexDD1: Introduction to Darkest Hour......................................................................................................2DD2: World Map..................................................................................................................................6DD3: Spying System..........................................................................................................................13DD4: Implementing Modifications....................................................................................................19DD5: Claims.......................................................................................................................................23DD6: It's your decision.......................................................................................................................26DD7: Missions, Interface and Leader Traits.......................................................................................29DD8: Improved Interface...................................................................................................................34DD9: Questions & Answers Session..................................................................................................38DD10: Improved Interface part 2.......................................................................................................42DD11: Modding with Darkest Hour part 1.........................................................................................46

Addendum to DD 11......................................................................................................................50DD12: Modding with Darkest Hour part 2.........................................................................................52DD13: Modding with Darkest Hour part 3.........................................................................................54DD14: Modding with Darkest Hour Part 4........................................................................................58DD15: Questions & Answers Session part 2......................................................................................62DD16: Trade & Stockpile systems.....................................................................................................66DD17: Tech Tree Part 1......................................................................................................................71DD18: Tech Tree Part 2......................................................................................................................76DD19: Generic Decisions...................................................................................................................81DD20: Production screen & AI..........................................................................................................84DD21: Mobilization system...............................................................................................................88DD22: Countries Release and Rebel Systems....................................................................................94DD23: New Map 2.0 and Improved Logs..........................................................................................98

Page 2: Darkest Hour Development Diaries Archive

DD1: Introduction to Darkest HourWe know you have been all eager to grab fresh information about the game. To be very honest with you, we initially planned to release the first development diary only next week. But you were very insisting, so let's start from the beginning : what is Darkest Hour, and who the developers are.

Darkest Hour Core (no relation to the mod), in its early stages still know as "The Project", can be viewed as a continuation of the 1.3 patch for Armageddon because it is based on it and is nearly 100% compatible with all existing 1.3 mods, and offers for the first time full moddir support.What started as a small project to fix the remaining hard-coded bugs, after the last beta patch became much more over the last years.Starting with initial bug fixes, a huge amount of code optimization to increase performance quickly followed. Hard-coded modifiers were then moved to moddable files, Hard-coded limitations removed, and then new features added.Over the weeks, it became pretty obvious that we were no longer aiming for a patch to fix the last bugs, but for a new platform as standard for the HOI community. One that would offer modders what they have been asking for over the years and to keep our beloved mods alive and enjoyable for many years to come. For it has indeed been developed by fans and modders.

By fans, for the fans

MartinBG, who was the Lead programmer of HOI2 Armageddon Patch Project, and Gormadoc, Lead programmer on the Community Database Cleanup Project, started the whole thing more then two years ago.Fernando Torres developer of World in Flames mod, who has been our most vocal Developer in the forum until now, joined up shortly after, initially aiming to create a new WIF mod for the new improved engine. But things went a bit different, and out of the idea to create an independent mod emerged Darkest Hour Full, the first "mod" for Darkest Hour using the full potential of the new code right from scratch.

Over time even more people joined the team, some as bug testers, others as active contributors.

As for myself, I actually joined the DH team pretty late in the progress, only 6 months ago, and I can't really offer any real recognition value for you guys as I have been not very active in the Paradox community and basically only enjoyed playing the games. But I think you will not hold that against me for long.

What do you guys do?

Although the borders are a bit blurry, as all of us work on the database from time to time (add the odd event, fix one thing or another), let me try to give you an idea of who is in charge in our development team:

MartinBG - Coding

Fernando Torres - AI and DB maintenance

Gormadoc - Tech tree

Ewphoenix123 - Map implementation, map related database maintenance

Page 3: Darkest Hour Development Diaries Archive

You mentioned contributors?

I think we now have more than 30 people who are helping out to a different degree, and listing all of them would just be too much for this diary.This here is just a (not so) short list for a start with those who contributed the most over the last months in no specific order:

Mumia allowed as to use the E3 map as a base for our new map, and helped with most of the initial concepts.

Eginhard 38 from WIF did an incredible job when he finalized the designs for the new map, always standing on the edge balancing AI capabilities and geographic reality.

Arturius from the 1914 mod, well you can think for yourself where he contributes.

Bizon from the NWO mod made our game launcher, helped out with translations and the implementation of new minors.

^AC^ from Kaiserreich helped out adapting vanilla scenarios to the new map and translations.

Jaegerfeld of the canceled DMP Ragnaroek - Projekt 36 is developing the AI for our 1914 scenarios

Rhysaxiel from WIF is working on event chains for 1914 and coordinating the pre-WW2 scenarios.

tedescoo from Turning Point and BIP helped out with translations and as a tester.

Jrhindo from the Yugoslavian Wars helped with translations and ideas.

The famous sonofliberty has outdone himself in the last weeks as one of our main testers, and offered a lot input in many design aspects.

Inner Circle from GK Multilevel Sprite Pack and GK Atmospherical Improvement Mod is working on our interface graphics.

Cardus helped with new OOB for Italy and Abyssinia, making the Ethiopian war much more interesting..

TeutonburgerW from the Minor Graphics Mod has contributed ideas for new minors a bit of modding, graphics, beta-testing.

Miihkali from Anatolian Wars Mod has done some scenario and event design, and some graphical help. Ideas, suggestions and little historical research.

Cueball from EIR added floating event ideas, the first AI fixes for the new map, ideas to implement new minors, and help with initial map concepts.

WilhelmII from Gamerkollektiv helped with some graphics in addition to the obligatory beta-testing.

thewookie1 added the first concept for the inclusion of the Transsibirian Railroad.

Page 4: Darkest Hour Development Diaries Archive

And many more that haven't been that active in the last months, like Koenig from Mod33, 49h from WIF, GAGA Extreme from the GAGA Tech Mod, and a lot others I simply forgot... I elaborate further on their contributions in future development diaries.

This should give you a glimpse of who has been involved in this, how many familiar names to find, and how many of those are still actively developing mods out there. Thus you can draw your own conclusions about what you can expect for the future. Expect for instance some mods to be available for DH from day one..

Here are now a few words from our contributors.

Originally Posted by TeutonburgerW Being a long time HOI player, there were several things I've always dreamed of if they would come true but I thought the engine was too old and it was better to adapt and start playing HOI3. That was, until Rayan (aka Fernando Torres) invited me to contribute to what is now called Darkest Hour. Most of the things I've ever wanted (a smarter AI, a better map, automated stuff and higher moddability plus a whole lot more) was there. I'm very pleased that the DH development team listened so much on us "modders" as well as long time players during the development phase; what we enjoyed, what we didn't enjoy and, of course what we wanted to make DH the best WW simulation out there!Originally Posted by Inner Circle When I was invited to the Team, i knew only little, until i got some screenshots from a Beta Build. I was really impressed and eventually agreed to help them.My contributions are mostly graphics, beta testing and recruiting new contributors. Every new Beta is better than the last one and for the first time i have the feeling to play the HoI game I always wanted...Originally Posted by AC Darkest Hour is a dream come true for me. A game made by fans for the fans... or even better, made by modders for the modders. We have assembled such a good team, that worked together for months (years, some could say) with one objective in mind: to create a game enjoyable by the fans and loved by the modders! Being a part of this is an honor, even if for now my contributions have been limited to beta testing, suggestions and translation.

And maybe a word from Mumia, one of our map geeks (he usually does not communicate with us except to post with strange words and show awesome maps he just drawn but maybe he will make an exception for you..)

Originally Posted by mumia 'Me no spiking Inglese'.Right.(Just kidding, I love you buddy )

Development philosophy

Our philosophy is to stay true to the community and provide the most fun for players as well as the best platform for modders.

We think it first starts with being honest with the fans. And there is one thing that has been claimed around that we wanted to correct. The game timeline is indeed set to span from 1914 to 1964, which means there will be small and large scenarios available throughout this period. What it does not mean is that there would be a giant scenario allowing to play straight from 1914 to 1964.

Page 5: Darkest Hour Development Diaries Archive

It is obviously unrealistic to think that a game like Darkest Hour could cover all (un)historical possibilities for such long period of time. (yet)

On the other hand, we focused on a few unhistorical and yet plausible outcomes, be it during or after the First war or during the Second. We shall not go into details for now but you can rest assured that Darkest Hour rejects the sandbox approach.

The other thing is, We are here to stay, even after two years we are still far from reaching the limits of the Europa engine, and we have all intentions to keep developing Darkest Hour further for a long time to come.

We are still looking for new contributors and testers, as this is basically a project from the community for the community. We will be looking forward to helping modders prepare their contribution even before the release date (we are aiming for November release). Feel free to contact us at darkest.hour.team(at)gmail(dot)com.We are also going to answer a few general questions later today. But please don't expect too much details yet, as there is still some time left and we need to keep you curious!Thus, in-depth explanations are left for the following development diaries.

Page 6: Darkest Hour Development Diaries Archive

DD2: World MapIt 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?

Page 7: Darkest Hour Development Diaries Archive

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. 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

Page 8: Darkest Hour Development Diaries Archive

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. 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?"

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) :HOI2 DH 188 94

Page 9: Darkest Hour Development Diaries Archive

187 109203 109 203 94 219 94 218 94 218 109 203 110 203 110 1842 923 Total205 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.

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).

Björn 'Nathan' Winkler,

Darkest Hour Developer

Page 10: Darkest Hour Development Diaries Archive

- Map Implementation

Page 11: Darkest Hour Development Diaries Archive
Page 12: Darkest Hour Development Diaries Archive
Page 13: Darkest Hour Development Diaries Archive

DD3: Spying System‘Introduction: Some history’

Spying in DD/Arma 1.2 had many bugs: missions that do not work for the AI - including counter-intelligence, broken AI mission selection code, and incorrect messages to name just few. Once we fixed all known bugs in the code and ran some tests using advanced logging (logger is part of DH) we found that in a game AI countries do tens of thousands send and kill spy missions outperforming any player because of the micromanagement involved in the spying and very few real missions (about 10%). It was clear for us that the old system needed to be changed and after some brainstorming and few tries Martin and Chris came up with the spy system used in Arma 1.3.

Its main features are:- Fixed spying AI - it can do any mission- Send/kill spies missions removed and replaced with Spy network levels (0..20)- increased game speed - all modifiers exported to spy_cost.txt and AI files- there are more here that are out of my mind after 2 years

These changes while to drastic for a patch and not welcomed by all modders at the time paved the road to the auto-spying system we implemented in DH.

Changes:- merged AI and player auto-spying code- cleared spy_cost.txt file and moved old and new spying modifiers to a new section in misc.txt

‘All warfare if based on deception’

That quote from Sun Tzu enlightens the prominent role played by intelligence operations in times of war. But while popular myths have been created around a few people like Mata Hari or Joseph Sorge, intelligence and counter-intelligence operations have truly been of a great importance in the events of two World Wars witnessed by the XXth century. Darkest Hour therefore intends to put a certain emphasis on this matter.

Darkest Hour spying system addresses two main issues which are the realism of the intelligence operations and their planning in the long-run as a Head of State.The first thing that you need to know is that there two modes: manual and semi-automatic intelligence. While the manual mode has many similarities with Hearts of Iron II spying system, the semi-automatic is much more interesting. There you can allocate a certain part of the national income to intelligence operations. There are also others factors that you can play with such as spy activity or the minimum level of infiltration required prior to any foreign operation.

Furthermore, as the Head of your State, you can assign generic or specific priorities to your intelligence services. Playing the United Kingdom, you might for instance be willing to grab more informations about Nazi Germany. Specific country priorities can therefore be set in that regard.

But there are also missions specific priorities which allow you tell your intelligence services what specific mission to perform (either globally or in a certain country). You will for instance be able to perform only industry sabotage in one country or couple it with industrial espionage, provided that

Page 14: Darkest Hour Development Diaries Archive

you need two times more sabotage missions.

That way, you have a relative control over the operations led by your intelligence agency. You are also encouraged to plan your spying strategy in the long run and check the reports on a regular basis when you used to be overwhelmed with micro management in Hearts of Iron II (where you had to send every spy and perform every operation manually). Hence Darkest Hour spying system is not a clicks contest but instead, a panel that lets you plan your policy in the long run. This was also a matter of realism because as a Head of State, you obviously have a certain level of involvement, which sending all spies one by one should be excluded from.

Automation:- Can be enabled or disabled- Even when enable players still can do any mission to any country manually if they want- auto-increase of spy levels to manually set Max level (0..20)- set spy money threshold (use money above XXX)- Min. spy level threshold before try to do any foreign missions (0..20)- Spy activity- Min chances for every spy mission - do no try a mission if chances are less- Can add/remove countries from spying list- Can set country priority for each country in the list- Can set missions priority for each country in the list- Can apply same priorities to all countries at once- Can clear countries list at once

Spy reports, added:- Transports/Escorts- Resources- Submarines, TPs

Moddability

We are also looking forward to making Darkest Hour as mod friendly as possible.Thus, many parameters will be subject to changes in mods, such as:

AI priorities ################################### # Spying ################################### spyprefs = { percentage_on_spies = 0.2 percentage_foreign_mission = 0.6

# Used for Intell efficiency and for setting minimum chance to succeed for the AI to do that particular type of mission spyprefsdata = { NumberOfSpies = 10 min_number_of_spies = 3 steal_blueprint = 10 minister_assassination = 5 smear_campaign = 10 coup = 3 sabotage_industry = 10 nuclear_sabotage = 5

Page 15: Darkest Hour Development Diaries Archive

found_partisans = 10 massmedia = 10 disrupt_techteam = 10 country = CHC } spyprefsdata = { country_priorities = 4 steal_blueprint = 10 minister_assassination = 1 smear_campaign = 3 coup = 0 sabotage_industry = 5 nuclear_sabotage = 0 found_partisans = 2 massmedia = 1 disrupt_techteam = 5 country = CHI } spyprefsdata = { country_priorities = 6 steal_blueprint = 10 minister_assassination = 1 smear_campaign = 3 coup = 0 sabotage_industry = 5 nuclear_sabotage = 0 found_partisans = 2 massmedia = 1 disrupt_techteam = 5 country = JAP } }

General parameters intelligence = { # Days between spy missions in a country. Do not use fractions 20 #8 # Days between increase intelligence levels. Do not use fractions 180 # Chance to detect the initiator of a spy mission; Values = [0 - 100]; 0 =

never detected, Do not use fractions 20 #50 # Relationships hit for detected missions 5 #10 # Distance modifier: -1000 = No distance modifier; else: Higher value =

Distance has smaller effect = Higher Chances 20 # Distance modifier for neighbours; Values = [0.0 - 1.0]; 0.0 = No neighbour

distance bonus. 0.25 # Spy lvl bonus on Distance modifier: 0 = No bonus from Spy lvl's; else:

Higher value = Higher bonus from spy lvl = Higher Chances. 2 # Distance modifier for Spy lvl's above 10: 0 = all levels use same distance

bonus; else: X = bonus for levels 11-20th 30 # Spy information accuracy modifier. Values = [-10 - 10]; 10 = Full info 0 # IC modifier on Cost; 0: Cost = base cost; 1: cost = base cost * base IC in

target; 2 or more: cost = base cost * ( 1 + base IC in target / this ) 1

Page 16: Darkest Hour Development Diaries Archive

# Min IC on cost modifier; If base IC in target < this use this, else use base IC

30 # Max IC on cost modifier; If base IC in target > this use this, else use

base IC 80 # Extra Basic Daily maintenance cost for Spy lvl's above 10th; 0 = no extra

cost; X = extra cost for levels 11-20th 0.5 # Basic Cost for Increasing Spy lvl's above 10th; 0 = Normal Basic cost;

else: Basic cost for each lvl = X 500 # Show 3rd country spy reports: 0 = no reports; 1 = only detected; 2 =

detected + all successful; 3 = all reports 1 # percentage_on_spies to money modifier 100.0 }

And mission basic costs and chances intelligence = {

# _HOID_SPY_STEAL_TECH_, 0.8 # _HOID_SPY_MINISTER_ASSASSINATION_, 2.0 # _HOID_SPY_SMEAR_CAMPAIGN_, 1.6 # _HOID_SPY_COUP_, 12.0 # _HOID_SPY_SABOTAGE_INDUSTRY_, 0.8 # _HOID_SPY_NUCLEAR_SABOTAGE_, 2.0 # _HOID_SPY_FOUND_PARTISANS_, 0.8 # _HOID_SPY_MASSMEDIA_, 1.2 # _HOID_SPY_DISRUPT_TECHTEAM_, 0.8 # -Base Cost for Increasing Spy lvl. 0.5 # -Base Cost for decreasing Spy lvl. 0 # -Base Daily maintenance cost per Spy lvl for 1-10th lvl. 11-20th levels may cost more. 0.001

# _HOID_SPY_STEAL_TECH_CHANCE, 35 # _HOID_SPY_MINISTER_ASSASSINATION_CHANCE, 10 # _HOID_SPY_SMEAR_CAMPAIGN_CHANCE, 35 # _HOID_SPY_COUP_CHANCE, 2 # _HOID_SPY_SABOTAGE_INDUSTRY_CHANCE, 35 # _HOID_SPY_NUCLEAR_SABOTAGE_CHANCE, 8 # _HOID_SPY_FOUND_PARTISANS_CHANCE,

Page 17: Darkest Hour Development Diaries Archive

50 # _HOID_SPY_MASSMEDIA_CHANCE, 40 # _HOID_SPY_DISRUPT_TECHTEAM_CHANCE, 30 # NOT USED 100 # NOT USED 100 # -Dissent modifier on base coup chance: 0 = No dissent modifier; else: Higher value = Higher dissent needed in target country. 5 }

Page 18: Darkest Hour Development Diaries Archive
Page 19: Darkest Hour Development Diaries Archive

DD4: Implementing ModificationsPlayermade Modifications

Hello again,It is monday noon, and that means it is time for another Development Diary.As you should have already seen in the last weeks, one of our main goals was to keep it extremly easy to use your favorite HOI 2 mod with Darkest Hour.

And this week I gonna talk about how this actually gonna work for you, be it as a Modder for one of the Big Projects, someone who would like to play an old mod that is nolonger developed, or just as someone who likes to modify his own game a bit.

The first thing you gonna start to love is that Darkest Hour finally offers full MODDIR support, you no longer need jsgme or individual installations for each mod you use.

You only need one Darkest Hour installation!Copy the mod you fancy in a subfolder the Mod folder.Pick the mod you like to play the next time you start the game with the launcher.

This works of course only when the mod is adapted to Darkest Hour, some bugfixes and new

Page 20: Darkest Hour Development Diaries Archive

features were not possible without modification that affect basic files, there are few things that need to be changed for a mod to start properly. Don't worry It's not much, and you don't even need real modding experience to do it yourself.

Depending on mod's complexity this could take from 1-2 minutes (Confederate Armageddon) to about 15 minutes (CORE as this mod already use moddir and some paths in its DB files have to be edited and many dummy pictures to be skipped).

In one of our latest version we included a Darkest Hour Mods Pack (located in the Modding documentation folder of your installation ) that can be used for easy Armageddon 1.3 to DH mod conversion.It contains the following files: \config\Buttons.txt \config\mods.csv \db\difficulty.csv \db\diplo_costs.txt \db\leaders.txt \db\ministers.txt \db\misc.txt \db\spy_costs.txt \db\teams.txt \gfx\interface\ill_prov_overlay.bmp \gfx\interface\map_circle.bmp \gfx\interface\plate_division.bmp \gfx\interface\tc_icons.bmp

These are the files that need to be in the new DH format in order for the game to work and are the only files that modders should worry about when porting their mods to DH.

• \config\Buttons.txt - new button definition *we changed certain interface elements for new features, and of course those need new buttons*

• \config\mods.csv - the file where all modders should put mod specific texts to ensure compatibility with further game patches. This file will never be modified by any patch.

• \db\difficulty.csv - new difficulty settings *some of our new features are influenced by the difficult settings and got their own entry here*

• \db\diplo_costs.txt - only one change here from 1.3: removed "-" sign from all costs• \db\spy_costs.txt - some changes from 1.3 as most spy system modifiers are moved to

misc.txt now. Only cost and chances are left here.• \db\misc.txt - tons of new modifiers here, but all are set to Armageddon 1.3 defaults, so you

have only to edit those values you changed for your mod for 1.3• \db\teams.txt - list of all tech team files that should be loaded by the game. These files could

be either in MODDIR or in main game folder. By default it is populated with all 1.3 file names so you just need to add your new file names and (optionally) remove those you don't see need to be loaded by your mod

• \db\leaders.txt - list of all leader files that should be loaded by the game. These files could be either in MODDIR or in main game folder. By default it is populated with all 1.3 file names so you just need to add your new file names and (optionally) remove those you don't see need to be loaded by your mod

• \db\ministers.txt - list of all minister files that should be loaded by the game. These files could be either in MODDIR or in main game folder. By default it is populated with all 1.3 file names so you just need to add your new file names and (optionally) remove those you don't see need to be loaded by your mod

• \gfx\interface\ill_prov_overlay.bmp - changed file.

Page 21: Darkest Hour Development Diaries Archive

• \gfx\interface\map_circle.bmp - changed file. • \gfx\interface\plate_division.bmp - changed file. • \gfx\interface\tc_icons.bm - changed file.

Notes:1. This pack is supposed to be Merged with the mod.2. Only files that were actually changed by the mod, which are included in this pack should actually be updated/replaced by files from the pack. The rest (except 3 - see next) can be skipped as they are identical to DH Core files already installed in the game's main folders.3. The only files that must be included into mod's folder are \db\ministers.txt, \db\leaders.txt and \db\teams.txt

Usual 1.3 Mod porting steps:

1. Create a new folder for your mod in Mods folder2. Extract all mod files into that folder preserving original game folders tree3. Using a program like WinMerge compare mod's folder with Darkest Hour Mods Pack folder and update files as required:

- Copy db\ministers.txt, \db\leaders.txt and \db\teams.txt and add any mod specific file names there- Copy and update \config\Buttons.txt, \db\difficulty.csv, \db\diplo_costs.txt, \db\misc.txt, \db\spy_costs.txt ONLY if these are changed by your mod from vanilla 1.3 values.- Copy \gfx\interface\ill_prov_overlay.bmp, \gfx\interface\map_circle.bmp, \gfx\interface\plate_division.bmp and \gfx\interface\tc_icons.bm ) ONLY if these are changed by your mod.4. Create an empty "save games" folder in your mod's scenarios folder.5. Select your mod from DH game Launcher6. Play

It really is that straight forward and easy to convert a mod to Darkest Hour, we are testing it often enough to be sure.

Some feedback on the topic from AC of the Kaiserreich team:

Well, as I said the conversion was very simple, basically because the Kaiserreich Team never messed with misc.txt and other configuration files (as far as I know). So, conversion is actually not the best word to describe this, as the process didn't involve much more then copying the files to the Mod folder.The real conversion of the Kaiserreich for DH will use the new map and all the new features offered by DH. This is a simple "adaptation" of the KR mod from Armageddon to Darkest Hour.

However, as soon as a new game starts, it is possible to see how the Mod benefitted from this adaptation. At the start of the game, a reminder tells me that I can move my political slider: very useful to avoid missing this opportunity at the beginning of each year!After unpausing the game, the performance increase is immediately noticeable and the game flows quickly without problems or CTDs. In my opinion, this is the biggest benefit for a casual player, but there is much more: the automated spying system, ... * peep* *peep* *peep* ..., the many useful tooltips (for example in the research tab), the colorscale of the unit and the pictures close to the units name, the * peep* for the air and naval missions and other smaller, simpler, but nonetheless

Page 22: Darkest Hour Development Diaries Archive

useful things.

If you want, you can add that I've been using Kaiserreich over DH since May and I've developed current version 1.2 of the KR Arma Mod using DH! This was very useful especially because thanks to the debug log we could fix many (40 maybe) wrong minister traits, some problems with leaders, mistakes in the Tech Teams (missing components) and a bunch of other. So, from a certain point of view, you could say that the current version of Kaiserreich Mod for Armageddon already benefitted from DH.

I've written about many things still undisclosed, feel free to change my words as you like. I did. *g* White & Sea as always guys.

But you can Sea even when using DH without most of its new features there are quite a lot of improvements to talk about, even if we won't talk about them yet.

Here's a list of mods that already officially announced porting to DH:

• Confederate Armageddon • Fallout's Doomsday Mod • Kaiserreich • New World Order • Whites & Reds • And let's not forget that the Iron Cross expansion for HOI2Arma and AoD will be available

for DH too!

Page 23: Darkest Hour Development Diaries Archive

DD5: ClaimsHello again, it is Monday and that means it is time for another Dev Diary. Well actually we have more for you today. As things were a bit hectic over the weekend i didn't have time to write the Diary as long as i would have liked to we will give you a small one first. And finish up later in about 3 or 4 hours with another one.

Claims

We're here today to talk about one of the new concepts introduced by Darkest Hour: Claims!What are claims? And what is the difference between claims and cores? Here are the answers to these questions!

Claims are basically used for diplomatic purposes and are useful to assert the desire of a country to own and control a province. There are no economic benefits of claiming provinces: they are counted as non-national when it comes to IC/MP/Resources or revolt risk and there will be no way to transform those claims into cores. However, claimed provinces are counted as national when it comes to diplomacy or country release. That means that a claimed province appears in the "Have claims against..." section and can be asked with the "Demand Territory" mission in the Diplomatic tab. The AI won't secede provinces it has claims on to allies/puppets even if those provinces are cores to that ally. In most cases claims will be used by players just to "redraw" the map in the way they wanted it to be after a successful war, especially in case of partition. Think about the partitioning of Greece for example: Italy, Germany and Bulgaria can claim different provinces and they won't secede them to their allies (even if those allies have cores on them).

So, how does claiming provinces work? Via the right-click menu it is possible to add and remove claims to single provinces, areas or regions. Claiming non-owned province increases belligerence and removing claims from such provinces decreases it (both values are set in misc.txt). Claimed provinces can be seen best on the Diplomacy map mode - they use lighter green than cores and also a black dot as opposed to the red one used for cores.

However, there are some limitations to avoid exploiting this new mechanism: it is not always possible to claim provinces of another country. New claims can be freely set to war enemies, but can be set to neutral countries only if policy allows that (interventionism must be high enough). Moreover claims cannot be demanded from countries that you are guaranteeing at the same time: for example Germany cannot ask for provinces from Poland if it is guaranteeing its independence!

Another new useful feature is that peace negotiations now take into account cores and claims:- Insist on Demands automatically adds all claims and cores the initiating country has to the demanded provinces list;- Beg for Peace automatically adds all claims and cores the receiving country has to the demanded provinces list;

Automatic Release of Nations

Another very interesting new feature introduced by Darkest Hour is the Automatic Release of Nations. First of all, claims are taken into account when a new nation is released and are considered like extra provinces. Moreover, Darkest Hour reviewed the automatic release of countries done by the AI, which suffered many limitations: the AI could release a country in its release = { } list only if it was a democracy, it was at peace and there were no more Axis powers. These limitations were removed and now even Germany or the Soviet Union can release countries during the war. Moreover, if it no more necessary to control all the provinces in the minimum list in revolt.txt:

Page 24: Darkest Hour Development Diaries Archive

minimum, extra and claimed provinces are all taken into account and if enough of them are already under the control of the AI nation, it will release that country.

Yeah, but what does that mean in terms of gameplay? Well, we know that after the end of WWII the Allies released West Germany and South Korea whereas the Comintern released East Germany and North Korea. But what if things went differently? What could have happened if the Allies had recovered part of Poland? Couldn't this situation lead to a Democratic Poland and a Communist Poland? Or had the Soviet Union conquered all of Germany and half of Netherlands, wouldn't they have created a East Netherlands opposed to the West Netherlands freed by the Allies? Or maybe even a North Communist Italy opposed to a South Democratic Italy!

With these new mechanism (and with new "communist" countries implemented of course) it is possible to recreate a dynamic situation after the Victory in Europe. No more bundled by fixed events, the AI will be able to release nations as soon as possible and the outcome of the war will be different every time. The Rush for Berlin will be even faster now and with greater consequences!

So, to conclude this Dev Dairy, here are the changes to the code regarding claims:- manual claims can be enabled or disabled from misc.txt (diplomacy section : Allow manual claims change in-game for players: 1 - Enabled, 0 – Disabled );

- there is a new provinces list named "claimedprovinces" available for countries which can be set in scenario (INC) files and in revolt.txt (claims = { } list);

- there are new event commands to add or remove claims: type = addclaim which = [prov id] / type = removeclaim which = [prov id];

- there is a trigger to check for claims: claims = { province = a [data = tag ] } # check if that province is claimed by TAG (or country in question if not specified);

- it is possible to set in misc.txt the increase and decrease of belligerence for adding and removing claims (does not apply for owned by enemies or claimed province via event command);

- there is a new policy modifier in policy_effects.csv that regulates claiming new provinces of neutral countries;

And here are the changes to the code regarding the release of nations:New misc.txt parameters (“ai” section):

* Use new AI release rules – all countries can release puppets even when at war. 1 – Yes, 0 – No

* Masters become master of new puppet’s puppets too. 1 – Yes, 0 –NoNew parameters for country creation (revol.txt):* claims = { PROV_ID …} – populates claimedprovinces list* min = X - allows release if at least X provinces of minimum list are

controlled by releaser country. By default (no min_prov entry or min_prov = -1) it is equal to provinces in minimum list.

* min_extra = X - allows release if at least X provinces of extra list are controlled by releaser country. By default (no min_ extra entry) it is 0.

* value = X.X (0.0 – 1.25) – used by the old release model (when no min or min_extra are defined). When “score” is above that value the country will be available for release. By default (no value) it is 0.51.

Page 25: Darkest Hour Development Diaries Archive
Page 26: Darkest Hour Development Diaries Archive

DD6: It's your decisionHello again, this time it's actually me.We promised you a big one today, and here it is even when it is a bit late.

Military theorist Carl von Clausewitz wrote: “Politics is the womb into which war develops”. State policies and ideologies indeed play a central role in the process, of going to war and how to wage it. Isn’t the Second World War often called a « war of ideologies »?

On the other hand, international relations and diplomacies never ceased to get more complex during the XIXth and XXth centuries. We always felt that the impression to lead, not only the armed forces, but a whole nation, was missing in Hearts of Iron games. We were therefore looking forward to making players actually feel they embodied a Head of State. This is one of the major philosophical design choices that has defined Darkest Hour development.

We believe it will provide an unprecedented experience for those who will get the chance to play our game.

Being a Head of State first starts with taking policy decisions.

In Darkest Hour, you will have the opportunity to dictate a decisive policy change every two years that will have in influence in the years to come, beginning with the ministers that you will appoint. We have also implemented an auto-reminder notification system that can be turned on/off that lets you know when such change is possible.

We all know characters that had a considerable influence for the history of their country.

Prime Minister Winston Churchill was often described by British war propaganda as a bulldog ready for duty and fight. Such figure is alleged to have inspired courage to the British people.Darkest Hour reproduces this through a unique minister’s personalities system that is entirely modifiable by users. Most prominent State figures have already their own personality that in turn affects their country, but there is nothing stopping you from creating indivdual personalities for each minister in the world.

Page 27: Darkest Hour Development Diaries Archive

But being a Head of State is also a matter of decisive and even sometimes impulsive policy decisions.

There are two other ways to influence the course of history from a diplomatic perspective in Darkest Hour. Historical events are one of them.We have entirely rewritten the events using our new syntax which opened up much more possibilities for ourselves and modders. There will now be tons of new diplomatic events simulating for instance the United States foreign policy, from the decision to send destroyers to the British Navy to the passing and the enforcement of the Lend-Lease Act.

There will also be situations when you will be able to take immediate decisions when certain conditions are met. We have indeed implemented a unique “Policy decisions” concept in Darkest Hour that allows players to take a specific decision when they think the time is right (provided that they match all requirements). As an example, when playing the 1936 Grand campaign as Germany, a “Reoccupation of Rhineland” decision will be available with specific requirements to be activated. As soon as the player activates the decision, a newspaper notification appears, offering him a little bit of historical background.

Lastly, the course of events has been made more dynamic.

As players now actually have an influence on when and how certain events occur, they will influence the timeline. As Germany, you can obviously lead your country to war as fast as possible. But be aware that your army or your industrial base may be left unprepared for a long conflict.

Page 28: Darkest Hour Development Diaries Archive

Of course the artificial intelligence will always try to surprise you and take decisions when you are not ready for them. For example, playing as China, the Japanese Army will not always invade your country at the same time and the same place so you can just wait for them and push them back when they come.

We truly believe that as a Grand Strategy game, Darkest Hour needed an in-depth diplomatic model. While we are still polishing it and adding new parts with every build, especially to provide even more user modifiability, this development diary should have given you another glimpse at the very basics of our philosophy and we hope you will appreciate it.

Page 29: Darkest Hour Development Diaries Archive

DD7: Missions, Interface and Leader Traits

Here we are again for our usual Monday appointment. Today, we're gonna talk about Missions, Interface and Leader Traits.

First of all, let's talk a bit about Missions: we have introduced a new interface for Air and Naval Missions.As you can see in the picture below, in the new Air Mission interface it is possible to select infinite mission time and to choose between province, area and region (for most of the missions). It is really a neat feature, as you will learn: you will be able to instruct your CAS to focus on a single province and your Naval Bombers to Attack Convoys over a great sea region. Obviously, this is always limited by the range of your aeroplanes: if you assign them to perform a mission over a whole region, they will be able to do it only in the provinces of that region that they are effectively able to reach.In the Naval Mission Interface, you can see that for some missions (like Naval Interdiction and Naval Combat Patrol) it will be possible to instruct the fleet to attack enemy convoys even if they are not in an hunting mission. This adds a touch of realism: a fleet in a Naval Interdiction mission that encounters an enemy convoy would surely fire a couple of rounds at them instead of waving their hands and passing by.

Moreover, settings for every mission are saved and restored when ordering the same mission again during the current game session (on game start are reset to mission defaults).

But this is just the beginning! We've introduced four new missions:- Planned Defense (for land units): units with Planned Defense missions will automatically retreat to the pre-selected adjacent province when under enemy attack and their remaining Str/Org is below the given threshold;- Air Scramble (for air units): Air Scramble missions are given to interceptor and fighter units; they will scramble to protect adjacent provinces from enemy planes;- Sneak Move (for naval units): Ships on a Sneak Move mission move to the target trying to avoid being detected. Because sneaking forces fleets to use longer routes, it takes more time to reach the target, but also reduces the chance to be detected by the enemy;- Naval Scramble (for naval units): Naval Scramble missions assigns your fleets to stay in home

Page 30: Darkest Hour Development Diaries Archive

port and engage any enemy ships detected in adjacent sea provinces;The new Naval Scramble mission gets really interesting when you take a look at the new map, you will notice that we added a line of coastal seaprovinces. In combination with the new distance model we introduced (see DD2 for more details) this means you can have a very nasty surprise when you move too close to hostile harbors. On the other hand, this is an effective tool to defend against amphibious landings.

Obviously the new interface is optional and can be enabled or disabled from misc.txt. Moreover, all the modifier for mission (new and old alike) are now exported to misc.txt and be tweaked as you please! As always, we've struggled and succeeded not only in improving the game, but also in making it as moddable as possible, so that you can have full control and modify it as it pleases you. We're looking forward to seeing the new mods that the community will create for Darkest Hour! Don't disappoint us!

Another useful addition is the Leader Traits filter:

As you can see in the picture above, it is possible to filter the leaders by trait and by rank (the four checkboxes next to "Available Replacements"). No more wasted time looking for a specific leader, you can find a Field Marshal with Panzer Leader traits with only two clicks!Please note also that latest filter settings used for each branch (army/air/navy) are saved and restored in the current game session too.

To close this Development Diary, here are the mission modifiers from misc.txt!

# Convoy interception by naval units on Interdiction, Combat Patrol, Shore Bomb. and ASW missions: 0 disabled for all, 1 - optional for players only (disabled by default), 2 - optional for players (enabled by default) and enabled for AI

2 #0# Auto-return transport fleets to base on Amphibious assault and Sea

transport missions (players only): 0 - enabled, 1 - enabled by

Page 31: Darkest Hour Development Diaries Archive

default, optional, 2 - disabled by default, optional1 #0# Allow single province and region targeting for air and naval units

(players only): 0 - disabled, 1 - enabled1 #0

mission = {# _MISSION_ATTACK_

1 # 0 = disabled by default, 1 = enabled by default1.0 # Starting missions efficiency. Valid values: 0.05 to 10.01.0 # Speed bonus: (Move time * This / mission_efficiency). Lower the

better# _MISSION_REBASE_

1# 0 = disabled by default, 1 = enabled by default1.0 # Starting missions efficiency. Valid values: 0.05 to 10.01.0 # Chance to be detected (Chance * This / mission_efficiency).

Lower the better. Naval only!# _MISSION_STRAT_REDEPLOY_

0# 0 = disabled by default, 1 = enabled by default0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0

# Land Missions# _MISSION_SUPPORT_ATTACK_

1# 0 = disabled by default, 1 = enabled by default1.0 # Starting missions efficiency. Valid values: 0.05 to 10.01.0 # Speed bonus: (Move time * This / mission_efficiency). Lower the

better# _MISSION_SUPPORT_DEFENSE_

1# 0 = disabled by default, 1 = enabled by default1.0 # Starting missions efficiency. Valid values: 0.05 to 10.00.5 # Speed bonus: (Move time * This / mission_efficiency). Lower the

better# _MISSION_RESERVES_

1# 0 = disabled by default, 1 = enabled by default1.0 # Starting missions efficiency. Valid values: 0.05 to 10.00.5 # Speed bonus: (Move time * This / mission_efficiency). Lower the

better# _MISSION_ANTI_PARTISAN_DUTY_

1# 0 = disabled by default, 1 = enabled by default1.0 # Starting missions efficiency. Valid values: 0.05 to 10.02.0 # Multiplier on suppresion (This * mission_efficiency)

# _MISSION_PLANNED_DEFENSE_1# 0 = disabled by default, 1 = enabled by default1.0 # Starting missions efficiency. Valid values: 0.05 to 10.0

# Air Missions# _MISSION_AIR_SUPERIORITY_

1# 0 = disabled by default, 1 = enabled by default0.5 # Starting missions efficiency. Valid values: 0.05 to 10.00.0 # Modifier on detection ( This * mission_efficiency ). Higher it

is, more often incoming enemy planes will be detected2.0 # Min. Air attack for at least one plane in the wing required for

this mission to be available# _MISSION_GROUND_ATTACK_

0# 0 = disabled by default, 1 = enabled by default0.5 # Starting missions efficiency. Valid values: 0.05 to 10.00.0 # Air vs. Land - Org dmg - Increasing this will increase ORG dmg

land units takes from Air unit on this mission1.0 # Air vs. Land - Str dmg - Increasing this will increase STR dmg

land units takes from Air unit on this mission# _MISSION_INTERDICTION_

0# 0 = disabled by default, 1 = enabled by default0.5 # Starting missions efficiency. Valid values: 0.05 to 10.01.0 # Air vs. Land - Org dmg - Increasing this will increase ORG dmg

Page 32: Darkest Hour Development Diaries Archive

land units takes from Air unit on this mission0.0 # Air vs. Land - Str dmg - Increasing this will increase STR dmg

land units takes from Air unit on this mission# _MISSION_STRATEGIC_BOMBARDMENT_

0# 0 = disabled by default, 1 = enabled by default0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0

# _MISSION_LOGISTICAL_STRIKE_0# 0 = disabled by default, 1 = enabled by default0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0

# _MISSION_RUNWAY_CRATERING_0# 0 = disabled by default, 1 = enabled by default0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0

# _MISSION_INSTALLATION_STRIKE_0# 0 = disabled by default, 1 = enabled by default0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0

# _MISSION_NAVAL_STRIKE_0# 0 = disabled by default, 1 = enabled by default0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0

# _MISSION_PORT_STRIKE_0# 0 = disabled by default, 1 = enabled by default0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0

# _MISSION_CONVOY_AIR_RAIDING_0# 0 = disabled by default, 1 = enabled by default0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0

# _MISSION_AIR_SUPPLY_0# 0 = disabled by default, 1 = enabled by default0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0

# _MISSION_AIRBORNE_ASSAULT_0# 0 = disabled by default, 1 = enabled by default0.25 # Starting missions efficiency. Valid values: 0.05 to 10.0

# _MISSION_NUKE_0# 0 = disabled by default, 1 = enabled by default1.0 # Starting missions efficiency. Valid values: 0.05 to 10.0

# _MISSION_AIR_SCRAMBLE_0# 0 = disabled by default, 1 = enabled by default0.5 # Starting missions efficiency. Valid values: 0.05 to 10.00.0 # Modifier on detection ( This * mission_efficiency ). Higher it

is, more often incoming enemy planes will be detected2.0 # Min. Air attack for at least one plane in the wing required for

this mission to be available# Naval Missions# _MISSION_CONVOY_RAIDING_

0# 0 = disabled by default, 1 = enabled by default0.5 # Starting missions efficiency. Valid values: 0.05 to 10.02.0 # Fleet range modifier1.0 # Chance to be detected (Chance * This / mission_efficiency).

Lower the better# _MISSION_ASW_

0# 0 = disabled by default, 1 = enabled by default0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0

# _MISSION_NAVAL_INTERDICTION_1# 0 = disabled by default, 1 = enabled by default1.0 # Starting missions efficiency. Valid values: 0.05 to 10.0

# _MISSION_SHORE_BOMBARDMENT_1# 0 = disabled by default, 1 = enabled by default1.0 # Starting missions efficiency. Valid values: 0.05 to 10.00.002 # Combat Modifier: Shore Bombardment Multiplier (Applies to the

SB value of ships for org damage)# _MISSION_AMPHIBOUS_ASSAULT_

0# 0 = disabled by default, 1 = enabled by default0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0

# _MISSION_SEA_TRANSPORT_1# 0 = disabled by default, 1 = enabled by default1.0 # Starting missions efficiency. Valid values: 0.05 to 10.0

Page 33: Darkest Hour Development Diaries Archive

3.0 # Fleet range modifier1.0 # Chance to be detected (Chance * This / mission_efficiency). Lower the better

# _MISSION_NAVAL_COMBAT_PATROL_1# 0 = disabled by default, 1 = enabled by default1.0 # Starting missions efficiency. Valid values: 0.05 to 10.0

# _MISSION_NAVAL_PORT_STRIKE_0# 0 = disabled by default, 1 = enabled by default0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0

# _MISSION_NAVAL_AIRBASE_STRIKE_0# 0 = disabled by default, 1 = enabled by default0.5 # Starting missions efficiency. Valid values: 0.05 to 10.0

# _MISSION_SNEAK_MOVE_1# 0 = disabled by default, 1 = enabled by default1.0 # Starting missions efficiency. Valid values: 0.05 to 10.00.75 # Fleet range modifier0.75 # Chance to be detected (Chance * This / mission_efficiency).

Lower the better# _MISSION_NAVAL_SCRAMBLE_

0# 0 = disabled by default, 1 = enabled by default1.0 # Starting missions efficiency. Valid values: 0.05 to 10.00.5 # Speed bonus: (Move time * This / mission_efficiency). Higher

the better}

Page 34: Darkest Hour Development Diaries Archive

DD8: Improved InterfaceHow to wage a successful war? Well, the answer to this question is not easy, as so many different factors can influence the outcome of a conflict. However, surely having a better control over the units under your command won't do you any harm. This week, we're going to talk a bit about how we improved the interface.

First of all, all units (land, air naval) can now be identified by their colour and their icon. We've expanded the colour scheme and we added icons next to the unit name for a better identification at first glance. Here's an example of the colour scheme for land units:- a land unit composed exclusively by mobile divisions has a green colour;- a land unit composed by a mix of mobile divisions and other divisions (like infantry) has a light green colour;- a land unit composed exclusively by special divisions (mountain, marines, paratroopers) has a blue colour;- a land unit composed by a mix of special divisions and other divisions (like infantry) has a light blue colour;- a land unit with at least one garrison division has a light pink colour;- an air squadron composed exclusively by interceptors has a light green colour;- an air squadron composed exclusively by tactical bombers has a pink colour;- an air squadron composed by a mix of interceptors and tactical bombers has a light pink colour;- a fleet with at least one air carrier has a blue colour;- a fleet composed exclusively of naval transports has a red colour;... and so on and so forth. There are just examples, the complete colour scheme is more complex. Initially you may think that it is a bit too complex, but you'll soon grew accustomed to it. And if you don't like the colours or the dispositions we chose, you can always mod your own! Remember, this is meant to help you have a better control over your armies!

Page 35: Darkest Hour Development Diaries Archive

Another, perhaps bigger, improvement in the interface is a small icon next to the name of the unit. As you can see from the picture below, for land units we've added specific icons for the unit type. Moreover, every unit with an HQ has a specific HQ icon and every unit with at least one engineer brigade has a very small icon. For example, "West Coast Reserve" is a unit composed exclusively by mobile divisions (icon + green colour), one of its division is an HQ (icon) and one of its division has an engineering brigade (very small icon above the icon for mobile units).

Naval fleets are identified by their most important ships: air carries, others capital ships (please notice the difference between BB and CA!), screens, submarines or transport. Moreover, a fleet with at least one naval transport always has a small icon on top to represent it. The icons for air units are simple and easy to understand, the icons are intuitive. Moreover, if a bomber unit is mixed with an interceptor/fighter/escort unit, there will be two icons, to show that the bombers are escorted (the top icon is set in this order: 1) at least one FTR -> FTR icon; 2) at least one INT -> INT icon; 3) at least one escort brigade ->Escort icon). In the screenshot above there are three units with an escort brigade attached.

Another useful tool to have a better control over your own units are tooltips. We've improved the tooltips shown over the unit and the new icons (explained above), in order to quickly obtain the information you need. Tooltips will show useful information, like the name of the leader, organization and morale of the unit and model, organization and morale of the divisions that compose the unit (similar information are displayed for air and naval units too). Moreover, for naval units the capital ships / screens ratio is displayed, together with the number of carried divisions and the total transport capacity. For transport planes, the number of carried divisions and the total transport capacity are displayed. For land units, the tooltip of the HQ icon and the tiny engineering icon will display useful information, as you can see below:

One more improvement in the interface will let you see with a quick glance which units belong to your country and which are foreign units under your control, thanks to a small icon with a flag. There is also a tiny difference between military control and expeditionary forces: Mongolian units are under military control and the Mongolian flag has a black border whereas the unit from Tannu Tuva is an expeditionary unit and the Tuvan flag has a gray border:

Page 36: Darkest Hour Development Diaries Archive

If there is not a country specific icon (like "icon_unit_MON.bmp") then a generic icon is displayed ("MC" for military control and "EF" for expeditionary forces).

A final word about nation specific model names and pictures on foreign units. In HOI2 Armageddon there is a well known bug: when a player has military control (or have expeditionary forces) from another country, those units use the model name and the picture as the same model for the player's country. We've corrected this bug: the model name and the picture will now be those of their original country!

To close this Development Diary, here is part of the code involved:

Added unique colors on units list for more unit types:I. Land:1. plate_unit_land_gar.bmp - the unit has at least one GAR division2.1 plate_unit_land_mobile_hard.bmp - the unit contains only ARM, LArm, MECH (+HQ) divisions2.2 plate_unit_land_mobile_soft.bmp - the unit contains only MOT, CAV (+HQ) divisions2.3 plate_unit_land_mobile_mixed.bmp - the unit contains only mobile divisions3. plate_unit_land_mixed.bmp - the unit contains mix of mobile and foot divisions4.1. plate_unit_land_mtn.bmp - the unit contains only MTN divisions (+HQs)4.2. plate_unit_land_mar.bmp - the unit contains only MAR divisions (+HQs)4.3. plate_unit_land_para.bmp - the unit contains only PARA divisions (+HQs)4.4. plate_unit_land_commando.bmp - the unit contains only commando divisions (+HQs)5. plate_unit_land_commando_mixed.bmp - the unit contains commando divisions mixed with other foot divisions (INF, MIL) (+HQ)6. plate_unit_land_foot.bmp - the unit contains only regular foot units (MIL, INF) (+HQ)

II. Air:1. plate_unit_air_ftr.bmp - the wing contains only FTRs2. plate_unit_air_int.bmp - the wing contains only INTs and FTRs3. plate_unit_air_tac.bmp - the wing contains only TAC bombers4. plate_unit_air_nav.bmp - the wing contains only NAV bombers5. plate_unit_air_str.bmp - the wing contains only STR bombers6. plate_unit_air_cas.bmp - the wing contains only CAS bombers7. plate_unit_air_tra.bmp - the wing contains only TRA planes8. plate_unit_air_rocket.bmp - the wing contains only rockets and fl. bombs9. plate_unit_air_mixed.bmp - all mixes

III. Naval:1.1.plate_unit_sea_ctf.bmp - fleet contains at least on CV1.2. plate_unit_sea_ctf_tp.bmp - the fleet has at least one CV and at least one TP2.1. plate_unit_sea_sag.bmp - fleet contains at least on BB, BC, CA or CVL2.2.plate_unit_sea_sag_tp.bmp - the fleet has at least one, capital and at least one TP3. plate_unit_sea_tra.bmp - fleet contains only TPs4. plate_unit_sea_sub.bmp - fleet contains only submarines5. plate_unit_sea_screen.bmp - fleet contains only screens6. plate_unit_sea_mixed.bmp - for mixed screens/TP/submarines

Added unique icons on unit plates:I. Land:1.1. icon_unit_HQ_active.bmp – only HQ in the unit1.2. icon_unit_HQ_inactive.bmp – only HQ in the unit (no or low rank leader)2.1. icon_unit_land_tank.bmp – only ARM, LArm (and HQs)2.2. icon_unit_land_combined_fast.bmp – only ARM, LArm, Mech, Mot, Cav (and HQs)

Page 37: Darkest Hour Development Diaries Archive

2.3. icon_unit_land_combined.bmp - ARM, LArm, Mech (and HQs) mixed with other divisions types3. icon_unit_land_par.bmp – at least one PARA4. icon_unit_land_mar.bmp – at least one MAR5. icon_unit_land_mtn.bmp – at least one MTN6. icon_unit_land_mot.bmp – at least one MOT7. icon_unit_land_cav.bmp – at least one CAV8. icon_unit_land_inf.bmp – at least one INF9. icon_unit_land_gar.bmp – at least one GAR10. icon_unit_land_mil.bmp – at least one MIL(11. icon_unit_none.bmp – no divisions (yet))

II. Air:1. icon_unit_air_ftr.bmp – FTR only2. icon_unit_air_int.bmp – INT or FTR + INT only3. icon_unit_air_tac.bmp – TAC only4. icon_unit_air_nav.bmp – NAV only5. icon_unit_air_str.bmp – STR only6. icon_unit_air_cas.bmp – CAS only7. 1. icon_unit_air_tra_l.bmp – TRA only, at least one loaded with land units7. 2. icon_unit_air_tra_e.bmp – TRA only, all empty8.1. icon_unit_air_flying_rocket.bmp – at least one Flying rocket8.2. icon_unit_air_flying_bomb.bmp – Flying bombs or Flying bombs +Flying rocketFor mixed bombers with other aircraft type the is choosing in this order: STR, NAV, TAC, CAS, FTR, INT

III. Naval:1. icon_unit_sea_cv.bmp – fleet has at least one CV2.1. icon_unit_sea_bb.bmp – fleet has at least one BB2.2. icon_unit_sea_bc.bmp – fleet has at least one BC2.3. icon_unit_sea_ca.bmp – fleet has at least one CA2.4. icon_unit_sea_cvl.bmp – fleet has at least one CVL3.1. icon_unit_sea_tra_l.bmp – TPs only, at least one is loaded with troops3.2. icon_unit_sea_tra_e.bmp – TPs only, all empty4. icon_unit_sea_sub.bmp – SS/SSN only5.1. icon_unit_sea_screen.bmp – at least one DD/CL in fleets with screens or screens + TP + SS/SSN(5.2. icon_unit_sea_sub.bmp – SS/SSN + TPs)

IV. Special:1. icon_unit_none.bmp – transparent icon used on empty units

1) Added HQ icon to units in units list (icon_unit_HQ_active.bmp and icon_unit_HQ_inactive.bmp)2) Added engineer icon on unit plates when at least one division of the unit has an engineer brigade (icon_unit_engineer.bmp and icon_unit_no_engineer.bmp)3) Added extra Transport plane icon on unit plate for mixed air fleets that have Transport planes (icon_unit_air_tra_e.bmp and icon_unit_air_tra_l.bmp)4) Added extra Transport icon on unit plate for fleets that have TPs (icon_unit_sea_tra_l.bmp and icon_unit_sea_tra_e.bmp)5) Added extra Escort icon for air wings having at least one ESC brigade attached (icon_unit_air_escort.bmp)6) Added extra INT/FTR icon for air wings of mixed bombers and INT/FTR (icon_unit_air_int.bmp and icon_unit_air_ftr.bmp)7) Added extra FTR icon for mixed INT/FTR only air wings (icon_unit_air_ftr.bmp)8) 'EF' and 'MC' text on foreign units): * Changed to icons (icon_unit_EF.bmp, icon_unit_MC.bmp, icon_unit_own.bmp)* Allowed country flags to be used instead icons (gfx\map\flags\icon_TAG.bmp)* When Flags are used two more icons are available (as a second layer) to allow easy recognition bet

Page 38: Darkest Hour Development Diaries Archive

DD9: Questions & Answers SessionDarkest Hour was officially announced by Paradox Interactive only two months ago. Yet many questions arose from the community.We already introduced to you some of the game's features in previous development diaries. Therefore, we chose to dedicate this one to a session of questions and answers.Let us start at first with general questions about the game philosophy.

Game philosophy

Did anyone asked about the philosophy behind the new combat mechanics?Earlier you told us, that the combat mechanism will be changed/updated. How? At least on the general aim level.

We kept in mind the idea that combat pace was too quick in Hearts of Iron II. We thence developed several tools to modify it easily (so modders can play with it as well). We tweaked many new misc parameters in such a way that land combats are now more realistic, e.g. slower and deadlier. Terrain and climate modifiers have been tweaked as well to provide players with more accurate results.

How are you approaching the issue of challenge? Are you going to do sth in order to curtail WC? If yes, then what exactly?

The main idea behind the game was to put players in the same position as world leaders during the darkest hours of XXth century. Therefore, you have to deal with dilemmas and, most of the time, no solution will be completely satisfying.Playing Germany, will you be looking to wage the war as soon as possible and take the risk to leave your army or industrial base unprepared for a long conflict? As Japan, will you intend to invade new lands and thus have access to new resources or will you try to prevent a clash with the United States and the Western allies?So generally speaking, you have to lead your nation dealing with constraints (more than in Hearts of Iron II). On the other hand, we were obviously very careful in letting minors still fun to play.

This question is aimed at Fernando. A few years back you worked on a mod project for WIF called 'T.H.E. Project' which was abandoned in the early stages.

Did DH, give you the opportunity to put in idea's/features that you couldn't do then into practice?

DH obviously offered to me the opportunity to implement ideas and features that I had dreamed of for years. I worked on this closely with Martin for two years now.I for instance supported the implementation of a decision system for many months and finally convinced Martin to introduce it. Then I took care of the soft coding part with Björn and I can say that I am pretty proud of what we did in that regard. I believe this new feature brings a new dimension to the Hearts of Iron saga.

... and have you been able to achieve what you wanted?

Page 39: Darkest Hour Development Diaries Archive

You always think you could do better or more. There are still areas where I have tons of ideas ranging from minor enhancements to complete revamp. But development could go on for years this way. You have to make hard choices. And I am very happy with what we implemented so far.

Game featuresWill country flags change according to the ideology of the ruling regime?

It is indeed possible to change country’s flag. We have implemented a new event command that changes not only the flag but most national graphics (such as the skin or the counter, etc).Nevertheless, we choose not to change flags automatically based on the ideology, yet it is possible to write simple events to create this behavior. Something along the lines of "if government = communist and flag = democratic then change_flag = XXX_communist" would fit perfectly.

Is the tech tree the same as HoI2, slightly expanded, massively expanded, or entirely reworked?

Entirely reworked. The tech tree now covers the 1914-1964 era, with an emphasis on the 1914-1918 and 1936-1948 periods.

Given the trade window automation introduced in AOD, and the spy mission automation you've previewed, does the team have any more plans with allowing the player to "hand-off" parts of the game? Perhaps something similar to HOI3's production screen or full/partial AI unit control?

Unfortunately, we cannot reveal much now, but a future development diary will introduce the new automated trade system. It is one of the most efficient part of the game. Many will be surprised how easily it can be relied on.

Hi, a short question: As DH is supposed to enhance modability, I wonder if there are any new event commands or triggers or the like? Well, other than the ones concerning the new features, of course.An example I had in mind would be something like a control or owned not only for provinces but for areas or regions as well. This way, you can not only check if someone holds e.g. Moscow, but if he controls the surrounding region as well.

There a lot of new commands and triggers, but we will introduce them in a future development diary. For now we can say that we have worked with the aim not only to correct and improve the existing triggers and commands, but also to add new ones! Based on the example you made, we can say that you'll be positively surprised.

Please make it possible to set military control by events!

Yes, we have implemented such command and players will be able to take decisions featuring them. As Germany, you will for instance be able not only to support the Fascist coup in Spain but also to directly control the Spanish army. American players can also assume the control of Chinese and French armies alike, which is especially useful for multiplayers sessions. We believe this feature

Page 40: Darkest Hour Development Diaries Archive

will bring a lot of fun!

I've played with the E3 map, and I had one major problem with it, that small provinces like Gibraltar would be unclickable because the sprites/counter were too big, has this problem been fixed?

Yes. We have added a nice and functional zoom effect. It gives a clear view of what is going on on such small provinces while adding a nice touch to the map.

How is lend and lease modeled? Just by an IC increase like in earlier HOI-games?

When certain requirements are met, the United States can pass the Lend-Lease Act. Then they can choose how they want to help the Allies. This help can go from merely sending them resources to becoming an actual “arsenal of democracy” (reflected by the displacement of factories).Moreover, the Lend-Lease shipments can be intercepted and stopped by the Axis. Britain can for instance no longer receive the American aid when they do not have enough transport convoys. Therefore, the Atlantic submarine warfare becomes much more important than in Hearts of Iron II.

Does the battle mechanics change as the decades pass by? Are the battle mechanics the same in 1914 as in 1950?

As time goes by and new doctrines are put in use, firepower increases whereas casualties tend to decrease. Thus, battle mechanics are completely different in 1945 compared to 1914. Not to mention that the advent of tanks and airplanes is a major revolution in military doctrines.

Are victory points present? If so, any changes to how these function and are distributed?

We have reduced the total amount and the number of provinces with victory points. We think that this is a better representation of the world.

And now, to close this Development Diary, here are two screenshots, the first depicting the Caribbean and the second depicting the Horn of Africa.

Page 42: Darkest Hour Development Diaries Archive

DD10: Improved Interface part 2One of our aims with Darkest Hour is to reduce the amount of time the player has to spend on useless tasks instead of having fun. A good example of this is new improved and automated Spying System we already talked about (see DD3 for more details). But obviously we did much more than that: today, we're going to talk about some the time-saving improvements in the interface.

First of all, in Darkest Hour the use of the SHIFT+ and CTRL+ shortcuts have been extended. As you already know, usually with SHIFT+ you add 5 items to the queue whereas with CTRL+ you add 10 items to the queue. The places where this was possible was limited, so we decided to expand its use. For example in the province interface it is now possible to add 10 levels of IC/AA/Naval Bases/Air Bases/Infrastructure/etc. in the Production Queue with a single click!

Moreover, we've added a new shortcut: SHIFT+CTRL+click will now add the maximum possible amount of items! You will be able to queue 99 convoys with just one click! But let's forget about this for a while, we'll get back when we'll talk more about production.

A new interesting feature is the multiple deployment of divisions. If you have a long list of divisions in your deployment pool and you don't want to waste your time deploying each of them separately, you can now simply press CTLR+click to select/deselect them. Moreover, if you press SHIFT+click over a division it will automatically select all divisions of the same model (infantry, motorized, interceptors, CAS etc.). And if you press CTRL+click over a division it will automatically select all divisions of the same type (which means land, naval or air units). But this is not the end: after selecting the divisions, there will be a new screen where you can choose to add these divisions to an existing unit or deploy them in a specific province. Nothing new? Wrong, there is a new trick! The game will automatically group together units of the same model creating groups (but if you want them separated you just have to press SHIFT). By default land units are placed in groups of three, air units in groups of 2 and naval units in groups of 6, bu this value is moddable in misc.txt for each unit type. So for example if you have 7 land divisions, the system will automatically separate them in 3 units: the first two unit will have 3 divisions each and the third unit will get 1 division. You can them easily deploy these three units in a specific province. If you want 7 different units each composed by a single division you'll only have to press SHIFT.

Page 43: Darkest Hour Development Diaries Archive

Now it may sound a bit too complex, but trust us: it is a really useful feature, you'll love it!

Another improvement that you will surely appreciate is the merging of the terrain and the weather map. This option is initially disabled, but all you have to do is right-click on the pause button and you can enable it. As you can see from the screenshot below, the terrain map will now display the clouds from the weather map and two new small icons to represent mud and frozen terrain. Very useful when you are executing Operation Barbarossa!

Page 44: Darkest Hour Development Diaries Archive

As you might have spotted in the screenshot above, there is also another option: you can hide icons and units from view in the diplomatic mode! Take a look at how the diplomatic map may look with this new feature:

And finally, we made some cosmetic changes to the economic map: the units are hidden and the icons are grouped together:

Page 45: Darkest Hour Development Diaries Archive

We hope you'll appreciate these new features! Come back again next week!

Page 46: Darkest Hour Development Diaries Archive

DD11: Modding with Darkest Hour part 1Darkest Hour is a game made by fans for the fans, but more also to a certain extent, we could also say it is made by modders for the modders. Starting today and for the next few weeks, we will introduce you the changes introduced by Darkest Hour related to database and modding. We will show you the changes to triggers and commands, the new event interfaces and the new concepts (you already know there is a decision system, but there are also quite a few elemental additions to the existing event system you haven't seen elsewhere).

Today we'll start with corrections and improvements that we did to already existing triggers and commands as well as the new ones we introduced.One of the first improvements we made was to take into considerations wars and alliances: we gave the control, owned and garrison triggers the possibility to check for enemies and allies. Obviously, an enemy is a country we are at war with whereas an ally is a country we are allied with. So for example it is possible to check if a specific province is controlled by a specific country or by one of its allies: this will be very useful in surrender chains! ;-)

Here's a list of corrected and/or improved triggers:- Trigger: control = { province = a [data = tag] } # checks if province is controlled by country x. If data = -1 or no data then it’s for country receiving event; -2 is Enemy; -3 is allied (war or diplomatic alliance) or event receiver- Trigger: convoypool = X # changed to check for total convoy transports instead just for unassigned- Trigger: escortpool = X # changed to check for total escorts instead just for unassigned- Trigger: intelligence = X / intelligence = { [country = TAG] value = X [data = 1/2/3] } # True if intel level is at least X in the current country (intelligence = X, or no TAG) or country in question (TAG); data: 1 (default) intell level, 2 – foreign intelligence, 3 – counter espionage- Trigger: intel_diff = { country = TAG1 [country = TAG2] value = X [data = 1/2/3] } # True if TAG1 intel efficiency in TAG2 – TAG2 intel efficiency in TAG1 is at least X (data = 1 or no data), TAG1 intel level – TAG 2 intel level is at least X (data = 2), or TAG1 intell efficiency in TAG 2 is at least X. If no TAG2 check for current country in TAG1. value could be negative.- Trigger: lost_IC = { value = X } # X% or more of national IC of the country in question is in enemy hands- Trigger: lost_national = { value = X } # X% or more of national provs of the country in question are in enemy hands- Trigger: lost_VP = { value = X } # X% or more of _owned_ VPs of the country in question are in enemy hands- Trigger: owned = { province = a [data = tag] } # checks if province is owned by country x. If data = -1 or no data then it’s for country receiving event; -2 is Enemy; -3 is allied (war or diplomatic alliance) or event receiver- Trigger: trade = { country = TAG } # check if the country in question has a trade deal with TAG- Extend garrison trigger to support [country = TAG/0/-1/-2/-3] (0 – all countries, current country (country = -1 or no country), enemy countries (country = -2) or allied/friendly countries (country = -3); optional area values: 0 = (no) / 1 = area / 2 = region /3 = (yes) owner area ):* garrison = { [country = TAG/-1/-2/-3] province = [province] type = [air/land/naval] size = [number of divisions] area = [0/1/2/3] }

And now, let's talk about the new triggers we introduced with Darkest Hour. First of all, as someone guessed in our Q&A Session two weeks ago, we can now check control or ownership not only over a province but also over an area or a region. The checks can be performed on allies and enemies too and can involve even a percentage of province: for example we could check as Germany if at least 60% of provinces of the region France are controlled by our alliance. Thanks to the nuked triggers

Page 47: Darkest Hour Development Diaries Archive

it will be possible to take nuclear warfare into account in surrender chains: now Japan can surrender if Okinawa is lost and it has been nuked at least twice. Another trigger, perhaps underestimated, is the participant trigger which checks if the country is part of the Allies, Axis or Comintern. There are also new checks for buildings (with special checks for nuclear reactors and rocket test facilities), cores & claims, divisions, policies and tech teams that allow a finer tuning and a better control over the status of your country.Here's a list:- Trigger: area = { area = name [country = TAG/-1/-2/-3] [data = 1/2] [value = X] } # check if all provinces in the area are controlled (data = 1 or no data) or owned (data = 2) by the current country (country = -1 or no country), enemy countries (country = -2) or allied/friendly countries (country = -3)); optional value = X (0 to 100, default is 100) – percentage of provinces (cannot be less then 1 province)- Trigger: building = { province = ID type = building_type value = X [when = now] } # check if in the specified province that building_type is at least at level X; when = now for current size, else - max size- Trigger: claims = { province = a [data = tag ] } # check if that province is claimed by TAG (or country in question if not specified)- Trigger: core = { province = a [data = tag ] } # check if that province is core for TAG (or country in question if not specified)- Trigger: embargo = { country = [tag1] country = [tag2] [value = 0/1/2]} # checks if tag1 has trade (value = 1), tech (value = 2) or any (value = 0 or no value) embargo to tag2. If no tag 2 check for current country against tag1- Trigger: ic = X / ic = { [country = TAG] value = X [when = now] } # check if TAG (or country in question if not specified) has X or more Total IC ([when = now] ) or Base IC; ic = X checks if current country has at least X total IC- Trigger: nuclear_reactor = X / nuclear_reactor = { [country = TAG] value = X [when = now] } # check if TAG (or country in question if not specified) has nuclear reactor at X or more current size ([when = now] ) or max size; nuclear_reactor = X checks if current country has at least nuclear reactor with X current size- Trigger: nuked = X / nuked = { country = TAG1 [country = TAG2] data = X [where = Y] } * nuked = -1 # True if against that country have been used at least 1 nuke * nuked = 1 # True if that country has used at least 1 nuke against any country * nuked = { country = FRA country = GER data = 1 where = 300 } # True if France has used at least 1 nuke against Germany in Berlin (ID 300) * nuked = { country = FRA data = -1 } # True if against France(FRA) has been used at least 1 nuke by any country * nuked = { country = GER data = -2 where = 300 } # True is against Germany have been used at least 2 nukes (by any country) at Berlin - Trigger: participant = { [county = TAG] value = 1/2/3/4 } # check if TAG (or country in question if not specified) is part of Allies (1), Axis (2), Comintern (3) or any alliance (4)- Trigger: policy = { [country = TAG] type = [policy] value = X } # true if the policy of TAG (or country in question if not specified) is equal or greater then X. Value is 1 to 10- Trigger: region = { region = name [country = TAG/-1/-2/-3] [data = 1/2] [value = X] } # check if all provinces in the region are controlled (data = 1 or no data) or owned (data = 2) by the current country (country = -1 or no country), enemy countries (country = -2) or allied/friendly ); optional value = X (0 to 100, default is 100) – percentage of provinces(cannot be less then 1 province)- Trigger: rocket_test = X / rocket_test = { [country = TAG] value = X [when = now] } # check if TAG (or country in question if not specified) has rocket test sites at X or more current size ([when = now] ) or max size; rocket_test = X checks if current country has at least rocket test site with X current size- Trigger: tech_team = ID / tech_team = { id = X [country = TAG] } # checks if team with id X is active (current year is in between team’s start/end year) in the current country (no country entry), in a specified country (TAG) or in any country (country = -1, or just team = ID)- Trigger: [div type] = { [country = TAG] value = X [when = now] } # check if

Page 48: Darkest Hour Development Diaries Archive

TAG (or country in question if not specified) has X or more of that type of division. when = now counts only already built divisions.- New trade system triggers: * stockpile = oil/energy/metal /rare_materials/supplies/money # Returns true if Stockpile is set for the given resource. * import = oil/energy/metal /rare_materials/supplies/money # Returns true if Import is enabled for the given resource. * export = oil/energy/metal /rare_materials/supplies/money # Returns true if Export is enabled for the given resource. * resource_shortage = oil/energy / metal / rare_materials / supplies / money / all # Returns true if there is resource shortage for that resource or for any resource when used with “all”. NOTE: This trigger is not very reliable because it is set correctly on the second game day on every game session.

We've corrected the most well-known bugs in event commands (unit stats and change TAG command) and improved the inherit and manpowerpool commands:- Fixed units stats added by events (example “command = { type = soft_attack which = infantry value = 10 }” ) – those were not applied to newly built units.- Added “when = XXX” entry to build_division event command to allow serial builds (default value is 1)- Fixed a CTD bug with undocumented change country TAG command (command = { type = country which = TAG }) – tech-teams currently researching were not removed from research pool. On click game CTD- Fixed a bug in change country TAG command - only minimum provinces were added to nationalprovinces list. Add provinces from extra list too and also claims to claimedprovinces list.- Addition to inherit command – added value = 1/0(default) argument. When set country will receive all units and production queue too.- Improved manpowerpool command – added optional [when = 1/[0]] switch. When set 1 add the MP as percentage (value = x.x) of the MP in all controlled national provinces. - Corrected event command: type = carrier_level value = XXX.X #country-independent bonus to every carrier into a naval combat (Bonus = (OurCarrierLevel - TheirCarrierLevel) / 10). Specified value replaces currently used (it is not additive command). By default this value for all countries is 0.0 (and so the bonus is 0%). - Extended alliance command (added Axis, Allies, Comintern alliances): type = alliance which = [tag] [where = 1/2/3] # This country enters in an alliance with country = [tag], [-1] for random country, where = 1 – Axis/ 2 – Allies / 3 – Comintern

The new option for the inherit commands will add flexibility and will avoid having to rely on the regular_id entry on revolt.txt to achieve the same result whereas the enhanced manpowerpool command is very useful for the mobilization process, as you might learn in another DD! ;-)

And now, we're going to have a look at the new event commands that we introduced. We cannot talk about the new trade system yet (you'll have to wait for another DD ;-) ), so let's skip its commands and let's look at the change flag/shield/counter name and skin and change country name commands. We think these are going to be some of the most loved additions, especially by the modders, as these commands have been loudly requested by the community for years. We hope you'll appreciate them! :-)Other commands that you'll soon grew accustomed to will be the new command to assume or relinquish military control over another country and the commands to secede whole areas or regions to another country: no more typing secede_provinces hundreds of times for the Soviet Bitter Peace! :-D- New commands and country specific modifiers on max stockpiles:* command = { type = stockpile which = (industry / supplies (used for oil too) / all) when = ( war / peace / all ) value = XX }- New event commands to toggle auto-trade options.

Page 49: Darkest Hour Development Diaries Archive

* command = { type = auto_trade which = (oil / energy / metal / rare_materials / supplies / money) when = (import/export/stockpile) value = 1/0 } Notes: a. Enabling Stockpile will disable Export and enable Import b. Enabling Export will disable Stockpile c. Disabling Import will disable Stockpile * command = { type = auto_trade_reset } - reset auto-trade options to defaults ( Stockpile disabled, Import and Export enabled for all resources)- New event command – add/remove tech/trade embargoes:* command = { type = embargo which = TAG where = TAG [value = -2/-1/0/1/2/3] } # which – enforcer; where – subject; value: -2 – clear tech embargo; -1 – clear trade embargo; 0 or no value – clear all embargoes; 1 – enforce trade embargo; 2 – enforce tech embargo; 3 – enforce both trade and tech embargoes; If which = where then value = 0 (clear all embargoes the country has), -1 (clears all trade embargoes the country has), -2 (clears all tech embargoes the country has) - New event command – trade:* command = { type = trade which = TAG where = TAG [energy = x] [metal = x] [rare_materials = x] [oil = x] [supplies = x] [money = x] [when = Days duration / default is 100 years] [value = 1/0 – default, can be broken, 1 = not] }- New event command – change flag/shield/counter name and skin:* command = { type = flag_ext where = TAG [which = “string”] } # where – change flag of TAG; which - add that string to flag/shield/counter name and skin folder; use empty string (“”) or no which to clear.- New event command – change country name:* command = { type = name where = TAG [which = “string”] } # where – change name of TAG; which - new country name; use empty string (“”) or no which to reset name to default.- New event command – military_control:* command = { type = military_control which = TAG where = TAG value = 1/0 } # which – controlling country; where – controlled country; value – 1(assume MC), 0 (relinquish MC)- New event command – secederegion:* command = { type = secederegion which = TAG value = REGION_NAME } - New event command – secedearea:* command = { type = secedearea which = TAG value = AREA_NAME }- New event command to add claims: type = addclaim which = [prov id] # Add province to country claims- New event command to remove claims: type = removeclaim which = [prov id] # Remove province from country claims- Added a new command to change leader of a major alliance: command = { type = alliance_leader [which = TAG] where = 1/2/3 } #sets TAG (or country in question if no which is specified) as the new leader of Axis (where = 1), Allies (where = 2) or Comintern (where = 3)

Page 50: Darkest Hour Development Diaries Archive

We regulary add new commands and triggers, or improve the existing ones, whenever we reach a point where it is not possible to achieve a certain effect with those already existing, so this list is by no means final. We might surprise you again in the future!

This is all for now! Next week we'll probably talk about the new event and decision interface! Here's a sneak peek:

Addendum to DD 11And in the sense of adding/fixing things regulary, you actually didn't mention my current favorites added last week.

Extended unit terrain/weather combat modifier commands to classes too (land/air/naval)

Old code: command = { type = frozen_attack which = infantry value = 13 } command = { type = frozen_attack which = militia value = 13 } command = { type = frozen_attack which = armor value = 13 } command = { type = frozen_attack which = bergsjaeger value = 13 } command = { type = frozen_attack which = cavalry value = 13 } command = { type = frozen_attack which = hq value = 13 } command = { type = frozen_attack which = light_armor value = 13 } command = { type = frozen_attack which = marine value = 13 } command = { type = frozen_attack which = mechanized value = 13 }

Page 51: Darkest Hour Development Diaries Archive

command = { type = frozen_attack which = motorized value = 13 } command = { type = frozen_attack which = paratrooper value = 13 }

DH code:command = { type = frozen_attack which = land value = 13 }

It might not look like much to you, but if you add for example decisions to equip your troops with specifc equipments it gets really important.

If you want to add for example winterequipment, the old code required 120 commands to add/remove terrain/weather modifiers to all vanilla landdivisions.

snow-/frozen- move/attack/defense for each of the 10 Division types, and the whole thing times two, one to activate and one to deactivate.

The new code requires only 12 lines.

And there might be more then only winterequipment.

Page 52: Darkest Hour Development Diaries Archive

DD12: Modding with Darkest Hour part 2Today's Development Diary will focus on the new event and decision interface.

First of all, we've introduced two new styles for events. The first style is chosen by writing "style = 1" and allows the use of bigger pictures. The new picture size is 400x116 instead of the standard 156x116: the height did not change but now the picture is as large as the event window. Moreover the action buttons are now smaller. Overall, this is a simple cosmetic improvement in style, but take a look at how beautiful it is:

The second event style (chosen by writing "style = 2") is a bit more complex and provides a newspaper-style header. The header is composed by a 400 x 48 pictures that can be generic (news_header.bmp) or country specific (news_header_TAG.bmp). Under the header, the current game date and capital name are displayed (e.g. "March 7 1936, Berlin" or "March 25 1939, Rome"). Below that, the event pictures (440 x 116, as for the first style) is diplayed, followed by the event title and description. For the generic header we used the "News of the World" newspaper, but we also added more specific headers for some countries:

Page 53: Darkest Hour Development Diaries Archive

The HOI2 Vanilla style is obviously still the default style and can be explicitily chosen by writing "style = 0".

And now, let's take a look at the decision interface. We've already introduced decision in Dev. Diary 6 and we will talk more about their coding in another DD, for now we will introduce their interface.

As you've already seen from our screenshot, we added another tab to the frame in the left side of the screen. In this tab, all available and active decisions are listed. A decision is available when it is listed there, which means that you can read its requisites and its consequences. A decision is active is the requisites are met and can be taken by the player at any time. That means that a decision can be available but not active if its requisites are not met: the player can then read the requisites necessary to make the decision active and its consequences and decide whether to pursue them or not. Take a look at the following example:

If you decide to take a decision, it is triggered as an event and you can accept it or cancel it. If you cancel it, the decision won't disappear but remain listed as active in the decision list, so that you can take it at a later moment (if the requisites are still fulfilled, of course).

Page 54: Darkest Hour Development Diaries Archive

DD13: Modding with Darkest Hour part 3Today we're going to talk about the improvements we made to the existing event system.

First all, you'll be happy to know that now events can have an unlimited number of action, we are no more bounded by a maximum of 4 choices. You can create an event with as many action as you want, you're only bundled by the size of your screen.

But this is just the beginning. Perhaps the greatest improvement we made to the event system is the introduction of triggers in action and commands. This means that a trigger can be associated to an action and that action will be displayed and selectable only if its trigger is satisfied. The same happens for commands: a single command can have a trigger and that command will be executed only if its trigger is satisfied. This change opens a whole new dimension for event writing because with only event you'll able to attain results that previously required many different events (or where altogether not reachable!). Let us give you a few simple examples of this feature.

Example 1 - you can have different actions based on the government:action = { trigger = { government = democracy } command = { ... }}action = { trigger = { government = communist } command = { ... }}action = { trigger = { government = nazi } command = { ... }}

Example 2 – a command can be executed only if the trigger is satisfied (surrender of France):action = { command = { type = secedearea which = GER value = "Bourgogne_Champagne" } command = { type = secedearea which = GER value = "Lorraine_Alsace" } command = { type = secedearea which = GER value = "Pas de Calais" } command = { type = secedearea which = GER value = "Paris" } command = { type = secedearea which = GER value = "Normandy" } command = { type = secedearea which = GER value = "Loire" } command = { type = secedearea which = GER value = "Brittany" } command = { trigger = { control = { province = 87 data = ITA } } type = secedeprovince which = ITA value = 87 } # Nice command = { trigger = { control = { province = 86 data = ITA } } type = secedeprovince which = ITA value = 86 } # Toulon command = { trigger = { control = { province = 90 data = ITA } } type = secedeprovince which = ITA value = 90 } # Grenoble command = { trigger = { control = { province = 91 data = ITA } } type = secedeprovince which = ITA value = 91 } # Chambery command = { trigger = { control = { province = 94 data = ITA } } type = secedeprovince which = ITA value = 94 } # Corsica }

As you can see, now you don't have to write action_a, action_b, action_c and action_d anymore, but a simple action is enough. Obviously the old syntax is still valid, as we always said we want to keep compatibility with HOI2 Armageddon mods.

This change also required a new system to calculate the ai_chance. We therefore created this new set of rules:

Page 55: Darkest Hour Development Diaries Archive

• sum of AI chances of all valid actions could be any positive number (removed fixed sum = 100 prerequisite);

• invalid actions are skipped in AI chances calculations;• actions without specified AI chances are ignored by the AI if there is at least one valid action

with AI chance set;• if no AI chance is set for valid action, random action is chosen from all valid actions

(removed increased chance to pick 1st action);

Another feature we introduced are the so called one-action events. This means that when this option is selected (by writing one_action = yes), even if an event has more than one action, only one of the possible actions will be displayed to the player (who therefore will be forced to accept it).The choice of the action is based on the defined AI chance for each action. In this way the player cannot choose the action and is forced to accept whatever happens to him.An example is perhaps worth more than many words: the effects of the attack on Pearl Harbour can be written as a one_action event, so that neither the Japan nor USA can choose the amount of losses inflicted on the American fleet.

event = { id = 1122334455 random = no country = USA one_action = yes

name = "Attack on Pearl Harbour!" desc = "4062desc"

action = { ai_chance = 10 name = "We suffered very heavy losses" ... } action = { ai_chance = 50 name = "We suffered heavy losses" ... } action = { ai_chance = 15 name = "We suffered light losses" ... } action = { ai_chance = 5 name = "We suffered very light losses" ... }}

When this event is triggered, only one action is displayed to the player and the probability of a single action is based on the ai_chance. The same rules explained above apply here, so it is not necessary to have the sum of ai_chance equal to 100. So the second action ("We suffered heavy losses") has a probability of being chosen equal to 50/(10 +50 +15 + 5) = 62.5 %.

Fianlly, the last feature we're going to talk about today is the events with saved date. It is possible to save the date in which an event fired and then use it as a trigger in another event, for example to make an event fire at least 100 days after another event fired.Example: the first event will have save_date = yes:

Page 56: Darkest Hour Development Diaries Archive

event = { id = 1234567890 random = no save_date = yes country = GER ...}

The second event will have:trigger = { event = { id = 1234567890 days = 100 }}

Darkest Hour Complete will make full use of these new features, but some of the mods currently being ported to DH will use them too! Wait&See! ;-)

Here are a couple of screenshots from our Development Team:

Page 57: Darkest Hour Development Diaries Archive
Page 58: Darkest Hour Development Diaries Archive

DD14: Modding with Darkest Hour Part 4First of all, today we're going to talk a bit more about syntax and rules for decisions, as many fans expressed their interest in this subject.

As we've already discussed in Dev Diary 12, on the left side of the screen we introduced a new list which contains the available decisions that the player can evaluate and eventually take. From the point of view of the code, a decision is a normal event with two new sections:

• decision = { ... insert normal triggers here ... } : if these triggers are fulfilled the decision appears in the decision list for the human player;

• decision_trigger = { ... insert normal triggers here ... } : if these triggers are fulfilled the decision can be taken by the human player;

When the decision is taken, it fires as a normal event and can always be canceled. In the latter case the event isn't registered as fired and the decision remains active in the decision list and can be taken again at a later date (if the conditions in the decision_trigger section remain fulfilled). Please beware that for AI nations decisions are treated as events, this means that only the usual trigger = { ... } section is checked! This means that all three sections (decision = {...}, decision_trigger = {...} and trigger = {...} ) must be correctly compiled to make the decision work. Moreover, the decisions appear and can be taken only during the chosen date-deathdate interval, so that part of the code must always be compiled too!

Here are more technical informations on decisions: - there is a new modifier in misc.txt (“mod” section) to enable or disable decisions: #Enable decisions for players. 0 - Disabled, 1 – Enabled ; - decisions are hidden until all triggers in decision = { } section are fulfilled; - decisions become available for selection when all triggers in decision_trigger = { } section are fulfilled; - once selected, the decision fires as regular events via standard event window with all the usual information and actions on it plus the possibility to cancel the decision; - decisions are logged in event history as regular events; - the decisions list is populated on game start and updated daily; - usually the tooltip on the decision displays the description of the event, but optionally it is possible to insert a specific text: decision_desc = "...."; - a new kind of pictures is introduced, to be used in the decision list: decision_picture = "picture_name.bmp" (if none if chosen, a generic picture is loaded by default - gfx\event_pics\decisions_empty.bmp);

Another important change introduced by Darkest Hour is the export of the effects of policy slider to a new file, db\policy_effects.csv.This file allows complete control over the effect of policy sliders and is a very powerful tool. Here's a list of the possible effects that are associated to slider position:CAN_ALLY_WHILE_AT_PEACECAN_ADD_CLAIMS_TO_NEUTRALSCAN_DEMAND_CLAIMSCAN_BREAK_NAPCAN_GUARANTEEMODIFIER_ORGMODIFIER_GEARING_BONUSMODIFIER_CG_DEMANDMODIFIER_DISSENT_SPEEDMODIFIER_UPGRADE_COSTMODIFIER_UPGRADE_TIME

Page 59: Darkest Hour Development Diaries Archive

MODIFIER_TECH_TEAM_SALARIESMODIFIER_RESEARCH_TIMEMODIFIER_PARTISAN_RISKMODIFIER_DOW_DISSENT_COSTMODIFIER_TOTAL_ICMODIFIER_CG_TO_MONEYMODIFIER_RESOURCE_PRODMODIFIER_PRODUCTION_TIMEMODIFIER_PRODUCTION_COSTMODIFIER_NATIONAL_DISSENTMODIFIER_OCCUPIED_DISSENTMODIFIER_COUNTER_INTEL - used for units detectionMODIFIER_MP_EXPERIENCEMODIFIER_MP_GROWTHMODIFIER_DIPLO_COSTMODIFIER_INTEL_COSTMODIFIER_INTEL_MAINTENANCEMODIFIER_REL_NORMALIZATION: applied each 6th dayMODIFIER_STOCKPILESMODIFIER_USE_BELLIGERENCE_FOR_DOWMODIFIER_BELLIGERENCE_DOWMODIFIER_RELATIONSHIPS_DOWMODIFIER_COUNTERINTELLIGENCE - added to home intellMODIFIER_INTELLIGENCE - used as extra spy level in distance calcs

This allows the modders to customize the policy slider. We might talk about what we've done to one on these slider in another Diary.

To close this DD, let's review other changes related to modding that we introduced: - Enabled unlimited unit models (was fixed to 10). To use just add a new model = {….} entry in the respective txt file in “units” folder. As a bonus this change will decrease loading time and memory usage for unit types that use less then 10 models. - Added new (optional) parameter for units: max allowed brigades. This overrides default hard- coded values. Add to division files in “\db\units\divisions”. Format: max_allowed_brigades = X. Currently it is allowed to have up to 5 brigades for naval units and up to 1 brigade for land and air units. - new country IC modifier - wartime_ic_mod. Works like peacetime_ic_mod, but when at war; - new adjustable reaction of puppets when not-allied master is at war: puppets with neutrality 150+ (set in misc.txt ) that are not allied to their master will not join automatically master’s wars anymore * Puppets should join Master's war if AI Neutrality is equal or greater then THIS. Note: this works only if puppet is not part ofMaster's alliance! 0 = always join Master's wars 150 #0

- new modifiers in misc.txt (“mod” section) to handle the spawning of rebel units: * Rebels army composition - chance for infantry over militia. 0 - only militia, 100 - only infantry, 50 - 50%/50% and so on.* Rebels army tech level (based on the available model in the country that controls the province). -1 - Only model 1, 0 - Onlythe Latest model, else random model in the range from (latest model - THIS) to (latest model).

- Allowed (optional) unique province capital/city icons. Gfx\map\city_PROVID.bmp (city_55.bmp for Paris and so on). - Added optional fonts support for each language. Fonts are expected to be found in \gfx\fonts\X folder where X is the language set in settings.cfg (0 – ENG … 5- Polish). If not found in numbered folder fonts are read from fonts default location (\gfx\fonts\). - All minister modifiers are moved to a moddable file (db\ministers\minister_personalities.txt).

Page 60: Darkest Hour Development Diaries Archive

Moddable effects:* Leader skill* Research time – per tech or for all* Research cost – per tech or for all* Resource production bonuses – oil, energy, metal, rare materials, money* Production bonuses – foreign IC, national IC, reinforce, upgrade, consumer goods, supplies* Units – build time, build cost, attack bonus, defense bonus, morale (org. regain), organization* Brigades - build time, build cost, attack bonus, defense bonus, morale (org. regain), organization* Land unit speed* Belligerence – required for DoW, wartime and peacetime * Transport capacity modifier* Provincial buildings (IC, coastal and land forts, flak, infrastructure, air and naval bases, radar stations, nuclearreactors and rocket test sites) time and cost * Detection – naval, land and convoy* Dissent* Manpower growth – total and non-national* Supply consumption* Spying networks bonus – intelligence (home) and counterintelligence (foreign). Limited up to 5% each!* Intelligence reports accuracy – land/air units, navy/convoys and production/research. Values from -10 to 10* Diplomatic action chances – trade (used also for trade agreements), alliance (offer, join and bring), non-aggression pact, demand territory, ask for military access, sue for peace (insist on demands, white and beg for peace), assume militarycontrol and influence* Diplomatic action chances extra modifiers – weak target (Total IC is less then ½), same alignment, opposite alignment,democracies, dictatorships, close government type (difference +/- 2)* Diplomatic action cost for each action. The final value can be no less then 0.0* Diplomatic action cost extra modifiers – weak target (Total IC is less then ½), same alignment, opposite alignment, democracies, dictatorships, close government type (difference +/- 2), national (actions against us: cost modifier = 1 + Sender’s modifier + Target’s modifier).* Convoy transports and escorts build time and cost (using transport ships and destroyers modifiers)* Intelligence mission cost for each mission – 2 modifiers: for sender and for target (Final cost modifier for a mission = 1 +Sender’s cost modifier + Target’s defense cost modifier). The final value can be no less then 0.0* Intelligence funding and maintenance cost modifiers* Intelligence mission chances for each mission – 2 modifiers: for sender and for target (Summary chance for a mission = Sender’s modifier + Target’s defense modifier)* Stockpile - modifiers on stockpiles limit: which = industry / supplies (used for oil too) / all (default); when = war / peace / all (default); value = x.xxxx

Page 62: Darkest Hour Development Diaries Archive

DD15: Questions & Answers Session part 2We have been working on manpower, mobilization and generic concepts these last two weeks.We know excitement is growing fast among the community and many of you cannot wait to get your hands on Darkest Hour.We got some very kind messages on our Facebook page lately.

Some were short and simple.Any ETA on when this will be available? I'm dying to play it!

Some were longer and inspiring.Honestly: just the thought of playing this game moves me! I'm so happy to have been introduced to this gaming series, because it has changed my life. I work as a history teacher and these games have given me so many ideas for my classroom w...ork. And on the private side, I spend soooo many hours with HoI in all shapes and forms, that it now defines my life. When I lie in bed I think of strategies for upcoming moves; I keep a notepad by the bed so I can write them down. And now the concept of WWI...I can't wait. I really CAN NOT wait!

And some were just plainly weird.I want to have sex with Darkest Hour. We are sorry though, you can't have sex with Darkest Hour.

Moreover, in case you've missed it, a new Mod based on DH has been announced: Drunkest Hour!

So fellow wargamers, with no further ado, here is the Second Q&A Session.

Will there be two sets of techtrees? Or is there just one, extensive techtree covering 1918-1948 (or whatever)? You mean there really is just one, spanning the entire timeline? I asked specifically because it seems like a LOT of techs to fit on those small screens, and an even larger LOT of awesome and win.

I wonder if there are countries in 1936 scenario with 1914 level techs. Seems like there were a couple such places around.

We have extended the technology screen and are working over a large tree spanning from 1914 to 1963 technologies.This way we can work on scenarios that will use the same database.

Is trade improved? If so, does the player see which countries favour you more than others (trade ratio thing)?

The trading system has been drastically improved compared to oldest Hearts of Iron games for you can now assign priorities to exports and imports and let the AI strike the best possible deals on the world market. The trade system should be introduced in the next development diary.

Is money going to be more important and just not wasted?

I am adding generic decisions that will let you play with budget surplus (we showed some screenshots in the December Specials). They will be probably introduced in a future development diary too.

Page 63: Darkest Hour Development Diaries Archive

Besides, peacetime should now be more interesting.

I just ask for a yes/no on this one: Will there be any secret techs for WW1?

Yes.

What battlescenarios will we get (that we did not have before)?

We are working on a new Finnish Civil War scenario, but we don't know if it will released with the game or with a later patch because there's still a lot of work to do.

More than 5 research slots possible?

As of now, Darkest Hour has a maximum of 5 research slots but this may be subject of changes in the future. Moreover it is now moddable and can be increased up to 50 slots (hardcoded limit); also the IC needed for a new slot can be modded (it is still 20 in DH right now). Here's the setting that can be modded from misc.txt: # Use new Technology page layout - allow for more techs and better view. 0 - use vanilla; 1 - use new 1 #0 # Max active tech teams at a time (cannot be more then 50). Note: New Technology page layout will be auto-set for values above 5! 5 #5 # Min active tech teams at a time (available teams regardles of current IC) 1 #1 # Required IC for each tech team above the min 20 #20

Will WW1 be balanced so that long deadly battles much like World In Flames will happen when there are fortifications or difficult terrain/weather?

Battles in DH are longer and deadlier.

How are the peace events represented for WW1 and WW2?

By events, decisions and AI mechanisms.

Are there advanced sliders?

You can add/remove items from production lines and upgrade models, but this will be better covered in another DD.

Can political sliders be moved more than once a year?

Political sliders can be moved by events, decisions and at player's will every two years. However, we are currently refining the sliders system and this may change. The interval between moves is moddable of course.

How will the flag-switch be integrated? (Like in Victoria or did you come up with something new?)

Flag switch is new and not copied from Victoria. There are new event commands that handle it (see DD 11)

Will you introduce new unit types? Like in WW1 mod new infantry divisions: for example Reserve, Guards and Light Inf. maybe?

Page 64: Darkest Hour Development Diaries Archive

We will introduced new units or brigades, but maybe not those you mentioned.

Will countries like Ethiopia or China be able to field armies comparable in size with their historical numbers?

Yes.

Will there be an option to change/will you change the country's colors to something much brighter?

It's easily moddable.

Is there an easy to use moddir function (that works, most importantly)?

Absolutely.

There will be a "give province to" on the right mouse button like in Iron Cross ?

There are options that can be enabled and which allow to transfer owned and non owned provinces:# If owned (!) provinces can be sold/transferred to non-allied countries. 0 = No, 1 = Yes (player could offer such provinces), 2 = Yes (player cold offer and ask for such provinces)0 #0# Allow non-owned (just controlled) provinces to be transferred to allied(!) countries if provinces are cores for that ally. 1 - Enabled, 0 - Disabled (default):1 #0

What will the effects on certain generic decisions be (and requirements), such as issue new currency?

It can be taken when your country has below X money. This situation reflects either budget deficit or more precisely negative trade balance (because money rate is too high for instance).Issuing currency therefore allows you to get extra money instantly which in turns creates inflation reflected by a slight loss of industrial efficiency in game.

Will the first TRP version for DH be just a conversion of the old TRP 0.94 to DH? Maybe incorporating a few new things like decisions?

From the TRP team: The first TRP version for DH will be the conversion to the new map. We will not convert TRP 0.94 but TRP 0.95 with a lot of fixes which are valid for the "Arma 1.3 Beta 2" engine as well.Some new things will be added, but it just depends on the time we have between map conversion and release of DH.

The AI uses nukes?

Yes. Beware!!!

How much of DH's awesomeness you have not revealed yet?

Quite a bit. As always, Wait&See.

In Dev Diary 2 when you talked about the new map features, the biggest new feature that intrigued me was the new distance calculation algorithm that said that the distance between Berlin and Moscow would be the same ingame as it would in RL.

Can you show us a screenshot of that or something similar to us?

Page 65: Darkest Hour Development Diaries Archive

No other screenshot for today (come on, we gave you all those December Specials!), but here's a link to a video made by the fun. It made us laugh, we hope it will do the same for you! See you next year!http://forum.paradoxplaza.com/forum/...kest-Hour-quot

Page 66: Darkest Hour Development Diaries Archive

DD16: Trade & Stockpile systemsHello and Happy 2011 to everyone of you! 2011 will surely be a great year as it will see the release of Darkest Hour!

It is time to talk about our improved trade system. It can be surely described as easy to use and effective. Here's a screenshot:

As you can see you can automate the following tasks:- the AI can propose trades to other countries;- the AI can accept trades propose by other countries;- the AI can cancel existing trades;- the AI can automatically help allies that are lacking certain resources by sending them for free;- the AI can automatically share blueprints with Allies and puppets;- the AI can automatically accept blueprints from other countries (single offers);Moreover, there's a slider to regulate the AI that accepts deals with other countries so that you can choose to make it accept only the best deals or even deals that are not so convenient. Finally, with the Trade Policies section you can set the behavior of the AI regarding each resources. If a resource can be imported, the AI will try to obtain it, whereas is it can be exported the AI will be able to give it to other countries in exchange for other resources. A resource that we want to stockpile is a resource that the AI will not export and will do its best to acquire from the market.

This new trading system aims at putting players in the position of leaders during the darkest hours of the XXth century. You do not have to negotiate every single commercial deal. All you have to do is let your diplomats, advisors and trade specialists know exactly what kind of deals you believe your country has to reach for. However you can still get personally involved in these trades for you will eventually decide what kind of Head of State you wish to be!Overall, this new system if very easy to configure and intuitive. Playing with the sliders and the trade policies will help to solve any problem or shortage concerning your resources stockpiles.

Speaking of which, let me know introduce you to one of the biggest innovation of Darkest Hour, its Stockpile system. Each resource (with the exception of money) cannot be stockpiled ad infinitum anymore. As you can see from the following screenshot, there are three different levels:- if a resource is below the critical stockpile level, the trade AI will try to acquire this resource instead of giving it away;- the AI will try to bring each resource above the desired stockpile level;- if a resource is over the maximum stockpile level, the AI will not try to import that resource anymore and some of it will be lost because of the “over stockpile limit loss”;

Page 67: Darkest Hour Development Diaries Archive

The “over stockpile limit loss” is proportional to the quantity of resource over the maximum stockpile level: if you're just above the threshold the loss will be minimal, but it will soon grow.How are the stockpile level calculated? First of all, they are dynamic and are set by the engine two days after the start of each game. The levels for energy, metal and rare materials are based on the IC whereas the levels for supplies and oil are based on the size of your Army. This means that the stockpile levels grow with the growth of the Industrial Capacity and the size of the Army of your country.But there are also over factors that can influence the stockpile levels, for example there are new modifiers for ministers and political sliders that influence the stockpile levels (as we've shown in Dev Diary 14),

Here are another screenshot and some of the code involved in the new trade and stockpile systems:Added optional stockpiles limit (can be set from misc.txt(“economy” section)).– New trade parameters in misc.txt (“trade” section):* Days between trade offers to a country* Delay in days on each game start/reload before allowing any new trades (AI, auto-trade and Diplomacy) 2 #0* Desired stockpile threshold* Critical stockpile threshold* Desired supply stockpile (for X days)* Desired oil stockpile (for X days)* Days to deliver resources from single trades* Percentage of max supplies that can be produced (using [total IC- IC for CG] as a base) and traded away by auto-trade (0.20)* Percentage of produced money that can be traded away by autotrade (0.20)* Merge trade deals. 0 = do not merge, 1 = merge all active trade deals except those that cannot be canceled* Manual trade deals (players only, Diplomacy). -1 = Disable manual trade deals,

Page 68: Darkest Hour Development Diaries Archive

[0 to 100] = Offer value threshold - AI returns 0 accept chance if bellow this* Percentage to over-import when below the desired threshold (0.20)* Stockpile. Values: > 0.0 - extra import (Percentage) on top of what is needed when "Stockpile" option is enabled for that resource, else export all other exceeding resources in order to import more; -1 = export all exceeding resources; -2 = export all exceeding resources and supplies; -3 = export all exceeding resources and money; -4 = export all exceeding resources, supplies and money; 0.30 #0.0* puppets send supplies and money to masters. 0 - disabled; 1 - send only supplies; > 1 -send supplies + money (when more then this value).* Auto-merge trade deals (optional – misc.txt).* Puppets max pool for oil, energy, metal and rare materials - give all above this value to the master. Use negative number to set max pool as percentage of the critical stockpile (for example -1.2 sets the max pool to 1.2 * critical stockpile). -1.2 #1000 * Multiplier on puppets critical supply stockpile - all supplies above THIS * puppet's critical supply stockpile can be sent to Master. Used when the previous setting is above 0.1.5 #1.5 – New modifiers in misc.txt (trade):* Critical oil stockpile threshold (in days). 30 # 1 month* Critical supplies stockpile threshold (in days). 15* Should puppets send supplies and money to masters? 0 - disabled; 1 - send only supplies (NOTE – only for neighboring countries!) when above the desired stockpile; > 1 -send supplies + money (when more then this value).0 # 0.* Puppets max pool for oil, energy, metal and rare materials - give all above this value to the master. 1000 # 1000

– New trade parameters in misc.txt (“diplomacy” section)* Relationship hit for cancel of a trade deal. Not used for trades between allies, puppet<->master, inactive trades or trades with efficiency less then 45%.* Relationship hit for cancel by players of trade deals that are set as permanent. Not used for trades between allies, puppet<->master, inactive trades or trades with efficiency less then 45%.* Force puppets to join their master's alliance (creating a new alliance if Master is not already in one). Check alliances each day. 0 – No

– New modifiers in misc.txt (“economy” section):* Peacetime Manpower Multiplier (multiplied on the other)1.0 #1.0* Wartime Manpower Multiplier (multiplied on the other)1.0 #1.0* Daily retired Manpower - percentage of the current MP pool0.0 #0.0* Military Strength to Total IC ratio during Peacetime for AI countries (do not build new units if above this ratio). Use -1.0 to disable this.-1.0 #-1.0* Military Strength to Total IC ratio during Wartime for AI countries (do not build new units if above this ratio). Use -1.0 to disable this.-1.0 #-1.0* Military Strength to Total IC ratio for AI major countries (multiplied on the other).1.0 #1.0* Stockpile limit. -1 = Disable, else = stockpile for days.-1 # -1* Over stockpile limit daily loss (percentage of the exceeding resource). 1.0 = 100%.0.0 # 0.0

– New/changed modifiers in misc.txt:* Wartime Desired Stockpile multiplier - multiplier on the Desired Stockpile for all resources and supplies when at war 1.0 # 1.0* New trade deals min effectiveness threshold - do not make new trades if effectiveness is bellow this value (0..100). Used by auto-trade 45 #45* Cancel trade deals if effectiveness is bellow this value (0..100). Used by auto-trade 33 #33* Stockpile limit multiplier for industry resources (energy, metal, rare materials). -1 = Disable, else = Desired Stockpile * this -1 # -1* Stockpile limits multiplier for supplies and oil. -1 = Disable, else = desired stockpile * this -1 # -1* Extra import (Percentage) on top of what is needed when "Stockpile" is selected for that resource. This also increases the Desired Stockpile for that

Page 69: Darkest Hour Development Diaries Archive

resource 0.30 #0.0 * Stockpile limit multiplier for industry resources (energy, metal, rare materials). -1 = Disable, else = Desired Stockpile (unmodified) * this -1 # -1* Stockpile limits multiplier for supplies and oil. -1 = Disable, else = Desired Stockpile (unmodified) * this -1 # -1

– New modifiers in misc.txt (trade section)* Peacetime modifier on desired oil import (it is a function of the max possible daily consumption which in peacetime is about 10 times more then actual consumption). 0.15 # 1.0 * Wartime modifier on desired oil import (it is a function of the max possible daily consumption which in wartime is about 20-50% more then actual consumption). 0.75 # 1.0 – Improved trade effectiveness recalculation for landlocked countries during war (trading through neutral countries or ports) and use closest ports between countries in the calculation. This model can be enabled from misc.txt (“mod” section).

– New modifiers in misc.txt (mod section):* Trade Efficiency calculation system and re-calculation interval selection. Any negative integer is number of days between trade efficiency calculations using default Armageddon system (-3 = 3 days). Any positive integer is the number of days between trade efficiency calculations using the new more intelligent but CPU demanding system. 0 is default Armageddon system, set to 1 day. 5 #0* Merge and relocate provincial depots to the best province in the area. This is new and more intelligent but CPU demanding system. 0 - Disabled (use the old system). Any positive integer is the number of days between areas analyzing using the new system. 7 #0

New modifiers in misc.txt (economy section):* Max provincial energy/metal/rare materials depot size. 9999 #9999* Max provincial oil/supplies depot size. 9999 #9999* Max Manpower. 9999 #9999* Desired provincial stockpiles for oil and supplies (needed to supply friendly units in that area for X days). Used by autoconvoying. 7 #7* Modifier on convoy transports capacity - higher this modifier is, more resources could be transported. 1.0 #1.0

– New (modified) option in misc.txt (trade section) - Puppets max pool for oil, energy, metal and rare materials - give all above this value to the master. Use negative number to set max pool as percentage of the critical stockpile (for example -1.2 sets the max pool to 1.2 * critical stockpile). -1.2 #1000– New modifier in misc.txt (trade section):* Multiplier on puppets critical supply stockpile - all supplies above THIS * puppet's critical supply stockpile can be sent to Master. Used when the previous setting is above 0. 1.5 #1.5 * Auto-trade (and AI) single resource trade deals (only at war when an ally badly needs a resource/oil/supplies and trade effectiveness is high enough). 0 - Disabled, 1…100 – Trade deal effectiveness threshold. 0.75 #0

Page 70: Darkest Hour Development Diaries Archive
Page 71: Darkest Hour Development Diaries Archive

DD17: Tech Tree Part 1Today and next week we're going to introduce you to our new tech tree, with a good analysis that I'm sure will help you on your first games. Be aware that not everything is finalized now so there may be a few changes on the released product.

Let's start from the infantry tech tree.

As you can see Infantry, Light Infantry and Cavalry start with a 1870 model. This has two reasons:1. to represent countries that do not have up-to-date technologies at the beginning of WWI; 2. to be able to easily expand the timeline;

You'll see on the other tech trees that many techs have a date before 1914. We hope the modders out there will appreciate it.

Light infantry represents earlier models of mountain infantry: they move slightly faster than regular infantry, consume less supplies and are superior in harsh terrain, so they are ideal for colonial warfare, but they also have low toughness and soft/hard attack. Marines are introduced in 1922 whereas Airborne Infantry in 1938. The first Motorized Infantry tech is introduced in 1935, as historically the first motorized division were created around this time. Mechanized infantry has to wait until 1942.The first Engineer Brigade is introduced in 1911 and better models will also give other bonuses (to TC and airbase construction for example).Finally the techs of the Supply/Logistics/Repair branch go from 1910 (Army Logistics) to 1955 (Modern Repair). This branch has been reworked and gives many different bonuses.

Armor and Artillery

Page 72: Darkest Hour Development Diaries Archive

Artillery is obviously one of those techs with many models that goes from 1911 (Light Field Artillery) to 1955 (Advanced Field Artillery), for a total of 14 models. Both Self-Propelled Artillery and Tank Destroyers are introduced in 1940.And now, something a bit different from the usual. The Anti-Tank Artillery branch will not create a new brigade, but instead it will give bonuses to the hard-attack of the Artillery Brigade! So if you want your Artillery Brigade to be effective against armored units you should research this branch. Moreover, thanks to our engine changes, the hard-attack bonus is immediate and there's no need for events to make it happen. We hope you will appreciate it. Something similar happens with the Rocket and Self-Propelled Rocket branches. Researching normal rockets will give a bonus to the soft-attack of the Artillery Brigade, whereas Self-Propelled Rockets will give bonuses to the soft-attack of both Self-Propelled Artillery and Tank Destroyers brigades.The Armoured Cars technologies span from 1911 (Prewar Armoured Car) to 1954 (Modern Armored Car), with 8 different models.As you can see there are three different branches for the Anti-Air technologies:

• Static Anti-Air, which gives bonuses to the anti-aircraft guns that can built in every province and to AA naval brigades;

• the usual Anti-Air Artillery brigade, which is introduced in 1918, near the end of WWI; • the new Self-Propelled Anti-Air Artillery brigade, which is introduced in 1940;

And now, let's talk about tanks! There are a couple of other tech tabs involved, but it's better to give you the complete picture here:

• first of all, the first Experimental Tank technology is placed in the Secret Weapons tab and its purpose is only to enable the research of the Super heavy WW1 Tank tech (on the Secret Weapons tab too): this tech will allow the building of the first model of the Super Heavy Tank brigade;

Page 73: Darkest Hour Development Diaries Archive

• after researching the first two techs from the Secret Weapons tab, on the Armour Tab you can research the Mid-Great War Tank 1917 tech, which disables the Super Heavy Tank Brigades and allows the building of the Heavy Tank brigade;

• after that, the Late-Great War Tank 1918 technologies activates the Light Tank Brigade (this change of brigade types can be confusing but we thinks it's a good and historical depiction of the birth of tanks as weapons);

• the Post WW1 Tank techs will disable the Heavy Tank brigade and create new models of the Light Tank Brigade;

• now we should take a look at the Land Doctrines tab: there you will find a tech called “Armored Division formations”. This doctrines represent the idea of creating Tank Division instead of Tank Brigades and is necessary for the creation of Light Armor and Medium Tank Divisions;

• after researching the Armored Division formations doctrine, in the Armor Tab from 1936 onwards you can research the Light Tank Divisions and then from 1939 the Medium Tank Divisions (which after WWII will evolve in the Main Battle Tank branch);

• from 1939 onwards it will also be possible to research a new Heavy Tank Brigade (5 models, up to 1955);

• in 1944 there is also a tech to create a new Super Heavy Tank Brigade (to represent the Tiger II for example), but there will be only this model;

Industry

The Agriculture, Manifacturing and Construction Engineering branches have been expanded to cover the entire timeline (approximately 1910-1964). The Agricultural techs now give bonus to IC and production of supplies rather than manpower. The Construction Engineering techs gives bonuses also to the construction of Nuclear Reactors and Rocket Test Facilities.The Census Tabulating Machine tech now is introduced in 1897 and this branch also activates and

Page 74: Darkest Hour Development Diaries Archive

upgrades the Fire Control Naval Brigade. The Encryption/Decryption branch is also extended to cover the DH timeline.The Radar branch starts with the 1936 tech Basic Decimetric Radar Warning Sites which enables the new Air Scramble mission. Later techs of this branch activate the Radar Naval Brigades (and enable the research of a new secret tech!).The new Medicine branch, which starts in 1910, increases the quantity of available manpower (relative manpower).Finally, the new Specialised Equipment branch gives bonuses to the land units in frozen, tropical, desert or rough terrain.This is not yet set in stone, but there will probably be decisions linked to these techs. For example researching winter equipment for both infantry and vehicles will enable the “Production of Winter Equipment” decision that will give even better bonuses to your troops (given enough time). Beware that it will be an expensive decision that should not be taken lightly!

Land Doctrines

First of all, there is a new branch of land doctrines dedicated to the Great War. There are two different path, the Leading by Orders Path and Leading by Task Path. Both of them start before WWI (in 1907) and lead to different post-WWI tech (in 1923), with the Specialized-branch tactical experience and Cross-branch tactical experience techs.Moreover, the 1926 Post Great War Unified Doctrines is a tech alternative to the whole WWI branch. Basically a minor country can choose to follow the whole WWI path and research all those doctrines or research only the Post Great War Unified Doctrines tech which gives almost the same bonuses (researching the whole WWI branch gives better bonuses, but is obviously more expensive).

Now let's take a look at the WW2 and post WW2 path. As you can see there are 5 different paths:

• Firepower Focus / Superior Firepower Path (US)

Page 75: Darkest Hour Development Diaries Archive

• Defensive Focus / Grand Battleplan Path (UK, FRA) • Mobility Focus / Blitzkrieg Path (GER) • Manpower Focus / Human Wave Path (SOV) • Light Infantry Focus / Minor Countries Path

The Grand Battleplan Path after World War II is united with the Superior Firepower Path (with the Modern Branch Interoperability tech). The Light Infantry Path post WWII gives access to only some of the common techs of the other 3 main paths (Night Vision Tactis, Aircavalry Doctrine, Special Forces Focus Doctrine).

The Armor Division Formation (necessary to activate the Light and Medium Tank Division, as explained before) can be activated by different land doctrine techs from different branches. For example in the Superior Firepower Path, it's the 1940 tech Integrated Support Doctrine that enables the research of the Armor Division Formation, whereas in the Blitzkrieg Path it's the 1937 tech Spearhead Doctrine that enables it.

And to close this Dev Diary, let's take a look at the extended tooltip: very useful to discover required and unlocked technologies!

Page 76: Darkest Hour Development Diaries Archive

DD18: Tech Tree Part 2

Aircraft

The first unarmed airplanes for reconnaissance are introduced in 1910 and they soon evolve in the first real Interceptors and MultiRole fighters during the Great War. Naval Torpedos Brigades are also activated and upgraded by the Interceptors and the Multirole branches. There are 16 different models for Interceptors and 13 for Multi-Role Fighters.The first Tactical Bombers are introduced in 1911 whereas the first generation of four-engine bombers are introduced in 1914 (and will evolve in Strategic Bombers and eventually Intercontinental Strategic Bomber in 1958). There are 13 different models for Tactical Bombers and 10 for Strategic Bombers.The first Naval Bombers are introduced in 1918 (9 models), the Air Transport Planes in 1926 (6 models) and the Close Air Support in 1934 (8 models). We've also introduced the Seaplane as a new Naval Brigade which increases the reconnaissance value of a ship. They are introduced in 1911 whereas the first Carrier Air Group is introduced in 1922 (9 CAG models).

Page 77: Darkest Hour Development Diaries Archive

Air Doctrines

The first Air Doctrines are introduced before the Great War, with the Powered Flight Concept followed by the Reconnaissance Plane Utilisation, the Air Duel Doctrine and the Bombdropping Doctrine.With the start of WWI these doctrines are refined and evolve with the introduction of the Close Airsupport Concept, the Naval Aerial Support and Maritime Attack Concepts and obviously the Flying Circus Doctrine.During the interwar period there are some doctrines that will lead you to the WWII doctrines which are the known techs you're already familiar with, take a look at their names and you'll see. Even if the names are familiar, they are not the same techs as they may have different bonus than what you'd expect.For the beginning of the cold War, we've created whole new branches of air doctrines. They are two paths for the post-WWII techs for interceptors and multirole fighters:- Defensive Air Superiority (Warsaw Pact and Asian States Doctrine)- Offensive Air Superiority (NATO / Israeli Doctrine)whereas for Tactical Bombers and CAS the following paths are available:- Bomber priority (Target Destruction Doctrine)- CAS priority (Land Units Destruction Focus, with focus on Jungle Operations)There are also two different paths for Strategic Bombers and Missiles:- Strategic Bomber Focus- Strategic Missile FocusThe Airborne Assault and Naval Bombardment doctrines do not have differentiated paths, but they both have their own post-WWII doctrines.

Page 78: Darkest Hour Development Diaries Archive

Naval

Destroyers starts as Torpedo Gunboats in 1885 and evolve into Missile Destroyers in 1955 (10 models).Light Cruisers start in 1881 and evolve into Missile Light Cruisers in 1953 (9 models).Heavy Cruisers start as Armored Frigates in 1873 and evolve intoMissile Heavy Cruisers in 1953 (9 models).Battlecruisers are introduced in 1906 and evolve into Modern Battlecruisers in 1951 (only 6 models).Battleships are introduced in 1874, become Dreadnoughts in 1904 and finally evolve in Modern Battleship in 1947 (10 models). The Super Heavy Battleships are introduced in 1937 and have only 2 different models.The first Converted Carrier are introduced in 1922 and evolve in the standard Carriers (8 models) whereas the Seaplane Carriers are introduced in 1912 and evolve in the Light Carriers (7 models).Submarines are introduced as Dive Boats in 1896 and evolve in Modern Submarines in 1955 (10 models).There are 4 different models for Transport Ships (this will probably be subject to changes).In this tab you can also see the ASW Naval Brigade (6 models) and the Naval Torpedos branch which increases the Convoy Attack and Naval Attack of Destroyers, Submarines and sometimes Naval Bombers (again, the bonus is immediate and no events/annexations are needed).

Page 79: Darkest Hour Development Diaries Archive

Naval Doctrines

The first Naval Doctrines are the Engagement Theories introduced in 1890. This branch will unlock most of the other branches.The Engagement Tactics branch is divided into two separated, mutually exclusive paths: Fleet-in-Being and Indirect Approach. I guess you might have expected that. Now, below Engagement Tactics you can find the Carrier Tactics, introduced in 1925. This is divided into two paths too, but they are not mutually exclusive, you can research both. The Scouting Focus path focuses on Carriers as part of a naval task force and the engagement with enemy fleet, whereas the Aerial Supremacy focuses on the CAG and the missions it can perform (so for instance it grants increased efficiency for Port Strike and Airbase Strike).The Naval Supremacy branch is focused on the defence of convoys and therefore it gives bonus to convoys, ASW and Naval Scramble. On the other hand, the Naval Interdiction branch is focused on Convoy Raiding and Submarine Warfare.Finally the Amphibious Warfare branch introduced in 1916 gives bonuses to Amphibious Assaults (well, obviously! ) whereas the Logistic Support branch introduced in 1914 increases the range of ships.

Page 80: Darkest Hour Development Diaries Archive

Secret Weapons

We've already talked about the first WWI Experimental Tanks in the previous Dev Diary. The other Secret Technologies that can be discovered in this tab are: Rocket Interceptors, Flying Bombs and Flying Rockets, Electronic Computers, Semiconductors and Transistors, Nuclear Bombs, Ships with Nuclear Propulsion (Battleship, Super-heavy Battleships, Heavy and Light Cruisers, Submarines and Carriers), Air Cavalry Divisions, Air-to-Surface Missile (ASM), Surface-to-Air Missile (SAM), Mobile Mines and Teletanks. The Mobile Mines and Teletanks techs do not activate a new unit, but give bonuses to Engineering and Light Armor Brigades respectively.

To close this Dev Diary, here are some information related to the new technologies and modding:- added 10 new research types: avionics, munitions, vehicle_engineering, carrier_design, submarine_design, fighter_design, bomber_design, mountain_training, airborne_training, marine_training;- Added 20 more Research Type (components): Maneuver Tactics, Blitzkrieg Tactics, Static Defense Tactics and Medicine, rt_user_x (x = 1..16)

# Use new Technology page layout - allow for more techs and better view. 0 - use vanilla; 1 - use new 1 #0 (Darkest Hour uses the new Technology page layout)# Max active tech teams at a time (cannot be more then 50). Note: New Technology page layout will be auto-set for values above 5! 5 #5# Min active tech teams at a time (available teams regardless of current IC) 1 #1# Required IC for each tech team above the min 20 #20

And of course, we've done a complete overhaul of all the tech teams for every nation, so expect new and different tech teams!

Page 81: Darkest Hour Development Diaries Archive

DD19: Generic DecisionsHello everyone, today we're going to talk about a new concept of Darkest Hour: the Generic Decisions!

As the Head of State and leader of you country, you have the power to take some important decisions that affect different aspects of your nation. The generic decisions (their name due to the fact that they're usually not country specific) can be divided into 3 different categories:

1. economic decisions; 2. decisions regarding your domestic policy; 3. military decisions;

Before taking a closer look at the generic decisions, please let us explain why we decided to introduce them:

• first of all, we wanted you to feel like an Head of State that has to take important decisions for his country: you're at the helm and you have to guide your country through these dark times!

• we also give to give more opportunities to medium and small nations: obviously they will have a harder time to take some of these decisions, but they will help them grow and fill the gap from the major powers!

• since these decisions usually require a good quantity of money, now money is a more important resource, especially since it's also a good idea to invest money in espionage, at least to have a better defense against the enemy;

So, let's see what important decisions you can take to lead your countries to victory!Economy

• Issue Currency: you can print new money if you're don't have enough; however, this move has the negative effect of increasing inflation which has the concrete effect of hurting your industry;

• Money Devaluation: this is the reduction in the value of a currency with respect to those goods, services or other monetary units with which that currency can be exchanged. As a consequence, your economy would be more competitive in foreign markets, slightly boosting your industry;

• Public jobs: this is an expensive program that aims at creating useful job for unskilled men. Even if expensive, this will result not only in reducing the unemployment and therefore pleasing the population, but also in creating new companies under the control of the government; free market economies cannot take this decision;

• War Bonds: war bonds are debt securities issued by a government for the purpose of financing military operations during times of war. War bonds generate capital for the governments which therefore usually appeal to patriotism and conscience to get its citizens to buy war bonds; this decision is available only for some specific countries;

• Ersatz Conversion: a shortage of rare materials can be overcome thanks to this process: the Ersatz Conversion is a costly process to produce rare materials in times of need; this decision is available only for some specific countries;

Domestic policy

• Press Censorship: democratic countries can enforce censorship in the press in times of war in order to hold back information that may harm the government; this also allows the

Page 82: Darkest Hour Development Diaries Archive

government to exert control over the population and prevent free expression that might foment rebellion;

• Invest in National Infrastructures: by investing in infrastructures, you're going to extend your road and railroad networks; this is will not only help and please the population, but it will also increase your capacity of transferring men and supplies for the Army in case of war; you will be able to choose between a limited, a comprehensive and a large investment; free market economies cannot take this decision;

• Invest in National Research: by investing in your universities and research centres, you will provide your scientists with funds and state-of-the-art tools, thus increasing their ability to discover new technologies; you will be able to choose between a limited, a comprehensive and a large investment; free market economies cannot take this decision;

Military

• Purge the Army: forcing the disloyal and unreliable officers in your army to resign will make sure that only the better and most trustworthy officers can lead your soldiers; this will raise their morale, even if the public opinion will not like it; this decision can be taken only by authoritarian governments (and not by Soviet Union if they've already taken the Great Purge decision);

• Wargames: you can train the officers in our Army thanks to use of wargames like Kriegsspiel; the simulations of war will make them increase their skills;

• Allow Foreign Volunteers: democratic countries can allow foreign volunteers in their army, and thus increase the number of recruits and the quantity of available manpower; however, these foreign recruits may have troubles integrating in their armies and this will lower the morale of their units;

• Purchase Licensed Unit: purchasing licensed units means equipping your armies with vehicles sold by other countries instead of produced by your own industry; this is a quick solution to equip new units with materials that your industry is not able to build or doesn't have the time to; this decision is not allowed for major countries (and for countries with large armies) and will allow the purchase of a limited amount of motorized divisions, armor divisions, interceptors wings and tactical bombers wings;

• War Propaganda: the aim of war propaganda is to influence the attitude of your population toward the war; this will make them stand united to support the government and endure the hardness of war and some of them will also be convinced to join the army;

And now a screenshot of a generic decision, with South America in the background. Oh, the "Reform Military Service" decision that you can see there will be introduced in a further DD as our mobilization system is based upon it.

Page 83: Darkest Hour Development Diaries Archive
Page 84: Darkest Hour Development Diaries Archive

DD20: Production screen & AIIt is time to talk about our enhacement to the Production screen and especially to the production AI!Here's a screenshot that will help you understand the changes (the red numbers are not in the game, they're there to help us explain the changes):

So, let's start with the enhanced sliders. The first checkbox (1) simply enables or disables the AI control over the production. You'll want this enabled 99% of the time.

The first set of checkboxes (2) are a further tuning to enable or disable IC allocation for the AI. So if it is disabled, the AI will never allocate IC on that slider.The second set of checkboxes (3) are very important and allow prioritizing some sliders over others. In particular, the sliders are divided in two groups. It is possible to to prioritize Consumer Goods over Supply Production and viceversa (in the screenshot, CG are prioritized). The AI will then use this choice in combination with the stockpiles. For example, if the supplies are above the critical thresold and CG are prioritized then more IC will be allocated to on CG (to produce money) whereas Supply Production will get only the IC necessary to not lose supplies. On the other hand, if Supplies are below the critical threshold, they still get some IC in order to reach the critical threshold (as in the screenshot). Production, Reinforcements and Upgrades are considered another group: in the screenshot above, Production and Reinforcements are prioritized over Upgrade. Since Production is prioritized, it gets the necessary IC (if there is enough!). What's left is given to Reinforcements and, if there's still some IC left, it is given to Upgrades. This system is easy to master and will allow you to instruct the AI on how to allocate the IC, giving you enough control without turning it in micromanagement hell. If for example you want money or supplies because

Page 85: Darkest Hour Development Diaries Archive

you want to enact a particular decision, you can prioritize CG or Supplies for a while until you've reached the wanted quantity and then change the priorities.

Let's take a look at the Production Queue now.First of all, it is possible to extend or shorten the serial production of units and building (4): in the screenshot above, the Graf Spee would have been completed on January 7th 1936 but with a click I extended the serial production of another Deutschland class cruiser (which will take 3 more years). There are three shortcuts available, as you can see from the tooltip displayed above: Shift will extended the serial build by 5 units, Control by 10 and Shift + Control to the maximum allowed number of units (usually 99). Moreover the completion date of the current unit/building in the queue for serial queues is now displayed (see red line).Next to + and - buttons to extend or shorten the serial production, there is a checkbox (5) which enables or disables the auto-upgrade of units. This means that if the checkbox is selected, then at the completion of the current unit the next one will be built as the latest possible model (at the expense of the gearing bonus). So for example, if the checkbox of the Graf Spee (Deutschland class cruiser, CA model 5) is selected, at its completion on January 7th a new unit would be built; however, it wouldn't be another Deutschland class cruiser, but the more advanced Admiral Hipper class (CA model 6). This choice however would reduce the gearing bonus so instead of October 1939 it would be completed on January 1940.Lastly, since now the production queue is a bit more crowded, we don't want the players to cancel the production of units because they clicked on the wrong button. So pressing on the cancel button (6) a window will appear to confirm or cancel the deletion (as you can see in the bottom right of teh screenshot).

As usual, we've added new tooltips to make it easier for the player to find the information he needs. Here's an example:

Moreover, a tooltip on the unit or on the brigade icon will let you know exactly which model you're producing. So for example you'll get information on the Deutschland class cruiser or on the Artilley model you'll build. And a tooltip on the value of a unit will let you know exactly which value it is.

Page 86: Darkest Hour Development Diaries Archive

Now, let's talk a bit about the improvement in the Production AI. In fact, the real improvements here are in the engine: the way it handles priorities and most importantly the way AI works with sliders and utilizes its IC. It is greatly improved an enhanced, making the AI country stronger as they are now able to make a better use of their IC and thus posing a better challenge to the human player. Here are some examples:

• now IC is used only by units in the queue that requires Manpower, so when there is no Manpower the AI will not allocated IC to units that require MP while keeping them in the queue; this alone is a great improvement for the AI;

• now the AI will not insert countless divisions on top of the list filling up the queue way beyond its IC and never completing anything;

• the AI that allocated IC to Supply production now take into account trades, extremely low supply stockpile and maximum consumption;

• the supply production is halted if the Supply stockpile is over the desired supply threshold; • new land units for production are prioritize only when its completion time is less then the

unit/building on top of the list; • new console command: “unitinfo TAG/world” that saves in savedebug.txt all units by type

(deployed and in production) and also oil and supply estimated consumption (by own or allied troops) for a country (TAG) or for all existing countries (world);

• fixed a bug on production cost calculation for units with 5 brigades (5th brigade was for free);

• fixed a bug on production cost calculation – policy bonus was applied twice for brigades; • allowed up to 10 items to be viewable at once in the production queue (was 8); • fixed many AI bugs with production of provincial AA:

• AA_batteries = atwar and not_atwar are correctly read from AI files now (only no/yes were read before);

• AA_provs was not used at all. Fixed so AA will be built only on provinces in that list;

• max_AA_level was not used at all. It is taken into account now;

Here's another screenshot of the production screen, this time from 1914! See you next week!

Page 87: Darkest Hour Development Diaries Archive

EDIT (MartinBG)We forgot to mention that the line upgrade/change option is fully moddable as it is usual for DH:# Enable production line edit (auto-upgrade and serial builds lengths): 1 - Enabled, 0 - Disabled 1 #0# Gearing bonus loss per level of upgrade for unit. Values 0.0 (0% or no gearing bonus lost) to 1.0 (100% or all gearing will be lost) 0.1 # -10% gearing bonus per level of upgrade# Gearing bonus loss per level of brigade/attachment (added for every upgraded br./att.). Values 0.0 (0% or no gearing bonus lost) to 1.0 (100% or all gearing will be lost) 0.05 # -5% gearing bonus per level of upgrade

Here is another production panel screen showing some tool-tips, CTRL/Shift shortcuts in use as well the correct unit stats (Org/Morale etc.) which use all current modifiers for the country so you would know exactly how good this unit will be even before ordering its training.

Page 88: Darkest Hour Development Diaries Archive

DD21: Mobilization systemToday, we’ll introduce to our Mobilization System.

Since the biggest task in creating a game is balancing it, the issue of manpower had to be carefully thought. Most previous systems using the Europa engine were more or less arbitrary for that reason, something about which we felt uneasy. Deeming that using real-life values and concepts could help (after all, a game is a – rather crude – model of the real world), we started to work on a new MP system.

The first step was to change the MP distribution on the map. It now follows the actual distribution of the world population around 1936 (at least between the countries, inner distribution is sometimes less accurate, depending on the sources we found), something that can be easily modded with the scenario files or the province.csv file. To make things simple, we used the ratio 1 on-map MP = 1,000,000 inhabitants IRL.Once this was done, it was possible to set realistic recruitment and mobilization systems. Once we logically agreed that 1 in-pool MP (the manpower actually used to make units) should stand for 1,000 men, we could make calculations to set realistic growth rates, and MP availability.

Nations of Darkest Hour’s era were mostly characterized by highly militarized societies. Many of them enforced a mandatory military service, with reserves liable to mobilization, and those which did not generally had an elaborated system of territorial forces, to make sure they could quickly have a strong military force at hand in case of war. After many thoughts and debates, we decided to take inspiration from this model.

For that purpose, we used the now defunct “professionalism/conscription” slider. Now called “mobilization/demobilization”, it reflects the level of militarization of a country, ranging from having no armed forces at all, to a fully mobilized population. Each step reflects a particular military system:

1. Demilitarized : the country has no standing army, its defense generally relies only on police forces or militia (i.e. Costa Rica).

2. Fully professional army : the country has a professional force of volunteers, it can build any military unit (i.e. USA at the start of the game).

3. Selective conscription or part-time military service : only a part of a class of age is incorporated for military service (i.e. USA after the Selective Service Act), or the whole class but for short instruction periods (i.e. Switzerland).

4. Conscription – normal term : the situation of most European countries in 1936. A whole class is incorporated for, generally, 1 year.

5. Conscription – extended term : the same as the previous but with a longer term – typically 2 years, (i.e. Germany from 1937 or 1938).

6. Conscription – long term : conscription of a whole class for 3 years (i.e. France in 1913) or even longer (but in that case it was often coupled to a selective conscription, i.e. USSR or at least Tsarist Russia IIRC).

7. Partial mobilization : often an immediate pre-war measure. Classes that had just accomplished their military service term are recalled under the flag, as they are generally liable for such a thing for a few years after the end of their term (in France it was called “availability” and lasted three years). Some reserve units are activated, reservists are sometimes called back too.

8. General mobilization : the standard wartime measure of that era. All men between 20 and 45/50 are mobilized (though in practice many remain in the civilian life, at least for some time), all reserve units are activated.

9. Extended mobilization : a further effort to face the bloody needs of war. Men previously left

Page 89: Darkest Hour Development Diaries Archive

back in their factories are transferred to the front, age limits for military service is often pushed to 18-50/55 years old.

10.Total mobilization : the supreme sacrifice, the last effort to put men on the battlefield. Every man fit for military service is mustered in, with teenagers of 15/16 and old men up to 60 or 65 also incorporated – often as a militia.

Please note that daily MP growth is now extremely slow in peacetime. In any army, while young men are regularly conscripted, others complete their active service duty and return to civilian life. Therefore, the actual growth of militarily available men in peacetime is proportional to the growth rate of the overall population – for the sake of simplicity we put it at the average, rounded value of world population growth between 1920 and 1940: 1% per year, divided between 365 days… a very low, but realistic growth, indeed.

The principle is that, when you need MP to expand your military and recruit new units while at peace, you must extend the duration of the military service. By doing so, you’ll receive a new class of age, that is, a small part of your male population that will be conscripted in your military – thus being available to form new units (in exchange for some dissent of course). Thanks to the new on-map distribution, the amount of manpower given by this will be proportional to the country’s population. Also, the proportions used for these calculations are taken from data about the mid-30’s armies, ensuring a more realistic system.

To accomplish this we improved the existing manpowerpool command: now it can add a percentage of the total manpower available in all the controlled national provinces:Improved manpowerpool command – added optional [when = 1/[0]] switch. When set 1 add the MP as percentage (value = x.x) of the MP in all controlled national provinces.

So for example passing from one-year conscription (level 4) to two-years conscription (level 5) will give you a quantity of manpower equal to 0.45% of the population of the national provinces under your control.

To avoid adding complexity to the engine, these reforms of the military system are driven by decisions, rather than by moving the slider directly. The generic decision will be available as soon as you’ll run low on MP. In peacetime, you can’t go beyond partial mobilization. General mobilization was an exceptional measure, only taken in case of serious crises, and the “mobilization is not war” principle most often proved delusional, as in 1914. Thus, except in specific situations simulated by events, you need to be at war to enact general mobilization and further steps. Since the mobilization-demobilization slider should only be moved by events, we added the ability to prevent a user from moving a slider:Added another option to policy_effects.csv for each policy slider: MANUAL_OR_ BY_INFLUENCE _MOVES (0 – no slider moves are possible except by events, 1 – manual slider moves are allowed too, 2 – moves by Influence are allowed too)

Modders will probably appreciate this possibility for their own projects.

But what can we do with all that MP? In real life, countries that mobilized their men at war often formed reserve divisions with them, generally in a few weeks. Though inactive, those divisions were generally in actual existence, merely as an administrative. Because in DH we previously chose to extend build times for divisions to a realistic level, we included these reserve divisions in the starting orders of battle. They appear severely understrength (to reflect their reserve nature) and with outdated equipment (reserve divisions were generally armed with older weapons). It’s up to the player/AI to reinforce these divisions once they mobilized.

Page 90: Darkest Hour Development Diaries Archive

This can be done thanks to a new command that lets you set, add or substract strenght to a unit and take/return manpower to the pool. Here's the code:Added new event command to change unit’s current STR (MP taken/returned from/to the pool). Applies to unit in redeployment or sent as expeditionary forces too: command = { type = strength which = all/land/air/naval/unit type when = 0/1 where = 0/1 [org = x.xx] value = +/- x.xx } which - specifies unit type(s) when - 0 – set STR value (if value = 0.0 then the this unit will be instantly deleted), 1 – add to STR value (final STR cannot be less then 0.01 or 1% and more then max unit STR, usually 1.0 or 100%) where - 0 – take/return MP from/to the pool. If there is not enough MP then the command is skipped. 1 – Ignore MP pool (MP not taken/added to it). value - 0.0 (0%) to 1.0 (100%). Can be negative if when = 1 org - Percentage of the current ORG that should remain if when = 0 (0.0 – set ORG to 0%, 1.0 – keep current ORG unchanged. Default is 1.0. NOTE: This value is modified by the actual STR change for each division). Set ORG to percentage of max. Org if when = 1

It is a very powerful command, with many uses. First of all, it can add manpower to units and subtracts it from the manpower pool and viceversa. Units are processed from a sorted list (ARM, MECH, MOT and some others get priority; reinf. priority check-box is also taken into account) one by one (some take MP, others could return MP, so the list is always processed to the end even if the current MP is 0), so if you have enough manpower for only 10 divisions out of 50, then only 10 will be reinforced. Moreover if a unit receives strenght it can lose organization (to simulate the arrival of reserves), but this change is proportional to the strenght added: a division that receives only 10% of its strenght will lose half the organization lost by a unit which receives 20% of its strenght.Moreover, setting strenght = 0 will delete the units, so with a single command you can instantly delete for example all the militias or all the air units of a country.

Here are some examples of how to use this new command: action = { name = "Set STR to 5% to land units" command = { type = strength which = land when = 0 where = 0 org = 1.0 value = 0.05 } #org unchanged } action = { name = "Set STR to 100% to land units" command = { type = strength which = land when = 0 where = 0 org = 0 value = 1 } #org reduced proportionally } action = { name = "Set STR to 5% to naval units" command = { type = strength which = naval when = 0 where = 0 org = 1.0 value = 0.05 } #org unchanged } action = { name = "Set STR to 100% to naval units" command = { type = strength which = naval when = 0 where = 0 org = 0 value = 1 } #org reduced proportionally } action = { name = "Set STR to 5% to air units" command = { type = strength which = air when = 0 where = 0 org = 1.0 value = 0.05 } #org unchanged } action = { name = "Set STR to 100% to air units" command = { type = strength which = air when = 0 where = 0 org = 0 value = 1 } #org reduced proportionally }

Page 91: Darkest Hour Development Diaries Archive

action = { name = "Set STR to 5% to all units" command = { type = strength which = all when = 0 where = 0 org = 1.0 value = 0.05 } #org unchanged } action = { name = "Set STR to 100% to all units" command = { type = strength which = all when = 0 where = 0 org = 0 value = 1 } #org unchanged } action = { name = "Delete all submarines units" command = { type = strength which = submarine when = 0 where = 0 org = 0 value = 0 } #org unchanged } action = { name = "Add 5 STR to land units" command = { type = strength which = land when = 1 where = 0 org = 1.0 value = 0.05 } #org unchanged } action = { name = "Remove 10 str from all land units" command = { type = strength which = land when = 1 where = 0 org = 0 value = -0.1 } #org unchanged }

That's all for now, but I'm sure you'll have a lot of questions about this, so feel free to ask them!

Here are a couple of screenshots showing how UK can increase its conscription level:

Page 92: Darkest Hour Development Diaries Archive
Page 93: Darkest Hour Development Diaries Archive

DD22: Countries Release and Rebel SystemsToday, we’ll introduce to our the changes and improvements that we made to the countries release and rebel systems.

First of all, we got rid of some hard-coded limitations to the automatic release system:• all government types can release puppets (previously only Democracies were allowed to

release countries); • puppets can be released at war too, but with reduced chance (previously that was allowed

only in peace); • removed requirement that no Axis countries should exist; • fixed a bug preventing release of countries with Communist and Fascist intrinsic_gov_type

(set in Revolt.txt). Such countries can be released from only by Communist and Fascist countries. Democratic countries (no intrinsic_gov_type set) can be released by any countries.

And then we started making a few changes:

• AI can release as puppets only countries specified into its liberate list. Liberate chances are: 15% in peace, 10% in war, 5% for colonial countries;

• removed dissent hit for the AI from country releasing; • only one country can be released at a time (checked every few days); • added new AI parameter – liberate_nation = { }. It is similar to liberate = { }, but determines

which countries the AI is going to relieve from puppet status (give them independence);

These changes are optional, we've added a new parameter to misc.txt (“ai” section):- Use new AI release rules – all countries can release puppets even when at war. 1 – Yes, 0 – No

Please note that now it is also possible to negotiate occupied, and not only owned provinces with your allies.

And now, let's take a closer look at revolt.txt. We've added a few useful parameters:

• added countries list that can liberate that country (no other countries can liberate it): country = { TAG1 TAG2 … TAGx };

• added a list of countries that prevent this country creation if any of those exist at the moment: NOT= { TAG1 TAG2 … TAGx };

• added a parameter that prevent a country from being liberated (unless it revolts or is given independence by event): liberate = no;

• added a list of claims that populates claimedprovinces list: claims = { PROV_ID …}; • min = X: allows release if at least X provinces of minimum list are controlled by releaser

country. By default (no entry or min = -1) it is equal to provinces in minimum list; • min_extra = X: allows release if at least X provinces of extra list are controlled by releaser

country. By default (no min_ extra entry) it is 0; • value = X.X (0.0 – 1.25): used by the old release model (when no min or min_extra are

defined). When “score” is above that value the country will be available for release. By default (no value) it is 0.51.

And now a few words about the country release logic. First of all, we kept the old release model which used a default score of 0.51. We've made this value moddable in revolt.txt and we've made a few change and bug fixes to improve this old release model:

Page 94: Darkest Hour Development Diaries Archive

• new country capital is counted even if it is a core for the liberator (gives +25% chance for liberation);

• non-controlled provinces can be used to trigger liberation even if all other provinces are cores for the liberator

• a country will be available for liberation if it has at least 0.51 (can be changed in revolt.txt – see above) final score (claims, cores and current capital excluded). Capital province gives 0.25 and (available minimum provinces / total minimum) provinces gives the rest;

• liberation takes into account liberator’s national and claimed provinces (these should not be transferred to the liberated country);

• on liberation claimed by the new country provinces will be also seceded if these are not claims, cores or current capital of the liberator and if they are owned (not just occupied);

We decided to keep the old model for compatibility reasons, but we've also also introduced a new, more flexible model, based on the min and min_extra parameters that we added in revolt.txt.

• if a country owns or occupies a province which is a core for one of its allies (and is not a core of a claim for the owner/occupier), it will automatically secede that province to its ally over time;

• a country can be liberated if at least X provinces (where X is the min = X parameter set in revolt.txt) from it's minimum = {} list are owned or occupied;

• no countries will be released if any of the provinces they need changed hands in the last XXX days (set in misc.txt);

• if minimum list is empty, but extra is not, then extra list will be used in place of the minimum. Otherwise extra list is not used.

• rebels still require all provinces in minimum = {…} list to be controlled by them to create the country and at least one province must be controlled for at least XXX days (set in misc.txt – this was hard-coded to 3 months);

We've also made quite a few changes to the rebel system. We've already introduced some of them before, but we're always working on this, so don't be surprised if we add a few more tweaks before the release.

• rebels army composition - chance for infantry over militia: 0 - only militia, 100 - only infantry, 50 - 50%/50% and so on (new modifiers in misc.txt - mods section);

• rebels army tech level, based on the available model in the country that controls the province (new modifiers in misc.txt - mods section):

• -1: only model 1 • 0: only the Latest model • other positive values: random model in the range from (latest model - THIS) to

(latest model); So, for example if the controlling country has infantry model 6 as its most advanced model and in misc.txt we set value 2, the rebel unit will be assigned a random model in the range 4 - 6 (from latest model minus 2 models to the latest model). We hope it's clear enough, please ask if you have doubts.

• revolt risk is now tied to province manpower: introduced max base (unmodified) revolt risk (optional, set in misc.txt);

• higher chance to rebel next to rebellious province; • occupied provinces have higher rebel chance too;

It might be worth to mention here that we also fixed a bug with lost air units on civil war outbreak (destroyed all air fleets located on revolted provinces): air units will now switch side on air base captured by revolted/regular ID countries.

Page 95: Darkest Hour Development Diaries Archive

In the first Dev. Diary, we said that Darkest Hour is a game by fans for the fans and that we wanted to stay true to the community. Well, this week we've seen a few posts that supported the idea that partisan activity should be dependent on the terrain type. We liked the idea and we decided to make this completely moddable, to let you adjust the values to your heart's content. Here's the complete list modifiers related to rebels that we've added to misc.txt (“mods” section):- Rebels army min. STR on creation: 1.0-100.0 – 100.0 #100.0- Rebels army max. STR on creation: 1.0-100.0- 100.0 #100.0- Rebels ORG regain (including when in combat) - 0.2 #0.2- Extra bonus for rebelling for every rebel controlled neighboring province - 5 #0- Extra bonus for rebelling for occupied enemy provinces - 5 #0- Extra rebel bonus for mountain terrain - 0 #0- Extra rebel bonus for hill terrain - 0 #0 - Extra rebel bonus for forest terrain - 0 #0- Extra rebel bonus for jungle terrain - 0 #0 - Extra rebel bonus for swamp terrain - 0 #0 - Extra rebel bonus for deserts - 0 #0- Extra rebel bonus for plains terrain - 0 #0 - Extra rebel bonus for urban provinces - 0 #0- Extra rebel bonus for provinces with Air or Naval bases - 0 #0- Return rebellious province to the original owner after X months if there are no rebel armies into the province anymore. - 30 #1000000 (never)

So, to sum up the content of this Development Diary, what you really need to know is:

1. we do not need events anymore to recreate post-war countries, the automatic release of nations can take care of that on its own;

2. rebels are stronger now (infantry, latest models, organization regain, revolts spreading to neighbouring provinces, etc.);

3. all is 100% moddable and fully optional. as always;

See you next week!

Page 96: Darkest Hour Development Diaries Archive
Page 97: Darkest Hour Development Diaries Archive

DD23: New Map 2.0 and Improved LogsWe've already introduced our new Map back in Dev Diary 2, on September 20th 2010 (it feels like a lifetime ago!). Don't worry, we didn't decide to use another map, that's our map and we'll keep using it. To be more precise, we've made a few changes in these past few months (some thanks to your feedback), but it's only a few provinces here and there, nothing major. What we're going to introduce now is a new, innovative improvement to our map: we added topographic layers!

As you probably know, there are 4 zoom levels in Darkest Hour (between whose you can switch with the mouse cursor by the way). Here's what we've added:

• Zoom level 1: this is the closer zoom level, no changes here; • Zoom level 2: this level shows topographic ocean with plain land (so that province names

can still be easily read); • Zoom level 3: this level show both topographic ocean and topographic land, with slightly

wider country border and without black edge; the province names have been removed; • Zoom level 4: this is the higher zoom level and shows both topographic ocean and

topographic land, without both province and country borders;

I have been trying to get ewphoenix123 to tell us a bit more about the new map, but it became pretty obvious soon that what he can tell is probably too technical and boring for most of you. And if we cut it down then it won't be not detailed enough to satisfy those few out there that are interested in map modding. Therefore as images are worth more than words, here we go, a picture from each zoom level!Zoom level 1

Page 98: Darkest Hour Development Diaries Archive

Zoom level 2

Zoom level 3

Page 99: Darkest Hour Development Diaries Archive

Zoom level 4

We're always working on improving Darkest Hour and we're happy to have been able to introduce this innovation since the release of DH! We hope you'll appreciate it!

And now, on a lighter note, something that will be appreciated by a far more restricted crowd (which won't be disappointed anyway): Improved Logs.We've added a new parameter in setting.cfg, which allows you to choose the level of debug written in the file savedebug.txt:0 # Extra debug logs (savedebug.txt): 0 = disabled, 1 = enabled, 2 = enabled + extra map statistics

Level 0 is the default level used by the players: not a lot written at this stage, so gameplay won't be affected in any way.Level 1 on the other hand will write a comprehensive list of information, but not many regarding the map. A decrease in performance can be noticed, so you should use this setting only to found problems or check for possible mistakes. It's very useful: for example thanks to this the Kaiserreich Team was able to find many wrong minister traits in their files, with a lot of misplaced ministers traits or ids. Here's an example on the kind of informations you can find here:Reading unit model files...{infantry ('db\units\divisions\infantry.txt'): 18 model(s) loaded (0 to 17)....}Loading minister personalities...The generic minister personality is loaded and set.Loading minister personalities DONE. 103 personalities loaded.Calculating minister personality values...{ ... }

Reading distances from map\map_1\airdist.tbl... Done! (2760 provinces read in 16 ms)Reading map\map_1\navaldist2.tbl... Done! (1378 naval provinces, Read distances = 1898884)

Page 100: Darkest Hour Development Diaries Archive

Loading Ministers (Mods\Darkest Hour Full\db\ministers.txt){Mods\Darkest Hour Full\db\ministers\ministers_afg.csv...}Loading Leaders (Mods\Darkest Hour Full\db\leaders.txt){Mods\Darkest Hour Full\db\leaders\afghanistan.csv...}

Parse events file: Mods\Darkest Hour Full\db\events\AI\AI_GER.txt...{Loading event #3003001......}

Scenario Validation (provinces)...Done. No errors found.

Loading Tech Teams (Mods\Darkest Hour Full\db\teams.txt){Mods\Darkest Hour Full\db\tech\teams\teams_afg.csv...}Processing (124) Decisions...{ To Events (AI) (CHI): 'The Fading Sun' (2012004) WARNING! Event'Produce Winter Equipment' (9000000) is set as DECISION, but has no COUNTRY!!! ...}{Used MPCountry;Dep. Land;Dep. Navy;Dep. Air;Dep. Total;Prod. Land;Prod. Navy;Prod Air;Prod. Total;MP Assigned Total;MP Pool;MP Total;United Kingdom;157.38;121.25;3.88;282.51;0.00;12.55;0.00;12.55;295.06;20.00;315.06;...}

{Setting up AbyssiniaSetting Capital AbyssiniaGoverment AbyssiniaMilitary Scores - Total(Army/Air/Naval): 92.80(90.47/2.33/0.00) , Total IC: 3.00, Ratio = 31.03units doneSetting up Abyssinia DONE}{Setting up Afghanistan...}

Obviously there are no errors reported (just a warning, but it's correct, don't be afraid!). But please trust us when we say that this will be a useful tool in tracking down problems and mistakes.

Level 2 of the improved logs contains all the information of level 1 plus a lot more regarding the map, starting with a detailed report on the connections and sea provinces assigned to each province:####### ADJACENT PROVINCES REPORT #######{#0 ((Embarked)) - 0:

#1 (Reykjavik) - 2:

Page 101: Darkest Hour Development Diaries Archive

;3;Akureyri ;2664;The Westman Islands

#2 (Torshavn) - 1: ;2676;Faroe Islands

#3 (Akureyri) - 3: ;1;Reykjavik ;2664;The Westman Islands ;2665;Grimsey Island

#4 (Stornoway) - 2: ;2716;The Hebrides ;6;Inverness

#5 (Scapa Flow) - 2: ;6;Inverness ;2685;Orkney Islands

#6 (Inverness) - 6: ;5;Scapa Flow ;7;Aberdeen ;8;Fort William ;2685;Orkney Islands ;2716;The Hebrides ;4;Stornoway...

This is followed by a LIST PROVINCES BY CONTINENTS report, a LIST PROVINCES BY REGIONS report and a LIST PROVINCES BY AREAS report. No example here, their content is obvious. After those, there is a report on WORLD RESOURCES:{Copy and paste to a new file and change its extension to CSV.Open in Excel and sort by columns;ID;Name;Area;Region;Continent;Controler;Owner;IC;MP;Oil;Metal;Energy;Rares;Infra;AirF;Port;LF;CF;AA;Radar;Rocket;Nuclear;;1;Reykjavik;Iceland;Iceland;Europe;Denmark;Denmark;0.00;0;0.00;0.00;0.00;0.00;0.40;4.00;4.00;0.0;0.0;1.0;0.0;0.0;0.0;...}

After that, there is another report called MAP AND PROVINCES ANALYZING, which is focused on coordinates problems and will help you to track down errors in the province.csv like misplaced map icons or wrong seazones:Sea Zone Validation (ERRORS){Province 1677 (Majuro) has Sea zone 2425 (Ratak Islands), but it is not adjacent. No suitable sea zone could be found!!!}Provinces with beach, bit without a sea zone (ERRORS){}Wrong City position coordinates (ERRORS){Province 9 (Lerwick) has City coordinates set in 2684 (Shetland Islands).}Wrong AA position coordinates (ERRORS){}

Page 102: Darkest Hour Development Diaries Archive

It also contains a list of provinces by number of connections and a list of land provinces with 6 to 8 connections (to check the Holy Rule, you know - see Dev Diary 2 if you don't remember what it is!). After that there are some reports on Distances to Neighbouring Provinces, divided by distance. Finding two neighbouring land provinces distant 1500 Km is probably (but not always) a mistake! Finally, the map report is closed by a list of distances to all neighbouring provinces:#1 (Reykjavik) - 2: 252 km - #3 (Akureyri) 46 km - #2664 (The Westman Islands)

#2 (Torshavn) - 1: 114 km - #2676 (Faroe Islands)

#3 (Akureyri) - 3: 252 km - #1 (Reykjavik) 235 km - #2664 (The Westman Islands) 132 km - #2665 (Grimsey Island)

#4 (Stornoway) - 2: 140 km - #2716 (The Hebrides) 152 km - #6 (Inverness)...

No, wait, that's not all! There is also a Provinces Climate Analyzing report, that checks and suggest climates for each province!This is really the end, no more reports! Some of you may be bored, but the modders out there will appreciate it and will use it to improve their mods, so even the casual player can benefit from this.

And to close this DD, here are other pictures from the new map (zoom level 3 and 4 respectively):

Page 103: Darkest Hour Development Diaries Archive