Darkest Hour - Dev Diary #21 - Mobilization system

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

^_AC_^

Field Marshal
86 Badges
Feb 24, 2009
5.716
346
  • Victoria 2: A House Divided
  • Sengoku
  • Semper Fi
  • Victoria: Revolutions
  • Europa Universalis IV: Res Publica
  • Magicka
  • Leviathan: Warships
  • Knights of Pen and Paper +1 Edition
  • Victoria 2: Heart of Darkness
  • War of the Roses
  • Hearts of Iron IV Sign-up
  • Europa Universalis III Complete
  • The Showdown Effect
  • Warlock 2: The Exiled
  • Crusader Kings II: Conclave
  • 500k Club
  • Stellaris
  • Europa Universalis IV: El Dorado
  • Imperator: Rome Deluxe Edition
  • Crusader Kings II: Way of Life
  • Pillars of Eternity
  • Imperator: Rome
  • Europa Universalis IV: Common Sense
  • Stellaris: Ancient Relics
  • Knights of Pen and Paper 2
  • Europa Universalis IV: Cossacks
  • Hearts of Iron IV: Cadet
  • Surviving Mars
  • Stellaris: Synthetic Dawn
  • Cities: Skylines - Green Cities
  • Europa Universalis IV: Cradle of Civilization
  • Hearts of Iron IV: Expansion Pass
  • Stellaris: Apocalypse
  • Europa Universalis IV: Rule Britannia
  • Cities: Skylines - Parklife
  • Europa Universalis IV: Dharma
  • Stellaris Sign-up
  • Stellaris: Megacorp
  • Hearts of Iron IV: Death or Dishonor
  • Europa Universalis IV: Golden Century
  • Crusader Kings II: Reapers Due
  • Europa Universalis IV
  • Europa Universalis IV: Rights of Man
  • Tyranny: Archon Edition
  • Stellaris: Digital Anniversary Edition
  • Stellaris: Leviathans Story Pack
  • Crusader Kings II: Monks and Mystics
  • Stellaris - Path to Destruction bundle
  • Europa Universalis IV: Mandate of Heaven
  • Crusader Kings II: Holy Fury




Today, 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 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:
Code:
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:
Code:
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.

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:
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:
Code:
   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
   }   
   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! :)

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


 
Last edited:
Oof that's quite an overhaul!

So each country that has the draft, will now start with understrength reserve divisions in place?

Isn't it a bit annoying to have the reserves on the map? I would think that the default location for a reserve division should be the deployment pool, not the map.

As an afterthought: Do you have any plans to let the player define, say, mobilization plans, that can be enacted at the press of a button? If you press the button for a mob plan, then the reserve divisions would be reinforced to a pre-specified level, and deployed to a pre-specified location. The air force could also be redeployed to certain positions.

In SP this would be more or less useless, but in MP you could use this as a very useful shortcut - so that players can make use of these advanced features but without forcing them to pause the game. At the beginning of a session, or during lull times, a player would work on his mobilization plan(s), fine-tuning it and adding newly built reserve units into the plan... and when the game gets hectic, he can focus on strategic issues and the movements of his regular forces without having to pause and deploy 20-50 reserve divisions manually. It could also include redeployment plans for air force and naval units.

The 1914 scenario f.ex. could start with two plans predefined for the French player... "Plan XVII" and a more defensive "Plan XV". The US would have stuff like "War Plan Orange", "War Plan Red" which would automatically concentrate a player's forces against, say, Japan or the UK.
 
Last edited:
Looks great! I love the new commands and the system itself, too.

However, isn't 1 MP per 1 million men too little? I hope that we won't get many 0-MP provinces and that some will have e.g. 0,5 MP... Also, how much MP one can gain from conquering enemy provinces? Mobilisation only affects core ones, right?

And what about economic costs of mobilisation?

EDIT: I almost forgot - when can we enact a given mobilisation law? How is it determined?
 
Mobilisation only affects core ones, right?

Only national (core) provinces contribute to the direct mp gain you get from the decision. But non core provinces count to a degree to the constant mp gain you get while at war.


And what about economic costs of mobilisation?

There are initial costs to take the decision, but also maintained effects to your economy when you have an increased level of mobilisation.
Extended Mobilisation and a higher degree Total mobilisation can turn in a nightmare pretty fast.

EDIT: I almost forgot - when can we enact a given mobilisation law? How is it determined?

Depends on a combination of type of government, interventionism, global situation, and some specific cases for majors like the usa or japan.
 
Loving the sound of these mobilization changes, sounds just right!
Will you perhaps be adding something to do with training?
Perhaps to allow factions to dictate an amount of funding into training their units, more funding means better training perhaps means more org/morale or whatever.
A good example of this is the difference in training between German Panzer crews vs British tank crews, the Panzer men were given tanks and live ammo to use whilst pre-war Brits had to make do with mock up tanks made from bicycles.
A bit of a difference and it showed in France.
 
I think Partial Mobilization should be meet with diplomatic sanctions by neighbours: given that it's pretty much a pre-DOW measure, it should be considered an aggressive action and give a malus to diplo-relations in all the continent, with the exception of allies.
 
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.

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 4.5% of the population of the national provinces under your control.

So a nation of 70 million people will get a whopping 3.15 MP! :D