Le merveilleux manoir de Leomund

Je n’ai plus aucune idée de comment le sort s’appelait dans AD&D 2ème édition, mais c’est un truc du genre, qui invoque un refuge avec nourriture et commodités, une version idéalisée de la caravane, en sorte, sans l’aspect escargot.

Tout en travaillant ce soir, je me suis fait la réflexion qu’il est parfaitement possible de reproduire ce sort dans Alive!, une gentille chaumière avec poêle, jambon séché, baignoire chaude, vin elfique et toute cette sorte de choses.

Bon, assez rêvé, je travaille depuis plus d’un an sur une place du marché entièrement vide avec juste quelques remparts, une porte à herse et un pont sur le Merul, avec en ligne de fond deux maisons agrandies pour marquer l’emplacement du château du bailli et de la cathédrale. Même mon perso est le très beau mais vite lassant mannequin Unreal, il va finir en cible d’entraînement lui, ça va pas traîner…

Bug de la fireball réglé

Je n’ai pas eu d’autre choix que d’utiliser une enculette™ pour résoudre le problème de la boule de feu qui part dans la direction où regardait le joueur au moment du début du cast et non là où il regarde à la fin.
Je détruis le sort à la fin du lancement et j’en recrée un autre que je lance immédiatement pour éviter toute disparité d’angle.

Ca marche, mais je n’aime pas. On sent qu’Unreal a été créé dans une optique ‘shooter’ où les projectiles partent dès que la détente est pressée.
Comme quoi, les moteurs se définissent aussi bien par leurs avantages que leurs limitations.

J’ai aussi terminé les buffs, j’attaque les débuffs et le ciblage.
Après ça je ferai l’inventaire, ce qui pose quelques problèmes en multi-joueurs.

Je pourrai peut-être bien avoir un environnement jouable pour le printemps, même s’il est encore prématuré d’en juger. Je peux tout aussi bien avoir tout plaqué d’ici là, je me mange une quantité de claques impressionnante chaque fois que j’aborde un nouvel aspect du développement. Ou, pire, que je me laisse emporter par ma curiosité et vais “un peu regarder” tout ce qu’il y a moyen de faire avec le moteur.

Bugs en cascade, pas grave

Depuis le lancement du projet sous UE4, j’essaie d’écrire une fonction qui déplace le joueur à l’objet sur lequel il clique, habituellement une porte ou un coffre. J’ai eu beau tout essayer, la fonction qui devrait me rendre la table des vecteurs de déplacement est vide. Pas essentiel, je n’aurais même pas dû revenir à ce code, mais c’est mon problème, j’ai du mal à laisser tomber un bug, façon “c’est lui ou moi”. Pas très malin mais on ne se change pas.

J’ai un autre bug gênant, quand je lance un sort à projectile avec un temps d’incantation, le projectile part dans la direction à laquelle le joueur faisait face au début de l’incantation. S’il s’est retourné entretemps, le sort lui sort donc du trou de balle. Cocasse, mais ce n’est pas l’effet recherché.

J’ai posé la question à Ryan sous sa vidéo Youtube et il m’a gentiment répondu. Le problème, c’est que j’ai essayé une bonne partie de la journée de régler le problème et que la solution qu’il m’a indiquée faisait partie de ce que j’avais essayé dès le début. Enfin, pour le remercier quand même, j’ai souscrit à son compte Patreon, ça me permettra de résoudre bien des difficultés dans l’avenir et si je souscris au plan Diamond pour la modique somme de 20€/mois, je pourrai même lui envoyer mon projet pour qu’il corrige mes bugs. C’est donné !

18 épisodes

La série de tutos que je suis pour le moment, par Ryan Laley au délicieux accent de Manchester, par là, m’aide énormément à avancer car j’ai besoin de tout ce qu’il décrit.

Par contre, il arrive qu’au fil de son exposé je ne sois pas d’accord avec sa logique et tente de corriger son code à la volée. Le souci, c’est que la plupart du temps il construit sur ses propres bugs et que donc mon code ne suit plus son raisonnement, et qu’il finit par corriger ses bugs selon la méthode “emplâtre” affectionnée par une partie non négligeable de la Communauté Internationale des Développeurs™.

Donc, je le suis servilement et tente tant bien que mal de garder en mémoire tout ce que je devrai revoir quand j’aurai fini ses tutoriels, ce qui à la fois me fatigue et m’agace, dans la peur qu’il ait tellement construit sur du sable qu’à la fin je perde confiance dans la stabilité du code.

Et ce n’est pas toujours anodin : pour le moment je crée une boule de feu et chaque fois qu’elle se lance se crée un objet de type “sort” avec une flopée de paramètres, objet qui ne se détruit que s’il touche une surface solide. Je me trimballe ainsi avec des kyrielles de boules de feu rendues à l’état sauvage ce qui ne va pas manquer d’amuser le serveur si j’ai 60 joueurs qui s’en donnent à cœur-joie pendant des heures.

Oui, je sais, cela fait trente ans que je peste contre les bugs des autres, ce qui me fait penser que pour me remercier de ceux que je leur ai dénichés dans leur code quand j’étais développeur officiel Apple, ces pingres m’offraient royalement 50% de réduction sur une machine par an.

Bon, bref, je travaille et ça avance.
Je n’ose pas montrer la tronche de ma boule de feu, c’est à pleurer de rire, soit.

Althea combien ?

J’ai commencé à travailler sur Althea en 2001. Je ne sais comment j’avais pris langue avec les initiateurs du projet, mais, pour autant qu’il m’en souvienne – oui, je sais, je charge un peu sur l’ancien français, soit – j’avais accepté de collaborer à scripter le projet.
A ce moment-là, Soufflevent comportait en tout et pour tout cinq zones, les quartiers humain, nain, gnome, elfe et elfe noir. Chaque zone avait la taille maximum de 16×16 avec dedans quelques PNJs qui se baladaient et probablement une échope et l’un ou l’autre bâtiment.
J’ai bien tenté de leur faire observer que crapahuter dans une ville où il n’y a rien n’est pas spécialement intéressant, rien n’y faisait.

Bon, j’ai scripté la quête des égouts, qui y est toujours, la quête du cimetière, dont la troisième version y est toujours, puis le gué de Soufflevent, la caverne aux gobelins et d’autres petites choses. Nous étions plusieurs dans le projet, j’étais impatient de voir ce que les collègues allaient apporter pour que nous puissions mettre tout cela ensemble.

C’est trop loin, je ne sais plus trop comment cela s’est passé, mais, comme soeur Anne, je ne voyais rien venir et c’est là que j’ai réalisé que l’initiateur du projet était un petit Suisse, enfin, je veux dire un Suisse de quinze ans, fort de l’optimisme de la jeunesse et qui a fini par m’abandonner le projet une fois que j’ai réussi à lui faire comprendre que l’enthousiasme ne fait pas tout et qu’à un moment il faut mettre les mains dans la graisse et mouiller la chemise.

Bon, je m’égare, je vais appeler cet épisode Althea 1.
Althea 2 serait donc le moment où j’ai repris le projet en solo et commencé à y consacrer tout mon temps libre.

Althea est devenu assez gros, avec des événements rôlistiques presque quotidiens, de nouvelles quêtes chaque semaine et des tombereaux de zones quand Yann, alias Raistlin, a ajouté à l’univers nombre de zones inspirées de Dragon Lance.
C’était la grande époque des plus de soixante joueurs connectés en soirée, des crashs à répétition, des arènes, des factions, des attaques de fiefs, des guerres de forums et toute cette sorte de choses.

Est alors sorti Neverwinter Nights 2, beaucoup plus beau, TooLs a réalisé quelques-unes des plus belles cartes de ce que j’appellerai Althea 3, nous avions enfin une équipe de gens sérieux avec Redils à la gestion serveur et d’autres bonnes volontés. Malheureusement, le serveur de NWN2 était très mauvais, encore plus mauvais que le premier ce qui est en soi une performance, et les p’tits gars de la gestion serveur se sont embarqués dans des complications qui rendaient impossible mon travail de scripting des zones. Mais voilà, c’est ce qui leur plaisait et moi ça ne me plaisait pas, j’en ai eu assez et ai claqué la porte fortement déçu.

Ce qui est fait est fait et Althea a dérivé dans mes souvenirs, non sans une nostalgie croissante. Le hasard a voulu que ma femme retrouve un vieux CD avec les sources d’une vieille version d’Althea une semaine à peine après que Beamdog ait sorti Neverwinter Nights : Enhanced Edition, soit plus de quinze ans après l’origine !
Je n’ai pas pu résister, je me suis relancé dans l’aventure de qu’il convient donc d’appeler Althea 4.
Cet épisode aura duré un an, sans jamais redevenir convaincant, les temps avaient changé et j’ai perdu beaucoup trop de temps à me battre contre un vieux moteur de jeu.

L’aventure se serait arrêtée là si je n’avais découvert Unreal Engine 4, au moment où Epic touchait le jackpot avec Fortnite et mettait de plus en plus de contenu gratuit à disposition des développeurs, dont Megascan, la librairie d’objets et de textures ultime.
Arriver à sortir Althea 5 relève de la gageure, ce qui est marrant parce que, si on contracte Althea et Five on obtient : Alive!