Page 1 sur 1

Dev Diary #21 - Mobilization system

Posté : lun. févr. 07, 2011 9:28 pm
par Fernando Torres
Image

Image Image

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 : Tout sélectionner

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 4.5% 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 : Tout sélectionner

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 : Tout sélectionner

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 : Tout sélectionner

   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:
Image

Image

Re: Dev Diary #21 - Mobilization system

Posté : lun. févr. 07, 2011 10:33 pm
par Emp_Palpatine
Intéressant!
J'ai hâte de voir ce que ça peut donner, l'absence d'un système crédible de mobilisation étant l'un de mes plus grand grief contre HoI1/2.

Re: Dev Diary #21 - Mobilization system

Posté : lun. févr. 07, 2011 10:55 pm
par Fernando Torres
On l'a préparé aux petits oignons juste pour toi ! :ok:
Blagues à part, cette nouvelle approche change vraiment la manière de jouer. Une fois qu'on a bien intégré les enjeux de ce mécanisme, il est très difficile de s'imaginer jouer sans car c'est bigrement immersif et réaliste, en tout cas à mon sens.

Re: Dev Diary #21 - Mobilization system

Posté : mar. févr. 08, 2011 12:45 am
par Emp_Palpatine
Et concrètement, est-ce que passer en mobilisation générale apporte des unités "gratuites" constituées de réservistes ou ce genre de choses?
Ou c'est seulement la croissance du MP qui est simulée?

Re: Dev Diary #21 - Mobilization system

Posté : mar. févr. 08, 2011 12:49 am
par rooom
En logique avec le devellopement, je pencherais pour un apport légerement différé (une semaine?) d'un montant fixe de MP proportionel au MP de base.
Enfin j'aurais fait comme ca mais en fait j'en sais rien de comment ca marche :chicos:

Edit: juste pour dire car j'avais omis de le faire: beau boulot :ok:

Re: Dev Diary #21 - Mobilization system

Posté : mar. févr. 08, 2011 8:05 am
par Fernando Torres
Tu as un bonus immédiat lorsque tu mobilises des réserves qui te remplit un peu tes divisions..de réserves et tu as le bonus à long terme qui est que tu peux enrôler beaucoup plus d'hommes.

Re: Dev Diary #21 - Mobilization system

Posté : mar. févr. 08, 2011 1:25 pm
par el_slapper
Et il y a un malus à augmenter la mobilisation, j'espère?

Re: Dev Diary #21 - Mobilization system

Posté : mar. févr. 08, 2011 7:09 pm
par Fernando Torres
Bien sûr

Re: Dev Diary #21 - Mobilization system

Posté : mer. févr. 09, 2011 2:07 pm
par el_slapper
lequel?

(j'ai l'impression de jouer à l'arracheur de dents, ou au bourreau spécialiste de la torture des temps anciens : tu vas la cracher, ton info???)

Re: Dev Diary #21 - Mobilization system

Posté : jeu. févr. 10, 2011 7:27 am
par Fernando Torres
En dissent et/ou en IC
Je ne suis pas précis parce que je ne veux pas que vous me preniez au mot alors que ce sont des choses en constant équilibrage jusqu'à la sortie !

Re: Dev Diary #21 - Mobilization system

Posté : mer. févr. 16, 2011 4:59 pm
par Pepsi
Personellement, j'ai un avis assez mitigé. Mauvais, sur le fait que ça change grand chose à la construction pré-39 (ic, ic (ic) et troupes juste avant la guerre avec les derniers modèles).
Par contre, ça me botte pas mal en début de guerre étant donné que ça permet d'éviter certains abus comme un uk envahissant l'allemagne avec des centaines de divisions, un soviet avec 500-600 divs en juin 41 ou encore un américain avec des centaines de divs et 10-15 porte-avions à l'entrée en guerre.


Par contre dans ce cas là, quel serait l'interêt du minitre qui donne +10pc MP ?

Re: Dev Diary #21 - Mobilization system

Posté : mer. févr. 16, 2011 7:08 pm
par GA_Thrawn
C'est pourquoi je suis de plus en plus convaincu qu'il faut démarrer non pas en 36 mais en 38 voire 39 ca évitera cette phase ultra chiante et prévisible de construction des IC. :roll:

Re: Dev Diary #21 - Mobilization system

Posté : mer. févr. 16, 2011 7:17 pm
par Emp_Palpatine
Mouais mais bon, y a des trucs rigolos à faire, comme l'intervention en Espagne, des coups d'États... :o:

'Fin après tout, moi je joue tout seul de toute façon, je fais ce que je veux. :mrgreen:

Re: Dev Diary #21 - Mobilization system

Posté : mer. févr. 16, 2011 8:38 pm
par Fernando Torres
D'un autre côté le jeu tourne très vite, 3 ans de paix, ça passe vraiment rapidement.
Pendant ce temps, je conseille de s'axer sur la production de ce qui formera le coeur de vos forces armées : blindés, paras, marine, aviation...

Nous travaillerons sans doute sur de nouveaux scenarios pour les patches, dont un scénario 1939 qui est effectivement particulièrement adapté au système du jeu.

Re: Dev Diary #21 - Mobilization system

Posté : jeu. févr. 17, 2011 2:54 pm
par el_slapper
Il sera possible de survivre avec la France?

Re: Dev Diary #21 - Mobilization system

Posté : jeu. févr. 17, 2011 6:16 pm
par Fernando Torres
En tout cas il n'y a pas de limitation arbitraire, les OOBs et mobilisations sont historiquement plausibles et les leaders ont été globalement revus à la hausse.

Re: Dev Diary #21 - Mobilization system

Posté : ven. févr. 18, 2011 2:36 pm
par el_slapper
Mais bon, ayant eu vent de tes IA, je ne commencerais quand même pas par la France, même si c'est mon pays favori. Une petite partie avec l'URSS pour commencer, histoire de voir venir avec quelques milliers de kilomètres de gras.....

Re: Dev Diary #21 - Mobilization system

Posté : ven. févr. 18, 2011 2:54 pm
par Pepsi
La WiF est fait pour les hoi maniacs, moins pour le grand public. D'où la difficulté plus hardue (que ce soit en solo ou en mp). Il n'y a aucun doute que l'IA sera plus soft sur DH. :ok:

Avez vous résolus le bug de conversion des unités d'un pays à un autre avec les corps.exps (que je t'avais déjà montré me semble) ?

