Devblog : Mode tactique

Un billet présenté sur le devblog par Cuicui, qui nous explique un nouveau mode d'affichage du jeu, à l'instar du mode invisible, que l'on peut activer en combat. Le mode tactique, dans lequel les cartes sont divisées en petites zones et chaque case en petit bloc, se voudra être plus intuitif pour optimiser ses placements, épurer l'affichage et profiter pleinement des possibilités offertes par le décor.

Le billet en provenance du devblog :

Présentation :

Qui n'a jamais été frustré de perdre un combat à cause d'une ligne de vue qu'il pensait disponible ? Ou encore à cause d'un obstacle censé être franchissable ?

Certaines cartes ne permettent pas au premier coup d'œil de déceler les meilleurs placements pour les combats, principalement à cause des nombreux décors.

Il a donc été envisagé d'intégrer un mode dit tactique, qui permet dès le premier coup d'œil de trouver l'emplacement idéal pour mener à bien un combat.

Son utilisation se fera tout simplement via un bouton présent autour du médaillon centrale, au même titre que le mode invisible (activation nécessaire à chaque lancement de combat) et utilisable dès la phase de préparation.

Le but premier du mode tactique étant de rendre l'affichage simple et intuitif, toutes les dalles sont repositionnées sur une seule hauteur : l'élévation du terrain est une information inutile lors des combats. Un seul niveau, deux types de dalle (dalle de mouvement / dalle bloquant la vue et le déplacement), tout est fait pour faciliter la compréhension de la carte.

Aspect technique :

Au niveau technique, il a fallu trouver le juste milieu entre performance (pour l'affichage rapide du mode) et rendu des différentes zones (suppression des blocs, calculs des positionnements ...).

Le plus coûteux au niveau performance a été de déterminer les différentes zones de déplacement possibles. Pourquoi coûteux, me direz-vous ?

Alors tout d'abord, il faut pouvoir déterminer au niveau de la carte les zones de déplacement.

[Note] une zone correspond à un ensemble de dalles sur lequel le joueur peut se déplacer.

Le gros problème, c'est que sur certaines cartes un peu plus complexes que la normale, on peut se déplacer sur la grille de haut en bas et de gauche à droite en rencontrant des cellules qui au moment du parcours, sont détectées comme n'ayant pas de zone rattachée.

Comment détecter la zone rattachée :

Pour chaque cellule, on regarde les zones des cellules déjà parcouru en amont, c'est-à-dire les 3 cellules du dessus, et celle de gauche.

Par exemple, prenons la cellule marquée en rouge. Lors du parcours des cellules, nous ne connaissons que les cellules adjacentes marquées en vert. Du coup impossible de déterminer que la zone 4 et la zone 3 sont en fait une seule et même zone. En appliquant ce principe, à la fin du parcours des cellules, nous nous retrouvons avec  4 zones :

devblog-tactic.jpg

On voit bien que le parcours permet de détecter 4 zones au lieu de 2 (cellules numérotées dans l'ordre de test).

Une fois que ce premier parcours a été effectué, nous avons besoin de de fusionner les zones si cela est nécessaire, jusqu'à ce que cela ne soit plus possible. Typiquement, dans notre exemple, jusqu'à se retrouver avec 2 zones (haut gauche et droite). Pour cela, nous devons parcourir de nouveau les cellules, et regarder si deux cellules adjacentes (en testant ce coup si les 4 autres cellules bleu, en plus des 4 vertes) ne sont pas de zones différentes. Si c'est le cas, nous fusionnons.

Pourquoi tant de calcul ? À quoi cela peut bien servir ?

La principale fonction de ces zones est de délimiter la (ou les) zones de combat, pour ainsi pouvoir déterminer les blocs utiles ou non. Le but du mode tactique est d'épurer l'affichage, pourquoi s'embêter avec des blocs hors zone de combat.

Pour déterminer qu'un bloc (blocage ligne de vue) est hors zone, nous pourrions très bien, pour chacune d'entre elles, déterminer si elle est accessible ou non via l'algorithme de pathfinding ... mais en terme de performance ... c'est tout simplement inenvisageable ...

Du coup nous allons déterminer si un bloc se situe dans la zone de combat (cas où nous n'avons qu'une seule zone), ou entre deux zones. Pour ce faire, nous prenons la taille entre le point le plus à gauche de la première zone de combat, le point le plus à droite et nous pouvons ainsi déterminer un rectangle, hors duquel les blocs ne sont pas affichés :

devblog-tactic2.jpg

devblog-tactic3.jpg

Les blocs de type « blocage ligne de vue » sont affichés si présent dans la zone combat. On supprime le reste !

L'ensemble de ces modifications vous permettra d'effectuer des combats beaucoup plus facilement et d'exploiter de façon plus pertinente les possibilités offertes par le décor.

Source : http://www.dofus.com/fr/devblog/billets/170165-mode-tactique

Réactions (18)

Afficher sur le forum

  • En chargement...