Par un post du 21 août dernier, Owlcat Games nous explique comment ils ont ajouté le combat au tour par tour à Pathfinder : Kingmaker. Ainsi, soit vous pouvez l’activer via les options de gameplay, soit vous appuyez sur la touche “T” en pleine partie à contrario d’un Pillars of Eternity 2: Deadfire qui demande de choisir en début de partie. Du coup, ce système est plus léger et plaira à tous, à n’en pas douter. Mais pour la compréhension du panel de prédiction c’est une autre histoire. En attendant, le but derrière cette mise à jour et aussi de rebooster les ventes. Est-ce que ce sera le cas ? À voir.

Une traduction s’impose donc, car ce post est réellement instructif. Long, très long … mais intéressant.

Introduction

Lorsque j’ai rejoint l’équipe de Owlcat Games début 2019, c’était en gros le travail de mes rêves : réaliser un jeu de rôle solo pour PC sans avoir à quitter la Russie ? Jusqu’à récemment, cela ne pouvait être qu’un rêve ! Il y avait juste un petit inconvénient : j’ai toujours préféré les jeux de combat au tour par tour à tous les autres genres, et Pathfinder : Kingmaker a été conçu comme un jeu où les combats se déroulent en temps réel avec une pause active. Tous les rêves ne peuvent pas se réaliser, n’est-ce pas ?

Faux. Lorsque la question du portage du jeu sur les consoles a été soulevée, nous avons vite compris qu’il fallait faire quelque chose pour le combat. La micro-gestion du groupe au combat, particulièrement importante aux niveaux de complexité élevés, est extrêmement difficile lorsque vous avez une manette de jeu au lieu d’une souris et d’un clavier. Bien sûr, nous pourrions essayer d’améliorer l’intelligence artificielle des personnages du joueur et la rendre personnalisable, mais cela ne semblait pas être la bonne solution : nous jouerions à la programmation de l’IA, pas à Pathfinder.

Puis nous avons eu la chance d’apprendre qu’il existait un mod qui a transformé notre jeu en un jeu au tour par tour, développé par l’un de nos fans – l’incroyable, talentueux et très dévoué Hsinyu Chan. Nous avons regardé le mod et nous avons convenu qu’il était brillant : le jeu s’est transformé sous nos yeux, et seulement pour le mieux (si vous aimez vous asseoir et penser à chaque mouvement, bien sûr). Cela a finalement fait pencher la balance en faveur de l’ajout officiel d’un mode au tour par tour dans notre jeu.

Nous avons obtenu l’autorisation de l’auteur du mod pour utiliser son code et avons commencé à l’implémenter dans le jeu. Mais ce n’était que le travail de base. Bien que le mod ait été étonnant, l’auteur n’avait pas accès au code source du jeu, donc il avait été limité dans ce qu’il pouvait faire. Et après tout, les exigences pour un mod de fan et pour les fonctionnalités du jeu officiel diffèrent beaucoup.

Pathfinding

La première chose que nous voulions régler était l’imprévisibilité totale de la trajectoire des mouvements du personnage. Le fait est que, lors d’un combat en temps réel, un personnage ne peut pas prédire définitivement sa trajectoire, car la situation peut changer pendant le mouvement, par exemple, un passage précédemment dégagé peut être bloqué. C’est pourquoi, lorsqu’il a trouvé le chemin initial, le personnage n’a pas tenu compte des obstacles dynamiques – principalement les autres personnages. Ensuite, si un personnage rencontrait un obstacle en se déplaçant le long du chemin, il essayait de le contourner à gauche ou à droite, en utilisant un algorithme distinct. Ce n’était pas très visible dans le chaos d’un combat en temps réel, mais dans un combat à tour de rôles, lorsqu’un seul combattant se déplaçait, ce comportement vous sautait dessus comme un chat lors d’un orage.

Voici comment cela fonctionnait : même si le chemin était complètement bloqué par d’autres personnages, celui qui se déplaçait s’approchait de la barricade vivante et la longeait, de haut en bas, jusqu’à ce que son tour soit passé. Cela ressemblait à un bug, alors qu’il s’agissait en fait d’un comportement programmé. Pour ne rien arranger, cette approche ne nous permettait pas de prédire et de montrer au joueur le chemin que le personnage allait prendre. C’est ce que nous devions changer.

Tentative 0 :

