Quelques réflexions sur le développement du moteur de jeu SGS.
La modélisation des tirs navals de l’artillerie navale lourde (des cuirassés et des croiseurs au large des côtes) dans la série de jeux Pacific D-Day a posé des problèmes intéressants. La plupart des jeux SGS sont à une échelle où le soutien de l’artillerie est assuré par des unités présentes dans la même région que la bataille. Les « lourds » navals (ou artillerie terrestre lourde à longue portée) ont cependant une portée qui peut atteindre toutes les régions de la carte. Les tentatives de placer des unités représentant les tirs à chaque tour via des renforts devenaient très intenses en code et sujettes à des erreurs et à des « bugs » sans fin. La première solution que nous avons trouvée était les unités « pseudo-aériennes » (appelées soutien naval, ou plus simplement « Gunfire ») qui apparaissent à chaque tour. Ils ont une « portée infinie » (à l’échelle du jeu, c’est logique) et ne peuvent pas être interceptés ou tirés par AA ou au combat.
Une fois dans la bataille, ils tirent pendant la phase d’appui d’artillerie. Ils ont généralement une bonne cadence de tir (ROF), et « disparaîtront » une fois qu’ils auront tiré tout leur ROF (nous avons utilisé pour cela une fonction spéciale de l’unité, appelée « suicide » qui détruit l’unité après qu’elle ait tiré).
Ensuite, nous avons eu un ensemble d’événements qui ont recréé les unités de tir à chaque tour, afin qu’elles puissent être à nouveau disponibles au(x) tour(s) suivant(s). Cela a demandé un peu plus de travail sur les événements et de faire attention à la logique. Par exemple, nous devions considérer que le joueur (ou l’IA) n’utiliserait pas les coups de feu (en partie ou en totalité) pendant un tour, alors que se passerait-il avec les événements de recréation ? Nous avons donc également ajouté un événement pour « effacer » du jeu tous les coups de feu inutilisés.
Cela a plutôt bien fonctionné côté gameplay, même si c’était un peu lourd à prendre en main et un peu maladroit à manipuler. De plus, le système de suppression/récréation limitait l’utilisation à la seule partie offensive du jeu.
Cela nous a amenés à réfléchir à un système plus «avancé» que nous avons mis en œuvre pour la première fois dans SGS Korean War. Il y a encore du travail à faire dessus (l’IA ne l’utilise pas correctement par exemple) mais cela semble s’avérer un peu plus conforme à l’objectif.
Chaque unité de tir (par exemple, l’escadron de cuirassés de la 7e flotte ou l’artillerie lourde Long Toms de la 8e armée) se voit attribuer une unité de projectiles, qui fonctionne exactement comme les unités de tir ci-dessus. Lorsque vous sélectionnez l’unité individuellement dans le panneau de pile, pendant la phase de mouvement aérien, vous voyez un bouton sur la droite du panneau avec une icône d’obus. Lorsqu’il est pressé, cela fait apparaître une unité de « projectile » à côté de l’unité de tir. Il représente les obus lourds que vous allez tirer sur l’ennemi. Ces projectiles peuvent être déplacés vers une région adjacente (portée de 1 dans la SGS Korean War, en raison de l’échelle de la région) où ils attaqueront lors de la phase d’artillerie de la bataille qu’ils créent. Les bons points du nouveau système sont que ces projectiles sont automatiquement recréés par le moteur (à l’intérieur de l’unité de tir) sans besoin d’événement, que vous pouvez les utiliser quand vous le souhaitez (s’ils ne sont pas utilisés une fois, ils peuvent être utilisés plus tard, non doivent les gérer via des événements) et, mieux encore, ils peuvent également se déplacer dans la phase aérienne défensive, donc être placés comme les autres unités «aériennes» avec vos unités, puis servir lors de batailles défensives potentielles. Et, au début de chaque nouvelle phase aérienne (offensive ou défensive), tous les projectiles inutilisés encore sur la carte sont automatiquement retirés et ils sont à nouveau disponibles sur le tireur.
Cela en fait un système plus polyvalent qui peut s’avérer très utile lorsque les jeux SGS évoluent à une autre échelle (c’est-à-dire plus semi-opérationnels ou même tactiques).
Un autre travail prévu sera de prendre également en compte le stock de projectiles, afin que les tireurs puissent éventuellement manquer de munitions.