Voila, ça faisait longtemps que
je n'avais plus parlé de WAKFU (ou pas) et donc je viens vous partager le fruit
de longues heures de scripting et de travail d'équipe pour obtenir un sort, en
l'occurrence, Fulgurance, le dernier sort de la branche élémentaire de l'air du
Sacrieur. Au passage je vous parle plus en profondeur de cette étape dont on ne
parle pas souvent au final.

Pour rappel, c'est demain que
sort la mise à jour qui vous permettra de jouer enfin le Sacrieur dont je vous
ai déjà pas mal parlé sur mon blog. Aujourd'hui, j'ai  enfin terminé le script du sort Fulgurance qui
me posait quelques soucis depuis un moment et vu que le sort est
particulièrement cool, j'ai fais une petite vidéo pour vous le montrer en
avance et en profiter un peu pour parler de ce boulot de scripting plus en
profondeur.


Fulgurance a un look très japanimation.

L'idée derrière ce sort était de
nouveau de faire référence à un classique du Shonen : Le personnage qui se
déplace tellement vite pour donner ces coups qu'il disparait.

Ce sort permet donc au Sacrieur
de frapper de nombreuses cible dans une « zone en cercle de taille 2 »
et l'effet souhaité était vraiment de le voir apparaitre une fraction de
seconde frapper un des adversaire puis à peine disparu être déjà entrain d'en
frapper un autre plus loin.

La description de Fulgurance, son icône, son équilibrage : C'est du boulot.

On n'avait pas envie de ne faire
qu'une unique animation qui aurait été la même qu'il y ait une seule cible ou 6
cibles dans la zone. De plus, pour avoir un rendu encore plus sympa, on a
décidé de faire différente animation de frappe, de sorte que si le sort est
lancé 2 fois exactement dans les même conditions, il aura un rendu graphique
différent : le Sacrieur n'arrivera plus du même coté pour frapper chaque
cible.

A partir de là, les animateurs
ont donc créé 5 animations : Une où le Sacrieur bondit vers les cibles
(début du sort), 3 animations différentes de frappe où le Sacrieur apparait en
plein mouvement « en vol » (ce sont les animations jouées
aléatoirement donc) et pour finir, une animation à la fin du sort où le Sacrieur
réapparait derrière les cibles (le moment où dans les animés le héros rengaine
son sabre et que le sang commence à jaillir des ennemis :D).

Coté GFX (les effets spéciaux
quoi), le sort est « léger » vu qu'il se contente de répéter une
seule animation d'impact sur chaque cible touchée par l'attaque. Coté
graphisme, il reste à faire aussi l'icône du sort et les icônes rattachée au
sort, comme les icônes de buff par exemple.

Coté code, il n'y
a pas eu de boulot vu qu'on utilisait en gros 3 actions qui existe déjà dans d'autres
sorts (à savoir « faire des dégâts », « se téléporter » et « appliquer
un état »).

Les traits noirs renforcent le coté déplacement rapide de l'animation.

Il restait donc d'abord à saisir
les données du sort, boulot généralement attribué au game designer et c'est
donc moi qui l'ai fait. En gros j'utilise les actions codées (évoquées
ci-dessus) et j'en définis les paramètres. Je link aussi dans cette étape le
sort avec son icône par exemple, mais pas avec les animations et les GFX.

En effet, le link de ces deux
éléments se fait dans le script qui accompagne le sort. Dans le cas de WAKFU,
il s'agit d'un script en Lua et c'est également moi qui m'en charge d'habitude
(d'où l'intérêt pour un game designer de connaitre aussi un peu de
programmation). Bon sur ce coup-là, il y avait quelques difficultés
supplémentaires et c'est grâce à mes collègues programmeurs sur le code du jeu
que j'ai pu m'en sortir.

Ce script donc est surtout fait
pour définir quelles animations et GFX le sort doit utiliser et surtout quand
et sur qui les appliquer ! Dans ce sort par exemple, il y a un timing
dynamique suivant le nombre d'ennemis (on ne veut pas que le Sacrieur se
téléporte de l'autre coté de la zone d'effet avant d'avoir fini de frapper les
cibles ou trop tard après).

Il y a aussi le GFX d'impact qui
ne doit pas être joué sur la cellule ciblée par le sort mais sur toutes les
cellules sur lesquelles se trouve une créature touchée par le sort. Tout ça, on
le définit grâce au code du Script et c'est également ce code qui nous permet
de spécifié au jeu par exemple de choisir une animation de frappe aléatoire pour
chaque cible.

C'est pas aussicompliqué que de la programmation "pure", mais ça reste du code ^^.

Bref, celui qui se charge du
script joue un peu le rôle de réalisateur sur le sort et c'est lui qui au final
détermine le feeling graphique du sort. Pour ma part, je préfère toujours par
contre montrer ensuite le sort aux animateurs et graphistes qui ont fournis des
ressources pour le sort afin de vérifier qu'il correspond bien à ce que tout le
monde imaginait.

Voila, vous en savez un peu plus
sur le rôle de scripteur et la différence avec le programmeur. Parfois d'ailleurs
on parle aussi de « gameplay programmeur » quand on parle de la
personne qui s'occupe de ces scripts, mais souvent ce rôle englobe quand même
de la « programmation client » aussi. Bref, j'espère que vous
comprenez aussi mieux donc comme je l'ai écrit dans ce ticket pourquoi, selon
moi, quand on veut devenir game designer, passer par des études de programmation
ne peut être qu'un avantage :

On cherche plus de programmeurs
que de game designer, c'est donc un bon point d'entrée dans le milieu (très
bien rémunéré en plus par rapport à un game designer). Ensuite cela vous
permet si vous ne trouvez pas tout de suite de boulot dans le secteur JV d'avoir
un bon travail autre part, et enfin donc, ça vous servira toujours quand vous
serez game designer, pour comprendre vos programmeur et pour scripter par
exemple des sorts ^^.