1- LA FORET DE BROCELIANDE -Ou la découverte fortuite du « principe d’attraction » des terrains.
Aaaah la forêt ! Parfois mystique ou légendaire, on ne saurait trop louer les bienfaits de ce paysage où « vivre caché » est la loi. Particulièrement appréciée lors des canicules, elle est généreuse de fraîcheur sous son épais feuillage.
Féconde de Champignons hallucinogènes, de recoins ou pratiquer la zoophilie sur animaux sauvages ou encore d’aires de repos discrètes pour cadavres encombrants, la forêt est décidément incontournable pour s’adonner aux plus raffinés des loisirs.
D’ailleurs, les soldats de Combat Mission ne s’y trompent pas: on les trouve plus attirés par les lisières qu’une mouche sur une joggeuse dans un fossé sylvestre !
Cette constatation m’est apparue de façon fortuite, tandis que je testais la vitesse d’une unité d’infanterie sur une bande d’herbe.
Point de passage éloigné, vitesse de course, et une bande d’herbe de trois cases en ligne droite entre deux forêts…
Et…regardez
1.1- Une découverte « par hasard »:
L’unité qui progresse au milieu d’une bande d’herbe de trois cases se déporte spontanément pour pénétrer en lisière de bois et continuer sa course sur ce terrain avant, in fine, de rallier son point de destination dans l’herbe.
Cela va sans dire, la vitesse à l’intérieur des bois est de beaucoup inférieure à celle qu’on peut obtenir sur l’herbe (et l’épuisement très supérieur). Le pathfinding n’a donc pas agit avec comme objectif un gain de temps ou d’économie de calories.
J’étais fichu pour mon test de vitesse sur l’herbe…mais je venais de toucher là à un phénomène assez fascinant, le coin d’une pierre philosophale qui permet de comprendre la logique hiérarchique du pathfinding.
Car le codage du pathfinding inclus des préférences en terme de type de terrain.
Avant de m’emballer, j’ai répété les tests sur des cartes plus « naturelles » car celle que j’utilisais alors était volontairement calibrée en bandes rectilignes.
Test 1 :
Sur ce groupe de onze hommes, six se déportent franchement dans les bois plutôt que filer droit dans l’herbe.
Test 2:
Là, c’est encore plus net: les quatre hommes pénètrent dans les bois.
Test 3 (même endroit, en modifiant la vitesse)
Ici, avec l’ordre mouvement plutôt que « courir », le même phénomène s’observe.
J’ai bien évidemment procédé à d’autres tests, et tous montrent de manière plus ou moins prononcée la même déviation.
Je savais à ce stade que la forêt clairsemée est « gratifiée » d’une priorité de parcours sur l’herbe.
Mais à partir de quelle proximité ? C’est une des questions que je me suis assez tôt posé et à laquelle j’ai tâché de trouver réponse.
1.2 Degré d’attraction du terrain « forêt clairsemée » par rapport au terrain « herbe »:
En lançant huit groupes sur une longue distance à une case d’intervalle (soit de 1 à 8 cases de distance du bois), les quatre premiers groupes se déportent, tandis que les quatre plus éloignés ne subissent pas l’emprise du bois et filent tout droit.
J’ai répété les tests en modulant la longueur du point de passage.
Lorsque le chemin en longueur est constitué d’un point de passage de :
1 à 3 cases : tous les groupes demeurent sur l’herbe.
4 à 7 cases: Le groupe à une case du bois y pénètre tandis que les autres filent droit.
8 à 13 cases : Les deux groupes les plus proches du bois y pénétrent (soit jusqu’à 2 cases)
14 à 19 cases : « Attraction » jusqu’à trois cases
A partir de 20 cases, un quatrième groupe (comme sur l’exemple illustré plus haut) dévie également dans le bois.
On peut sûrement imaginer qu’à partir de 25 cases, le bois attirent les unités à 5 cases de la lisière, mais on tracera rarement des points de passage aussi longs. La plupart du temps, on englobera d’une seule traite un maximum de 10 à 15 cases.
La solution pour éviter l’attraction est de tracer des points de passage d’une longueur inférieure à 4 cases lorsqu’on longe un bois, la marge de manoeuvre augmentant à mesure qu’on s’en éloigne.
L’utilité directe de cette constatation est pour le lecteur l’opportunité de maximiser les temps de parcours et de fatigue lorsque le chemin des unités est long et semé de bosquets. La tentation de « jeter » des points de passage démesurés en travers de la carte peut s’en trouver réfrénée…car toutes les solutions n’aboutiront pas au même résultat. La perte de temps minime aux points de passage se trouvant probablement largement compensée par le fait que les unités progresseront toujours sur les terrains voulus, les mieux adaptés pour une course rapide.
Il est probable que la programmation du pathfinding réponde à une hiérarchie de compromis entre rapidité/couverture… et la forêt clairsemée a le dessus sur la simple prairie.
Evidemment, les questions qui consument maintenant vos neurones sont, je le sais:
Mais y a t’il d’autres terrains « attractifs » ? Y-a t’il des terrains plus attractifs que les bois ? Et des terrains qui font même sortir les unités des bois ? Mais quelle est précisément cette hiérarchie ?
Carlos, il a déjà LA réponse à tout ça, et va bientôt vous les donner, car il a déjà accompli les « grandes manœuvres »
2- Tableau de priorité des terrains pour le pathfinding de l’infanterie-ou « THEORIE UNIVERSELLE DE LA GRAVITATION HORIZONTALE »
Hop, ayant bien conscience que Belges, Grenoblois et pensionnaires d’instituts peuvent tenter de nous lire, je vais vous confier quelques clefs pour piger ce tableau.
* 5 terrains testés/comparés (seulement) mais parmi les plus courants/contrastés. Je fais à l’intérieur de moi l’hypothèse que des terrains tels que « champs labourés » ou « herbe haute » doivent avoir les mêmes propriétés que l’herbe rase ou que le chemin de gravier ne doit pas être très différent du chemin pavé. Je n’ai toutefois pas vérifié.
* Le tableau se lit plus volontiers par ligne que par colonne.
* Vous trouvez sur chaque ligne le terrain de départ et sur lequel à été posé un point de passage à l’arrivée, de la même façon qu’on a fait pour l’herbe dans le post précédent.
* En colonne, le terrain alternatif à proximité du terrain sur lequel il est prévu que l’unité progresse (dans le post précédent, le terrain alternatif était « forêt clairsemée »)
* Si la case est rouge, l’unité de déviera pas vers le terrain alternatif, elle « filera droit » sur le terrain de départ, comme prévu.
* Si la case est verte, l’unité bifurquera vers le terrain signalé dans la colonne. J’ai même poussé le luxe à hiérarchiser les priorités du pathfinding à l’aide d’astérisques (plus d’astérisques = plus attractif) lorsque l’unité à plusieurs choix de terrain qui exercent une « zone d’attraction »*
Exemples de lecture:
* Une unité qui progresse en terrain herbe bifurquera vers la forêt clairsemée à proximité…mais vers aucun autre terrain testé.
* Une unité qui progresse en forêt dense bifurquera vers tous les autres types de terrain sauf les marais. Si elle a le choix, elle préférera d’abord la forêt clairsemée, puis la boue, puis l’herbe et enfin les pavés. Pour compléter ce dernier exemple, j’ai observé lors de mes tests une unité en forêt dense en sortir franchir trois cases d’herbe pour rejoindre une forêt clairsemée avant de revenir à destination en fin de mouvement. Une déviation de cinq cases qui snobe l’herbe et est conforme à notre tableau.
On tirera du tableau une hiérarchie globale avec deux « pôles » opposés:
* La forêt clairsemée est l’aimant ultime qui prend le pas sur tous les terrains…probablement considéré par le programmeur comme un meilleur rapport vitesse/fatigue/dissimulation.
* Les marais sont le repoussoir ultime. Une unité sortira toujours des marais si elle a un terrain qui exerce une zone d’attraction.
Il est possible de conclure qu’il y a en logique de fond une sorte d’algorithme à la recherche d’un compromis entre vitesse et couverture et évite les extrêmes négatifs de l’un ou l’autre de ces facteurs (d’où la bonne « côte » de la forêt clairsemée qui est moyenne sous les deux aspects et remporte ainsi la palme du compromis)
On a donc:
Forêt clairsemée > Boue > Herbe > Pavés > Forêt Dense > Marais
* Dès le prochain post, vous trouverez en détail les tailles des zones d’attraction de chaque terrain, qui ne sont pas équivalentes. Les tests sont déjà fait, reste à trouver une solution de présentation lisible.
NB: pour les possesseurs de Fortress Italy, le terrain rocailleux exclusif au paysage italien se comporte d’après nos rapides observations de façon similaire à la forêt clairsemée: couvert moyen, vitesse moyenne. Il y aura donc du monde tenté d’aller sucer les cailloux!
PS: Si au cours de vos parties ou tests vous tombez sur des éléments qui complètent (avec par exemple d’autres terrains) ou qui contredisent les données du tableau, n’hésitez pas à m’en faire part hein.
3- DISTANCES D’ATTRACTION DES TERRAINS
Je vous ai concocté deux tableaux-exemples de façon à être capable de les lire correctement.
Exemple 1:
Le terrain depuis lequel vous partez et progressez (c’est dire celui que vous trouverez sur l’ensemble du quadrillage du tableau) est qualifié sur la colonne de gauche.
La ligne du bas indique le terrain à proximité, vers lequel sont susceptibles d’être attirées les unités.
Sur la ligne du haut, le nombre de cases qu’il s’agit de franchir en un seul waypoint (chemin en ligne droite, n’imaginez même pas la complexité des tests en cas de parcours oblique…)
Sur la colonne à l’extrême droite, le rappel du nombre de cases qui vous sépare initialement (et au terme du mouvement) du terrain « attractif ».
Le « Parcours 1 » est un parcours de 6 cases à 3 cases de distance de la forêt clairsemée. Il débouche sur une case blanche. Celle-ci signifie que le mouvement se fera de façon rectiligne. La forêt n’exerce pas d’attraction sur l’unité.
Le « Parcours 2 » est un parcours de 6 cases à 2 cases de distance de la forêt clairsemée. Cette fois, le mouvement abouti à une case verte…ce qui signifie qu’en réalité, l’unité va suivre les flèches rouges pour rejoindre l’objectif. L’unité va « tomber » dans la zone de la forêt, victime de son appel.
Exemple 2:
Le parcours 3: 14 cases d’un seul tenant en forêt dense, à une distance de 4 cases de l’herbe; l’unité va suivre le chemin rouge
Parcours 4 : 6 cases de longueur à deux cases de distance… mais avec un waypoint à la case 4. L’herbe n’exerce pas d’attraction, car le waypoint « brise » le cumul des cases pour que la déviation s’opère. S’il n’y avait pas eu de waypoint intercalé, l’unité aurait dévié, comme précédemment.
A présent, place à la totalité des combinaisons, dont le nombre correspond aux cases vertes du « tableau de priorité » du post précédent.
Si vous longez une forêt clairsemée…
Si vous progressez dans les marais…
Si vous progressez en forêt dense…
NB: les astérisques indiquent les valeurs extrapolées à partir des premières (il y a donc possibilité d’une légère erreur). En effet, je n’ai pas effectué de test à plus de 4 cases de distance d’un terrain.
En attendant, bonne prise de tête !
4- MAIS POURQUOI TANT DE HAINE ? -Ou de l’intérêt marginal de ne pas toujours se soumettre au « meilleur compromis » du pathfinding…
Tant de détails peuvent paraître anecdotiques et -en cours action sur le champ de bataille- manquer de faire pencher de façon sensible la balance.
Pour partie, entre le nombre de neurones que vous allez carboniser à calculer les cases et les distances et l’efficience de ces savants calculs sur le terrain, il y a assurément un rapport défavorable. Le jeu n’en vaut sans doute pas toujours la chandelle.
En effet, on imagine mal avoir une prévenance démesurée à l’adresse d’une unité qui va s’échiner à quitter un marais pour gagner une terre plus accueillante, ou s’extraire de la boue pour marcher sur la route.
Dans ces deux cas, le pathfinding guide les fantassins du pire vers le meilleur, sans réserve d’avantages anciens sacrifiés aux nouveaux.
Il me semble que concrètement, il ne faut retenir que deux sortes de combinaisons qui peuvent nourrir une intervention humaine tatillonne: celles d’une part qui vont vous mener vers la forêt clairsemée lorsque vous êtes sur un terrain plus rapide et que la vitesse est essentielle à l’action; et d’autre part celles qui vont vous faire spontanément quitter une forêt dense lorsqu’une couverture abondante est votre principal objectif, et la vitesse au contraire accessoire.
Un comparatif de vitesse.
Vous observerez que je n’ai pas « forcé le trait » en vous proposant un parcours où la forêt s’étale sur toute la longueur. Le comparatif n’en est je crois que plus plausible. Chacun peut y reconnaître une situation qu’il est possible de trouver en cours de jeu.
A- Objectif: Rejoindre rapidement l’habitation…d’une seule traite:
B- Objectif: Rejoindre rapidement l’habitation…avec un waypoint intercalé:
19 secondes de différence…A la fois peu mais qui peuvent être cruciales dans l’action. Les sceptiques iront sortir de leur véhicule sur l’A6 et compter les yeux fermés jusquà 19 sur la bande d’arrêt d’urgence en imitant le Christ crucifié.
Une Question de couverture…
Nul besoin de comparatif cette fois. Il vous suffit de concevoir que rien n’est plus important que la dissimulation de votre mouvement. Il est pour l’ennemi impossible de vous localiser au coeur de la forêt, vous êtes par contre extrêmement vulnérable en terrain clair.
A nouveau, un waypoint intercalé (sans dépasser le « seuil » d’attraction par section) vous fera rester dans la forêt.
En guise de conclusion de cette série de tests, j’ajouterai qu’à l’instar de Danielle Gilbert pour la Pierre du Nord, nombre de personnalités illustres accordent un soutien inconditionnel à mes travaux…
Instructif 🙂
Si on veut aller vite, waypoint sur l’herbe
Si on veut rester à couvert, waypoint dans la foret
=> conclusion, ajouter des waypoints c’est mieux
Salut Emil’ 😉
Oui, ajouter c’est mieux…mais pas trop!
Une unité marque quelques secondes d’arrêt à chaque Waypoint, le temps de regrouper ses effectifs, puis repart. ce temps d’arrêt est donc d’autant plus important que l’unité est composée de nombreux hommes. A vue de nez, là où une ou deux secondes suffiront à trois hommes avant de continuer, ce peut-être quelque chose comme 7 ou 8 secondes (et même plus en terrain difficile) pour un Groupe de combat de 10 hommes.
En réalité, si l’on veut maximiser la vitesse et ne pas se laisser « attraper » par une forêt, Il convient donc de placer « juste les waypoints qu’il faut »
Sincèrement, je ne crois pas que cela vaille la peine de calculer au poil près chaque distance (je ne le fais pas en jeu) mais par contre, avoir simplement en tête qu’en terrain tourmenté (changeant) et sous la menace potentielle de l’ennemi, il vaut mieux « soigner » ses waypoints (quitte à en mettre un peu trop) plutôt que de tracer de grandes lignes droites, qui seront interprétées par les unités comme des blanc-seings pour faire un peu n’importe quoi. 🙂
Et diviser les GdC pour fluidifier les mouvements ?
Intéressant ! Ca change un peu ma façon d’aborder les terrains 🙂
Belle analyse, le débutant que je suis te remercie. Sacré boulot! 🙂