Voici les dernières nouvelles du développement de Zelda : Mystery of Solarus DX. La programmation a beaucoup avancé ces derniers jours. Grâce à tout ce qui avait déjà été fait avant, deux grandes étapes ont pu être franchies dans l’élaboration du moteur de jeu : le système de combats et les scripts des maps ! Cela mérite quelques explications :).

Le système de combats, vous devez avoir une idée de ce que c’est ;). C’est tout ce qui permet de gérer les ennemis : leurs mouvements, leurs attaques, les attaques de Link, les faire mourir, les dégâts infligés à Link, etc… Il y a de nombreux types d’ennemis dans Zelda, mais tous partagent un comportement commun, comme le fait de vous blesser, même s’il y a des différences puisque certains vous font perdre plus de coeurs que d’autres. Bref, c’est un peu compliqué, mais tout ce “comportement commun” est au point, et pour le tester, j’ai développé un type d’ennemi : les gardes verts. Tout cela est développé de sorte que créer des nouveaux types d’ennemis à l’avenir soit le plus simple possible : toute la partie commune pourra être réutilisée, et il suffira de définir ce qui est spécifique au nouveau type d’ennemi : son sprite, ses mouvements, son attaque et sa défense ^_^. Cela pourrait vous sembler naturel de procéder de cette manière, mais il faut savoir que ce n’est pas toujours possible avec des logiciels de création de jeux, ou alors c’est particulièrement compliqué et ce n’est pas aussi efficace.

Voici un exemple d’ennemi qui vient juste de se faire toucher par un coup d’épée :

Notez au passage que vous avez le privilège de voir la première image du monde extérieur ^^. Les maps du monde extérieur ont été réalisées récemment par Mymy grâce à l’éditeur de maps de ZSDX. L’éditeur reste bien sûr en phase avec les nouveautés du moteur, c’est-à-dire qu’il permet par exemple (depuis la nuit dernière ^^) d’ajouter facilement des ennemis, au même titre que les autres types d’entités déjà pris en charge : les décors normaux, les coffres, les téléporteurs, les buissons, etc.

La deuxième étape dont je voulais vous parler, c’est le système de scripts. Les scripts, c’est ce qui permet aux développeurs du jeu de programmer tous les événements qui vont se passer sur chaque map. Par exemple, faire apparaître un coffre lorsque tous les ennemis d’une salle sont tués. Ou alors ouvrir une porte lorsque le joueur appuie sur un interrupteur, fermer une porte au bout d’un certain temps chronométré (:P), ou encore parler avec un personnage.

Toutes ces actions concernent les maps et la quête en elle-même, pas le moteur de jeu : ce n’est pas comme développer le système de combats ou l’écran de pause. Elles sont donc séparées du moteur de jeu, tellement séparées qu’elles ne sont pas programmées dans le même langage informatique. Elles sont définies dans ce qu’on appelle des scripts, c’est-à-dire des fichiers qui contiennent des lignes de codes décrivant tous ces événements. Chaque map a donc un script qui définit tout ce qui se passera dessus ! J’ai choisi d’utiliser le langage Lua, qui est un langage de script utilisé dans beaucoup de jeux commerciaux dont un certain… World of Warcraft ;).

Bref, tout ça pour vous dire que grâce à ces scripts, je vais pouvoir passer à la programmation du jeu en lui-même en définissant les événements des maps comme les dialogues avec les personnages et les énigmes.

À bientôt pour d’autres nouvelles :)