Re: Dev Diary #21 - Mobilization system

Posté : ven. févr. 18, 2011 7:25 pm
par Fernando Torres
Pepsi a écrit :La WiF est fait pour les hoi maniacs, moins pour le grand public. D'où la difficulté plus hardue (que ce soit en solo ou en mp). Il n'y a aucun doute que l'IA sera plus soft sur DH. :ok:

Avez vous résolus le bug de conversion des unités d'un pays à un autre avec les corps.exps (que je t'avais déjà montré me semble) ?
Oui tout à fait.
Je n'exclus pas d'ailleurs de développer un petit mod spécial pour l'IA dans l'hypothèse où certains des "anciens" d'HOI souhaiteraient une difficulté accrue.

Non il n'a pas été résolu. Je l'avais intégré à notre base de données de bugs il y a longtemps mais nous avions tout perdu depuis un changement de serveur et je l'ai oublié. Pourrais-tu en faire une description en anglais que je puisse transférer au programmeur ?

Re: Dev Diary #21 - Mobilization system

Posté : ven. févr. 18, 2011 8:37 pm
par Pepsi
ça marche, je te l'envoie par mp. :signal:

Re: Dev Diary #21 - Mobilization system

Posté : lun. févr. 21, 2011 3:17 pm
par el_slapper
Ah oui, tiens, j'ai hérité de 40 divisions du Commonwealth quand le front de l'Est Français a rejoint le front de l'Ouest Américain, quelque par du coté de Tannu Tuva.

circonstances : la France a vaincu seule l'Allemagne. Les USA ont conquis la Chine Japonaise. l'URSS déclare la guerre, et se fait gangbanguer de tous les cotés. L'Australie, le Royaume Uni, le Canada et le Venezuela envoient des corps expéditionnaires à les alliés Américains. Le vénézuela m'en donne aussi 2 de mon coté.

(1)Je fais jonction avec les USA : Ils me passent toutes leurs unités en corps expéditionnaire, et je ne sais pas trop ce qui arrive aux corps exped non-USA
(2)J'annexe l'URSS, et me voilà avec 40 divisions anglo-canado-venezuelo-australiennes dont je ne sais que foutre. A noter que les 2 divisions vénézueliennes de mon coté ont été assimilées aussi. Les belges et hollandaises, elles, sont revenues normalement.

Re: Dev Diary #21 - Mobilization system

Posté : mer. mars 16, 2011 12:24 pm
par wstein
hello les amis,

je viens de lire l'analyse sur le plan de mobilisation.

il y a un point que je ne comprends pas.

on peut aujourdh'ui très bien modéliser l'ensemble d'une "classe d'âge" à savoir les hommes ayant 20 ans en 1939 ...cela donne une classe et un nombre de personnes (donc un chiffre MP) et ce pour chaque pays.
Après il faut bien admettre qu'un pourcentage de ces hommes travaillent...et cela peut se calculer en mettant en place une relation entre nombre d'IC d'un pays et manpower (il y a déjà cela dans AoD, plus on a d'IC plus on doit pour les faire tourner des ouvriers, ingénieurs, etc...p). le manpower disponible pour les forces armées peut être soit augmenté via la récupération d'une main d'oeuvre étrangère (une politique via des events par ex) soit par un recrutement forcé (là encore via un choix d'un joueur, exemple les femmes dans les usines) mais dans ce dernier cas, l'impact doit jouer sur la capactité de production du pays et pas sur l'argent ou le dissent même si ce dernier paramètre joue effectivement sur la capacité de production mais aussi sur l'efficacité au combat ce qui est plus sujet à discussion.

il faudra savoir si cela pourra être modifié.

Re: Dev Diary #21 - Mobilization system

Posté : mar. mars 22, 2011 5:47 pm
par Moradim
La mobilisation ressemblera a celle du mod 33 ?

Sinon je confirme , le scenarii 38 est sans doute le mieux et le plus équilibré pour jouer avec la version de base d'HOI2 reste a voir si dans DH vous avez lui aussi l'intention de la modifier en profondeur ?

Re: Dev Diary #21 - Mobilization system

Posté : mar. mars 22, 2011 9:32 pm
par Fernando Torres
Moradim a écrit :La mobilisation ressemblera a celle du mod 33 ?

Sinon je confirme , le scenarii 38 est sans doute le mieux et le plus équilibré pour jouer avec la version de base d'HOI2 reste a voir si dans DH vous avez lui aussi l'intention de la modifier en profondeur ?
Non le système est beaucoup plus flexible (du fait des avancées en termes de syntaxe des events et de l'introduction des décisions)

Il y a deux scénarios uniquement : 1914 et 1936

Re: Dev Diary #21 - Mobilization system

Posté : sam. avr. 30, 2011 7:56 pm
par griffon
tres intéressant de relire cela le jeu en main

vous avez "torché" un beau petit jeu Fernando :clap: