Je termine les petits chantiers

Je prends un par un tous les problèmes de ma to do list, une multitude de choses, parfois de l’ordre du détail, comme les nameplates que j’ai terminés hier, parfois plus importantes comme implémenter le système de skills à la UO. Je n’ai toujours pas déterminé ce que j’allais mettre là-dedans, en plus, alors que c’est la pierre angulaire du système de templates qui garantit aux joueur une totale liberté dans la création de leur personnage, mages, guerriers, mages-guerriers, mages un peu guerriers, guerriers un peu mages, mages un tout petit peu guerriers, euh… bon, je crois que tout le monde voit le principe. Je pense que je ne vais pas me compliquer la vie et vais prendre les orientations classiques et les décomposer dans leurs composantes de base, construire un perso sera une question de préférences. Plus tard, mais parle alors en années, je pourrai implémenter de nouveaux templates basés sur le camouflage, la manipulation du temps, le transfert d’énergies et des tas de choses que j’ai dans mes cartons. Mais ça, c’est pour quand le jeu aura passé le stade release et que j’aurai déjà peuplé des dizaines de zones, si pas des centaines, donc on a le temps.

Je travaille aussi au système de factions, ce qui est moins simple qu’il n’y paraît. Par exemple, un joueur est par définition amical et si on le sélectionne on voit son nom, sa vie et une decal verte à ses pieds. Par contre, s’il nous balance une fireball dans la tronche ou qu’on commence à lui filer des bourre-pifs, il faut qu’il devienne hostile. Et encore, pour un certain temps seulement. Des complications quoi.

J’ai des tas de choses comme ça à faire, plus rien de la taille de ce que j’ai déjà accompli, plus de chantier de plusieurs semaines, mais des trucs de quelques heures à un jour ou deux.

Sans oublier l’artisanat qui, curieusement, ne me fait pas peur. Coder tout cela avait été assez pénible dans Althea et sera bien plus aisé pour Myrdil. Unreal dispose de structures de données très souples et j’ai une grande expérience du sujet, ce sera à nouveau un gros chantier – il en reste quand même deux ou trois pour plus tard – mais un chantier fun et qui ne drainera pas mes ressources intellectuelles comme ce que j’ai réalisé jusqu’ici.

Bon, je retourne terminer le système de factions, c’est bien avancé déjà !

Passons aux détails

Le paperdoll terminé, c’est la fin du gros oeuvre de plomberie, il restera quelques pièces à mettre en place qui demanderont un peu de travail technique, comme les groupes ou le placement de décors dans les maisons, mais la première phase du projet, celle sans laquelle rien ne serait possible, est terminée.

J’ai achevé hier le déplacement de toutes les fenêtres du jeu et leur mise à l’échelle correcte*. Idéalement, je devrais ré-écrire le début du projet où j’apprenais en même temps que je produisais, ce qui n’est jamais idéal. J’avais peur d’avoir recours au C++ car le C++ d’Unreal est vraiment très lourd et je n’avais pas encore mesuré l’aide que l’IA pouvait me procurer. Cependant, grâce au travail que j’ai achevé hier, la ré-écriture n’est pas nécessaire, c’est un luxe intellectuel que je ne peux pas me permettre sans quoi le chantier n’avancera jamais  : il faut aller de l’avant et aborder la partie de modélisation du projet : les personnages et les décors.

Avant cela, je vais m’atteler à écrire de petits chapitres, la fenêtre des options, les barres de vie et de fatigue correctes et tout ce qui va me tomber sous la main qui ne demandera pas plus de quelques jours. Les projets qui prennent des mois, c’est, je l’espère, définitivement terminé !

*Pour mémoire, c’est le HUD qui commande la taille de ses widgets qui prennent la taille de leur sizebox uniquement quand ils sont déplacés. Si je veux en changer la taille, je dois donc d’abord le faire au HUD (ou au controller pour les widgets à création procédurale) avant de reporter dans leur sizebox les nouvelles dimensions.

Paperdoll terminé

C’était beaucoup plus de travail que je le prévoyais, même si je termine avec un jour d’avance, car j’ai dû mettre en place le système de loot entretemps. Difficile de tester l’équipement/déséquipement d’objets et octroi de buffs sans avoir d’objets à disposition, n’est-ce pas ? C’est vrai, j’aurais pu les mettre par terre plutôt qu’écrire les routines de génération de loot mais comme il aurait de toutes façons fallu y passer, c’est fait !

Générateur de loot terminé

Mooooooooooooon vieux ! j’ai pédalé dans la choucroute, pfiouuuu !

J’ai programmé un système tellement riche et souple que je suis arrivé à m’y perdre. Une journée entière de boulot pour me remettre la bulle entre les repères ! Finalement, j’ai opté pour un système contre-intuitif mais qui sera très fun : plus un objet est commun, plus il a de chances de recevoir un grand nombres d’affixes mais plus ces affixes seront petits. C’est logique car plus un objet est rare, plus ses caractéristiques avant affixes sont élevées. Oui, je sais, c’est dur à lire et ce n’était pas sans un vif déplaisir que je l’ai programmé ! Ce système va épicer le trash loot et c’est tant mieux ! Ca m’évitera aussi de construire dans la table d’objets des brouettes de saloperies de la chouette dont personne ne veut : la génération de loot de transition sera automatique.

Demain je m’attaque aux buffs d’intensité variable octroyés par les objets. J’avais déjà la version fixe, maintenant la variable. Après ça, il me restera l’affichage du total des buffs au paperdoll.

Création d’icônes

Je me suis enfin décidé à apprendre à travailler de manière professionnelle pour générer les icônes du jeu. Grâce à l’IA le détourage est plus simple que jamais et grâce à “Sélection -> modifier -> contracter d’un pixel” de Photoshop je couvre tous les cas de figure.

J’ai créé quatorze objets aujourd’hui, ce qui comprend l’icône mais aussi les effets GAS (ils donnent tous +5 PV, on verra plus tard pour les variantes), l’affichage du niveau de rareté et toute cette sorte de choses. Me reste à réaliser un petit encart dans le paperdoll pour visualiser les buffs les plus courants et ce chantier sera terminé et avec lui, probablement, le dernier gros chantier lourd en code. Probablement, j’ai peut-être oublié quelque chose mais comme dirait mon fils en s’asseyant à mon fauteuil ce matin : “Ca commence à ressembler à un jeu vidéo !”

Oui, ça commence…