La solution évidente serait de parcourir virtuellement le chemin sans déplacer réellement le personnage à l’écran. De cette façon, nous pourrions obtenir leur trajectoire complète et la montrer au joueur. Mais c’était une impasse : la trajectoire résultante serait farfelue. Nous pourrions essayer de l’optimiser, de redresser les zigzags ou quelque chose comme ça, mais cette direction ne semblait pas non plus prometteuse. Oh et bien, retour à la planche à dessin !

BIG NEWS : Pathfinder : Kingmaker, explications du tour par tour12
Un modèle 3D pour naviguer

Le principal problème était que nous avons fait le repérage en utilisant une carte divisée en triangles (un “navmesh”). C’est une méthode très efficace et rapide, mais malheureusement, lorsqu’on l’utilise, il est très difficile d’apporter des modifications à la carte, par exemple pour marquer des sections bloquées par d’autres personnages. Cela nécessite la régénération d’une partie de la carte ou même de son intégralité. Nous ne pourrions pas nous permettre cela en temps réel. Mais en mode tour par tour où un seul personnage se déplace ? Pourquoi pas ?

Tentative 1 :

Nous avons essayé de mettre un espace autour des personnages qui serait infranchissable pour le combattant qui effectuerait un mouvement. Cette idée présentait quelques inconvénients importants. Tout d’abord, l’espace était assez grand, ce qui, dans certains cas, pouvait empêcher de s’approcher d’une cible, bien que cela paraisse possible. Deuxièmement, un grand personnage pouvait s’approcher d’un petit, s’arrêter et produire un énorme trou autour de lui – et le petit personnage pouvait se retrouver à l’intérieur de ce trou, ne pouvant alors plus du tout bouger. Mais l’idée a été complètement anéantie par le fait que l’algorithme de découpage des espaces ne fonctionnait pas : parfois, il découpait plus que nécessaire, rendant une partie de la carte impraticable. Nous avons essayé de mettre à jour la version de la bibliothèque que nous utilisions pour la recherche d’itinéraires, mais la situation a empiré : pour une raison inconnue, la nouvelle version rendait tous les tapis du manoir de Jamandi impraticables. Compte tenu de tous les autres inconvénients, nous avons décidé de la laisser tomber et d’essayer l’option suivante.

Tentative 2 :

Les triangles Navmesh sont mauvais pour enregistrer la position dynamique des personnages. Et qu’est-ce qui est bon ? Une bonne vieille maille carrée. Il est très facile de déterminer quelle case ou même quelles cases le combattant occupe et d’interdire à tous les autres de s’y déplacer. De plus, si les carrés sont assez petits, rien d’autre ne sera bloqué. Alors pourquoi ne pas utiliser la maille dès le début ? Parce qu’il comporte beaucoup, beaucoup plus de carrés que le navmesh ne comporte de triangles. C’est pourquoi la recherche de chemin à travers eux est beaucoup plus lente – trop lente pour le combat en temps réel, où tous les personnages veulent se déplacer tout le temps. Mais dans le combat à tour de rôle, un seul personnage se déplace…

Pour mettre en œuvre cette idée, nous avons dû ajouter à chaque carte du jeu un maillage créé à l’aide des données du navmesh. Nous ne pouvions pas utiliser des carrés de 1,5 m comme dans un jeu de rôle sur table – cela nécessiterait de recréer toutes les cartes, puisque personne n’avait un maillage de 1,5 m à l’esprit lors de leur création. Par conséquent, une porte de 1,5 m de large pourrait occuper deux carrés réels. C’est pourquoi nous avons réduit les carrés de 0,5 m chacun et essayé de faire correspondre autant que possible les zones de passage disponibles sur chaque carte pour que le pathfinding fonctionne.

BIG NEWS : Pathfinder : Kingmaker, explications du tour par tour12
Cubes rouges – carrés infranchissables de la maille carrée

Les portes étaient un défi distinct. Lorsque vous les ouvrez ou les fermez, elles changent la position de la zone infranchissable à chaque image de leur animation. Un code spécial permet de s’assurer que ces changements se reflètent dans le maillage.

Dans l’ensemble, nous sommes satisfaits de ce que nous avons réalisé, même si nous avons dû travailler très dur et même corriger quelques bugs dans le code tiers que nous utilisons, qui ne se manifestaient pas lors des mouvements en mode temps réel avec pause active. Mais la nouvelle méthode de recherche de chemin nous a permis de montrer au joueur comment son personnage se déplacerait exactement vers la cible choisie, et même de l’avertir d’éventuelles attaques d’opportunité en cours de route.

