Design | Le blog de JMM

Archives pour «Design»

Le Moral HistWarien.

Bonjour…

Ce bulletin va donner quelques informations sur le Moral d’HistWar qui joue un rôle considérable dans le jeu.
La première partie traite du calcul alors que le second paragraphe présente l’impact du moral sur les unités

Calcul du Moral

Chaque unité est gérée par un ensemble de paramètres dont le moral qui occupe une place essentielle dans HW.
Ainsi, il est tout à fait possible qu’une régiment de 2000 fantassins soit mis en déroute face à une unité d’effectif largement plus faible.

  • [++] impact positif élevé
  • [+]   impact positif
  • [+-] impact positif /négatif
  • [-]   impact négatif
  • [--] impact négatif élevé
  • Valeur intrinsèque de l’unité
  • Présence artillerie régimentaire (non dételé [+] ou dételé [++])
  • Niveau de fatigue [+-]
  • Unité subissant un bombardement [-]
  • Coefficient défensif (protection) [+]
  • Niveau de la perte globale [-]
  • Niveau de la perte instantanée [-]
  • Victoire lors de l’affrontement précédant [+]
  • Perte du chef d’unité [+-]
  • Perte du drapeau [-]
  • Unité vue par le chef d’armée [++]
  • Unité vue par un chef de corps [+]
  • Proximité de la Garde (opérationnel [++] ou en fuite [--])
  • Présence d’unité (opérationnel [+] ou en fuite [-])
  • Rumeur d’arrivée de renfort [+]
  • Présence de prisonniers adverses [+]
  • Menace latérale [--]
  • Rumeur sur la prise de la ligne d’opération amie [-]
  • Niveau de cohésion de l’unité [+-]

Ces paramètres ont chacun leur niveau de pondération.

Une unité vue par le Chef d’Armée voit son moral croitre de manière significative; à l’inverse, la fuite d’une unité de la garde impacte fortement le moral des unités, entrainant éventuellement un effet domino avec la désintégration de l’armée.

Utilisation du Moral

  • Influencer la capacité défensive de l’unité
  • Rejeter provisoirement ou définitivement un ordre
  • Moduler le résultat lors de Corps à Corps
  • Activer le recul d’une unité
  • Activer la fuite d’une unité
  • Inhiber l’assaut sur une construction
  • Modifier l’initiative intrinsèque d’une unité
  • Modifier la réaction d’une unité face à l’adversaire (Combat, Attente, Recul, Fuite)
  • Interrompre une charge de cavalerie ou d’infanterie
  • Moduler la capacité d’une unité à poursuivre après un engagement gagnant

Le Moral d’un corps prend en corps le Moral des unités : Gérer l’avance d’un corps (Suite, Attente, Replie)

Au regard du nombre de paramètres pris en compte, il apparait clair que le joueur perd en partie le contrôle de chaque unité.
Il doit donc se concentrer sur l’organisation de son armée, et placer au mieux le Chef d’Armée pour apporter un bonus aux unités.Il apparait aussi que la Garde doit être employée dans de bonnes conditions… son sacrifice pourrait être très dommageable à l’armée.

Enfin, quand le joueur décide de contrôler les unités, il doit prendre en compte le Moral pour savoir si l’unité possède la ressource morale pour exécuter l’ordre.
Par exemple, il n’est pas pertinent d’envoyer un ordre d’attaque à une unité dont le Moral est inférieur à environ 2/3 (66%)… au risque de la voir rapidement se replier.

Pour conclure, comme le contrôle total est difficile et que la gestion de l’imprévu s’impose.. Gardez toujours une réserve d’au moins 20%. Elle sera très souvent utile.

JMM

 

 

Bonjour,

L’évolution de l’IA Grande Tactique (IA-GT) est une nécessité absolue.
Je n’ai pas vraiment trouvé de temps pour le faire jusqu’à maintenant.. mais je crois que c’est le moment maintenant.

Le moteur  interne est enfin arrivé à maturité après plusieurs années d’amélioration mais aussi parfois de récession.
Modifier le code entraine parfois de nouvelles erreurs… Corriger un bug permet parfois d’en voir émerger 2.

Pour revenir sur le sujet central de ce billet.
L’IA-GT va évoluer avec un objectif unique : mettre plus de  pression sur le joueur.
Plusieurs actions sont envisagées :

  1. Utiliser de manière intensive les ordres de reconnaissance,
  2. Eviter les attaques frontales face à l’artillerie,
  3. Utiliser au mieux l’artillerie tout en assurant sa protection efficace,
  4. Adapter le plan tactique en minimisant les mouvements de troupes, origine des confusions,
  5. Identifier les « trous » dans la ligne adverse avec pour objectif de réaliser des prises de flanc.
  6. Gérer au mieux la Réserve

Toutes ces améliorations seront intégrées aux version HistWar : Les Grognards et HistWar : Napoleon.

Le prochain billet traitera de la gestion du Moral dans le jeu.

JMM

 

 

Bonjour,

Quelques informations sur l’IA Grande Tactique (IA-GT)…

Cette IA est activée seulement quand le joueur joue contre le PC. Elle remplace donc un joueur humain.

La conception initiale reposait sur plusieurs règles:

  1. l’IA-GT joue avec les mêmes informations que le joueur humain : elle ne sait rien de plus que son adversaire.
  2. Une conséquence : elle ne triche absolument pas; de plus l’IA de corps (1) ne sait pas si les ordres reçus sont envoyés par le joueur ou l’IA-GT.
  3. Les ordres utilisés par l’IA-GT sont les mêmes que ceux du joueur; l’IA-GT n’utilise pas les ordres d’unités sauf l’ordre de reconnaissance.
  4. En premier lieu, avant même que le joueur ait placé ses troupes, IA-GT évalue le terrain et définit son plan tactique initial. C’est une des grandes difficultés de développement puisque le joueur peut créer des cartes et l’IA-GT ne peut pas s’appuyer sur l’expertise humaine; c’est donc à elle de « comprendre » le terrain.
  5. Une fois le plan tactique créé, le programme recompose les corps, sauf si l’option « conserver l’odb » est activée, avant d’affecter les ordres aux chefs de corps. Quelques règles sont définies pour ces affectations. Une réserve est toujours mise en place et veille sur les lignes d’opération.

Une amélioration a été apporté sur l’IA-GT; à cette fin un ordre spécifique de Corps a été ajouté. Cet ordre permet d’attaquer un corps adversaire quand celui çi est en difficulté. Il permet alors d’exercer une forte pression. C’est actuellement la seule réaction de cette IA-GT.

La prochaine contribution portera sur la présentation de l’évolution de l’IA-GT. On verra que l’objectif est d’introduire une forte réactivité qui permettra :

  1. de mieux utiliser les ressources,
  2. d’éviter à des corps de se consommer face à de l’artillerie par exemple,
  3. de favoriser le chaos chez l’adversaire par des ajustements du plan tactique.

A suivre ici…

JMM

(1) il existe 3 IA actuellement : IA-GT, IA de Corps et IA régimentaire.

Issue de l’histoire d’HistWar, une interview de 2012 portant sur l’IA en général, et son intégration dans le jeu…

Questionné par le site de référence du Wargame français, c’est par ici… (en français et en anglais…)

http://www.wargamer.fr/ia-t-il-un-wargamer-dans-mon-pc-le-cas-dhistwar/

Par ailleurs, une petite séance de brain-storming pour trouver un nom à cette partie du programme, cette partie cachée qui gère les entités…

VICTWAR… pour VIrtual Clash Tool… en charge de la VIsion, du Combat et des Trajectoires.. bref les 3 fonctions de base du moteur.

Promis, le prochain billet parle des ordres des unités opérationnelles de VictWar… ou comment bien comprendre comment cela fonctionne.

JMM

Les lignes défensives jouent un rôle essentiel dans l’histoire et HistWar.

Ce billet dévoile le modèle utilisé pour simuler des engagements dans des zones construites.

Il existe six types de construction dans le jeu :

  • hameau,
  • ferme,
  • village,
  • ville,
  • château,
  • redoute,

chacune avec ces paramètres spécifiques précisant son bonus défensif et sa résistance au bombardement.

Une fois la construction investie, un régiment se déploie sur les 4 cotés avec un taux d’occupation (*) dépendant de la menace.

Le pourcentage de l’effectif en défense qui se déploie face à l’attaquant dépend du nombre d’unités en attaque et est ajusté constamment.

  • attaque sur un coté : 70%.
  • attaque sur deux cotés : 40%
  • attaque sur trois coté : 30%
  • attaque sur quatre coté : 25%

Ainsi, il est toujours préférable d’attaquer avec 2 régiments d’infanterie après avoir préparé le terrain par un bombardement préalable.

En effet, un régiment de 1000 fantassins défendra le coté attaqué avec 700 hommes. En cas d’attaque double, seulement 400 fantassins seront opposés sur chaque secteur attaqué.

JMM

(*) la représentation graphique ne tient pas compte de cette répartition…

 

Evolution du GamePlay

HistWar va proposer au joueur de gérer certains ordres générés par l’IA.

Ces ordres couvrent 3 aspects différents:

  • ordre aux unités d’artillerie de réagir face à une menace (mettre en batterie, se replier, …)
  • ordre aux unités de cavalerie de poursuivre des fuyards.
  • ordre aux unités de porter un support à une unité en difficulté.

Actuellement, l’IA s’appuie sur la doctrine définie par le joueur  pour répondre à l’occurrence de différents événements.

A partir de la version 03x, le joueur pourra

  • conserver le modèle initial et déléguer à l’IA de gérer les ordres ci-dessus définis.
  • prendre en charge la gestion des ordres que l’IA soumettra. Ainsi, il pourra rejeter  l’ordre ou encore choisir un autre intervenant.

L’interface du jeu permettra , pour chacun des 3 groupes, de choisir le mode Doctrine (délégation à l’IA) ou  Manuel (gestion par le joueur).

Il est probable que cette procédure sera ensuite affinée pour éviter de « noyer » le joueur sous les requêtes en conjuguant Groupe et Corps. Par exemple, il sera possible que les ordres à l’artillerie soit prise en charge par la doctrine (mode Doctrine) pour certains corps et gérés par le joueur (mode Manuel) pour d’autres corps.

JMM

Pour ceux que cela intéresse éventuellement, une répartition en volume des diverses fonctions principales du moteur du jeu.

Actuellement, le source représente environ 1 million de caractères… soit environ 50 mille lignes ou encore 500 pages de listing.

Le programme peut être décomposé en 6 groupes

  1. Grande Tactique et Tactique
  2. Perception de l’environnement (moteur CMT pour Combat-Menace-Trajectoire)
  3. Gestion des ordres, des Organisations, des Lignes Défensives
  4. Séquenceur : combat, consigne, menace, trajectoire
  5. Recherche au sens large (de place, de soutien, de priorité,…)
  6. Divers (initialisation, élaboration des vitesses, …)

La fonction grande tactique (déjà évoquée dans un précédant article) élabore le plan tactique en mode Solo.
Les trois IA tactiques (Chef d’Armée, Chef de Corps, Colonel)  prennent en charge la gestion au niveau hiérarchique approprié.
Les prises de décision s’appuient sur les données quantifiées par le moteur CMT.
Les décisions se matérialise sous forme d’ordres qui se propagent au moyen des fonctions  »communication des ordres »

Chaque entité (unité, canon dételé) identifie son environnement suivant trois filtres:

  • Combat, ou plus généralement vision de ce que que voit l’unité en tenant compte des différents masquages.
  • Menace mélangeant vision et acoustique. La menace est polarisée, indiquant ainsi si l’entité est Ami ou Adversaire
  • Trajectoire indiquant les obstacles potentiels pour le déplacement

Cette fonction est de loin la plus gourmande en ressource temporelle.

Gestion des ordres, organisation, lignes défensives

  • ordres: gestion complète de la transmission des ordres avec prise en charge des captures et des remises différées
  • organisation: à réception d’un ordre de corps, l’IA prend en charge l’organisation en tenant compte des paramètres et des contraintes
  • lignes défensives: cette fonction est partagée en 2 groupes
  1. corps: recherche de la meilleure ligne de défense en s’appuyant sur les obstacles présent le long de la ligne indiquée dans l’ordre
  2. unité: affectation des différents bataillons aux secteurs définis lors de l’étape précédente

Pour chaque cycle de 1 minute, le moteur traite séquentiellement les 4 étapes:

  1. évaluation des pertes lors des combats par la mousqueterie, le corps à corps et le tir des canons
  2. élaboration des consignes pour le déplacement
  3. identification des menaces et mise en place des réactions (avec modification éventuelle des consignes)
  4. mise en place de la trajectoire

La fonction de recherche, fortement hétérogène, prend en charge des recherches à finalité variable

  • placement pour une unité arrivant sur sa zone de déploiement finale
  • identification d’un espace adapté à un combat, surtout pour les mêlées de cavalerie
  • identifications des différents paramètres d’une zone donnée (type, coefficient défensif, vitesse de déplacement….)
  • évaluation de la qualité d’une ligne de déploiement (prise en compte des surfaces inaccessibles)
  • identification des unités pour le soutien et le support
  • évaluation des priorités, par exemple pour passer un pont

Et pour en terminer ce tour d’horizon du moteur interne, quelques chiffres indiquant la part relative des différentes parties du code

  • 6.5%   Stratégie
  • 6.1%   Tactique
  • 6.6%   CMT
  • 4.9%   Lignes défensives
  • 7.5%   Ordres
  • 6.1%   Organisation
  • 11.3% Menace
  • 5.4%   Combat
  • 2.2%   Consigne
  • 18.6% Trajectoire
  • 13.8% Recherche
  • 11.1%  Divers

JMM