BIG NEWS : Pathfinder : Kingmaker, explications du tour par tour10
Prévision de la trajectoire du mouvement. Vert : Action de mouvement. jaune : Action standard. rouge : sections où le joueur obtiendra une Attaque d’opportunité.

Panel de prédiction

En ajoutant un mode tour par tour au jeu, nous voulions non seulement rendre le jeu plus agréable pour ceux qui préfèrent ce style de combat, mais aussi plus facile à comprendre en général. À cet égard, Pathfinder : Kingmaker n’a pas le système le plus simple, surtout si on le compare aux jeux de rôle modernes sur ordinateur, où un tour consiste généralement à deux actions simples : le mouvement et l’attaque, où l’attaque peut être remplacée par un mouvement supplémentaire.

Il y a au moins trois types d’actions importantes dans Pathfinder – Standard, Move et Swift. Et pour rendre les choses encore plus confuses, Move peut être utilisé non seulement pour le mouvement, mais aussi pour d’autres actions et même des sorts. En mode temps réel avec pause active, tous ces détails sont quelque peu cachés au joueur, bien qu’il soit nécessaire de les connaître pour jouer à des niveaux de difficulté élevés. Mais en mode tour par tour, ils sont essentiels, et les joueurs qui ne sont pas très familiers avec le système pourraient être surpris de constater que telle ou telle action est impossible selon des circonstances apparemment sans importance.

BIG NEWS : Pathfinder : Kingmaker, explications du tour par tour 09
Un panel de prédiction avec répartition des actions. Parfois, une action dans son ensemble n’est pas encore dépensée, mais il est déjà impossible de faire certaines choses dans le cadre de cette action (par exemple, après un déplacement de 5 pieds (soit 1,50 mètres, vous ne pouvez pas utiliser Move ou Standard pour bouger, mais vous pouvez les utiliser à d’autres fins). Dans ce cas, nous utilisons des icônes pour indiquer les options encore disponibles.

Nous avons décidé d’essayer de rendre la vie des joueurs un peu plus facile à cet égard et nous avons créé un panel de prédiction. Il s’agit d’un nouveau panneau qui n’apparaît en bas de l’écran qu’en mode tour par tour, qui montre ce qui se passera si vous donnez un ordre au personnage actuel. À première vue, c’est un élément d’interface plutôt trivial que beaucoup d’autres jeux ont, mais nous avons dû travailler très dur pour qu’il se montre d’utile.

Bien sûr, le problème clé était le fait que le jeu n’était pas initialement conçu pour un mode tour par tour. Les actions que les personnages effectuent ont été divisées en parties non transparentes pour le code externe. Par exemple, il n’y a pas d’actions “go” et “hit” séparées – à la place, il y a une commande “hit” qui signifie qu’un personnage se déplacera vers la cible jusqu’à ce qu’il l’atteigne et soit capable de frapper un coup. De plus, certaines actions peuvent donner lieu à d’autres actions. Deux choses ont été particulièrement douloureuses à cet égard : les sorts de toucher et la classe Cinétiste.

L’inconvénient des sorts de toucher (lorsqu’un personnage doit toucher la cible pour utiliser un sort) est que leur mise en œuvre peut être soit incorrecte, soit peu pratique. Si nous lisons les règles de Pathfinder, le personnage lance d’abord un sort, “active la charge”, puis il peut se promener un moment s’il le souhaite et faire d’autres choses jusqu’à ce qu’il touche la cible. Cela dit, dans le même tour où il lance un sort, le personnage peut essayer de toucher la cible en tant qu’Action Libre, mais dans les tours suivants, il devra faire une attaque standard et utiliser une Action Standard. À première vue, tout est assez simple, mais il y a une nuance : dans tous les autres jeux informatiques, le sort de toucher le plus couramment utilisé – la guérison – fonctionne différemment : vous sélectionnez une cible, vous vous en approchez, vous la soignez. Si nous mettions en œuvre des sorts de toucher de la manière décrite dans les règles, c’est-à-dire que le sort est d’abord lancé sans cible, puis nous devons la sélectionner, la majorité des joueurs ne le comprendrait pas.

BIG NEWS : Pathfinder : Kingmaker, explications du tour par tour102
Aethal lancera un sort Infliger des blessures légères en tant qu’Action standard, se déplacera vers la cible en tant qu’Action de déplacement, et essaiera de la toucher en tant qu’Action libre. L’économie du mouvement Pathfinder à l’œuvre !

En conséquence, en mode Temps réel avec pause active, les sorts de toucher tentent de faire croire qu’ils ne sont pas différents de tous les autres. Le joueur choisit un sort, puis une cible, et quelque chose commence immédiatement à se produire. À savoir : le joueur commence à se déplacer vers la cible, à une certaine distance il lance le sort, puis continue à se déplacer avec une charge en main. Si pendant ce temps la cible a disparu (morte, par exemple), on peut sélectionner une nouvelle cible, en utilisant l’icône des sorts, qui apparaît dans la barre d’action (ce n’est pas la meilleure solution, car personne ne le remarque jamais, et les joueurs ont l’impression que le sort a été gaspillé).

Nous ne pouvions pas changer complètement le fonctionnement de ces sorts en mode tour par tour, c’est pourquoi nous avons dû nous adapter et apprendre au Panel de Prédiction à prendre en compte toutes les particularités de ce type de sorts. Cependant, nous avons introduit un changement : en mode tour par tour, le personnage qui utilise un sort de toucher lance d’abord le sort sans se déplacer, et ne se déplace qu’ensuite, si nécessaire.

Le problème de la classe Cinétiste est à la fois plus simple et plus délicat. Il est plus simple à décrire. Le problème des Cinétistes est qu’ils sont la seule classe qui peut faire quelque chose pendant plus d’un tour. La compétence “Gather Power” (accumuler de l’énergie), qui réduit le coût des autres compétences du Cinétiste, peut prendre une, deux ou trois actions, et l’utilisation complète d’une compétence peut prendre jusqu’à deux tours complets.

Là encore, nous avons dû nous écarter des règles officielles de Pathfinder pour des raisons de familiarité avec les joueurs de RPG sur ordinateur. En fait, Gather Power n’est en aucune façon lié à la compétence utilisée. D’abord, le joueur annonce qu’il va faire cette compétence, et ce n’est que plus tard, lorsque ce processus est terminé (éventuellement au cours du prochain tour), qu’il peut l’utiliser. Malheureusement, dans un combat en temps réel avec pause active, cela serait totalement inconvenant : les joueurs oublieraient constamment que leur Cinétiste a commencé à accumuler de l’énergie. C’est pourquoi nous avons trouvé une solution : le joueur spécifie dès le début à quoi il va utiliser l’énergie rassemblée. De plus, le jeu calcule combien d’unités de puissance sont nécessaires, et le joueur se contente de fixer le maximum (c’est-à-dire que si vous autorisez 3 unités de puissance à être rassemblées, et qu’une seule est nécessaire pour la compétence, une seule sera rassemblée, et une action, et non trois, sera dépensée).

BIG NEWS : Pathfinder : Kingmaker, explications du tour par tour 04
Le Cinétiste rassemblera la puissance sous la forme d’une Action de Mouvement, puis lancera l’Explosion électrique sous la forme d’une Action Standard.

Dans le combat à tour de rôle, nous ne pouvions pas changer cette approche dans un délai raisonnable. Nous n’aimons pas le résultat actuel, et nous essaierons de l’améliorer dans Pathfinder : Wrath of the Righteous. Le joueur peut toujours fixer le maximum de puissance à rassembler, sélectionner la compétence qu’il veut utiliser, et ce n’est qu’après cela que la collecte de puissance commencera. Cela dit, si le rassemblement de pouvoir prend plus d’une action (c’est-à-dire que la compétence devra être utilisée au prochain tour), elle ne sera pas appliquée automatiquement, car la situation pourrait avoir complètement changé (par exemple, la cible pourrait avoir disparu). C’est un peu contre-intuitif et peu pratique, mais malheureusement nous travaillons dans les limites du mode temps réel avec pause active.

Curseur intelligent 

Un autre problème important pour nous concernait la variété des actions qu’un personnage peut effectuer dans son tour, en dehors de l’utilisation des compétences et des sorts. Passons-les en revue rapidement. Un personnage peut :

  • Faire une attaque complète, passer une action complète (Move+Standard)
  • Faire une attaque standard
  • Faire une attaque de toucher, s’il y a un sort de toucher “chargé” dans sa main.

En outre, il peut choisir la méthode de déplacement :

  • Un déplacement de 5 pieds, quand les attaques d’opportunité sont ignorées, mais après quoi il ne peut plus bouger
  • Un déplacement régulier.

De plus, lors des tests, nous avons découvert que très souvent les joueurs veulent dépenser exactement une action de mouvement sur le mouvement, sans aucun risque de toucher au Standard.  C’est pourquoi nous avons divisé les mouvements réguliers en deux types : “une action” et “deux actions”.

Nous devions donner au joueur la possibilité de combiner librement ces options d’action et de mouvement, en fonction des disponibilités (par exemple, le personnage peut ne pas avoir d’Attaque complète, ou il a dépensé une action en mouvement dans ce tour). C’était un problème particulièrement difficile sur les consoles : nous ne pouvions pas nous contenter de faire quelques boutons que le joueur pouvait utiliser pour ajuster les actions du personnage, il n’y a tout simplement pas assez de boutons sur la manette de jeu.

BIG NEWS : Pathfinder : Kingmaker, explications du tour par tour 01
Le curseur intelligent indique le nombre d’attaques que le personnage va effectuer.

Nous avons résolu ce problème en créant un “curseur intelligent”. Lorsque le curseur survole une cible, le jeu choisira la méthode d’action optimale pour l’état actuel du personnage (par exemple, un pas de 5 pieds + Attaque complète, si cela est possible). De plus, avec un seul bouton, nous pouvons trier les autres combinaisons disponibles, si votre tactique nécessite soudainement une action qui n’est pas la plus optimale à première vue (par exemple, provoquer une Attaque d’opportunité en utilisant un mouvement régulier au lieu d’un déplacement de 1,50 m).

Suivi des initiatives 

Un menu d’initiative visible sur l’écran issu du mod créé par les fans était assez bon, mais il présentait quelques inconvénients. Tout d’abord, il ne pouvait afficher qu’un nombre fixe de caractères. S’il y avait plus de participants au combat, il n’y avait aucun moyen de voir ceux qui ne faisaient pas partie du décor affiché. Deuxièmement, il ne montrait pas la santé des participants au combat et les effets des sorts qui agissaient sur eux. Et enfin, cela ne fonctionnait pas très bien avec notre style d’interface utilisateur.

Nous avons donc pris la décision de le refaire complètement. En outre, pour qu’il s’adapte à la disposition de l’écran lors de l’utilisation d’une manette de jeu, nous en avons fait deux versions : verticale, dans la partie gauche de l’écran (pour la manette de jeu), et horizontale, en haut (pour la souris et le clavier). De plus, nous avons ajouté des portraits de personnages dans cet indicateur d’initiative pour faciliter la navigation, ainsi que les effets sur la santé et le statut, et nous avons également fait en sorte que la liste puisse défiler pour voir tous les participants aux combats. De plus, lorsque le curseur survole un personnage sur le champ de bataille, il est mis en évidence dans le menu d’initiative pour plus de commodité.

La conception du menu pour la manette de jeu a suscité la controverse, mais après quelques discussions, nous nous sommes mis d’accord sur l’option actuelle, où le personnage dont c’est le tour en ce moment est indiqué tout en bas. Nous l’avons fait ainsi parce que toutes les informations importantes et les commandes de combat sont situées dans la partie inférieure de l’écran. En outre, un grand portrait d’un personnage en haut semblait un peu lourd.

Mods 

Malheureusement, l’ajout d’un mode officiel au tour par tour dans le jeu casse complètement le mod créé par Hsinyu Chan – il ne fonctionnera plus avec cette version. Il en va de même pour les modifications qui changent les éléments de combat – il n’est pas garanti qu’elles fonctionnent dans le combat au tour par tour, et le panel de prédiction pourrait enregistrer de manière incorrecte les modifications apportées par ces derniers.

Le travail d’un cow-boy n’est jamais terminé 

En général, nous sommes satisfaits des résultats de notre travail, mais, bien sûr, nous continuerons à améliorer le système tour par tour en fonction de vos réactions et de nos préoccupations. Tout d’abord, nous nous pencherons sur certains contrôles contre-intuitifs, ainsi que sur la structure interne du panel de prédiction, qui s’est révélée très complexe et sujette à erreur.

Nous espérons que vous apprécierez le fruit de notre travail. Si vous étiez réticent à jouer à notre jeu à cause du combat en temps réel avec pause active, vous n’avez plus de raison de l’être maintenant. Si vous pensiez que c’était trop compliqué – essayez d’y jouer en mode tour par tour, les combats seront beaucoup plus compréhensibles et gérables. Ou bien visitez the Stolen Lands une autre fois pour une nouvelle expérience. Personnellement, je vais enfin jouer au deuxième DLC.