Mon monde, depuis 9 mois

Je ne montre jamais ce que je fais. Et pour cause !
Je viens de terminer la partir visuelle du système de skills, je ne vais quand même pas montrer ça…
Ok, il y a une fenêtre assez parlante, pas trop dégueulasse, mais le fond, pardon ! heureusement qu’il y a un ciel et pas une lampe de poche, bonjour la déprime !
Alors, puisqu’il le faut, je vous fais les présentations. Le grand gars en rouge, c’est mon souffre-douleur, c’est lui qui se mange toutes les mandales des systèmes de combat. Parfois ils sont deux – et se bourrent la tronche jusqu’à ce que je siffle la fin de la récré, c’était marrant aussi, ça – mais le plus souvent il est seul et ne m’attaque que si je m’approche trop.
A droite, ma sœur jumelle, elle ne sert à rien sauf à tester la réplication des mouvements et des sorts et à se faire bourrer dessus quand je teste le PvP. A sa droite, c’est le marchand. Oui, ça ne se voit pas, mais c’est le shop. J’avais prévenu que ça n’allait pas être sexy !
A la droite du shop, la petite fritte là, c’est la banquière, et à ses pieds deux coffres, pour tester des tas de trucs comme le loot, la mise en surbrillance des objets, des trucs comme ça, et perdu à droite, c’est le forgeron. Il n’a pas l’air comme ça, mais il est d’excellente compagnie, il suffit de l’approcher de lui dire un truc comme ‘épée, bonne, pas chère, tout de suite’ et il part dans un délire roleplay à peine croyable. On appelle ça un prototype parce que, roleplay ou pas, il ne vend pas d’épées, ni rien d’ailleurs, il porte juste des milliers de lignes de code d’interaction AI pour construire le comportement des PNJs, dans quelques mois ou quelques années.
Bref, le développement avance, dans quelques jours le système de skills sera terminé, comment en gagner, comment les bloquer, comment les perdre si on n’en veut plus, tout ce que nous avons connu sur UO, en somme, dont je reprends bien des aspects.
Il est temps d’aller me coucher et, qui sait, avec beaucoup de chance, de trouver un peu de sommeil !

KUI Nameplates, bugs divers

J’ai terminé l’affichage stable des barres de vie, superposées et prêtes à recevoir buffs, débuffs, incantations, etc
J’ai pour cela dû créer un subsystem, UAltheaNameplateSubsystem.
C’est beaucoup de code mais c’est stable et pro.

J’ai abandonné l’idée des armes élémentaires, j’ai autre chose à faire et ces armes sont des cauchemars à équilibrer en PvP, imposent de remplir ses sacs de pièces d’armures dotées de résists particulières et d’armes spéciales. Pas sûr que j’y reviendrai. Par contre j’ai implémenté la pénétration d’armure et validé l’effet de l’armure sur un pourcentage de réduction et non une valeur fixe.

J’ai aussi réglé le bug du délai d’attaque : après clic droit sur une cible, si le joueur n’est pas à portée, un compteur temporaire s’enclenche et la première frappe survient dès que le joueur arrive à la bonne distance, pour ne pas perdre de temps d’attaque. C’est un détail, mais le genre de détails qui énervent. C’est réglé.

J’ai aussi réglé le problème des mobs qui se bourraient entre eux quand ils n’avaient pas de joueur en ligne de vue. C’était marrant, mais tout de même, faut rester sérieux, donc maintenant les membres d’une même faction sont copains comme cochons. Petit truc vicelard à régler ça, pas grand chose en code mais fallait trouver le bon endroit pour intervenir.

J’attaque maintenant les skills à la manière d’UO, c’est un gros morceau, j’aimerais que ce soit un élément qui définit Myrdil donc je vais me donner le temps de bien faire les choses.

Armure terminée

Affichage de la valeur totale d’armure du personnage, tooltip d’armure sur chaque pièce, réduction des dégâts proportionnelle à l’armure au lieu d’une réduction directe. Je vais juste ajouter la variable d’ajustement de cette réduction aux paramètres globaux, petit oubli, ça ne prendra que quelques minutes. J’ai abondamment commenté le C++ pour ne pas oublier la syntaxe à dormir debout du GAS pour lire l’attribute set de la cible, c’est bourré de macros bizarres, de déclarations inline et je sais pas quoi, je me console en me disant que j’ai fait le plus gros du chemin dans l’usage du GAS et que, bientôt, tout sera en place et je pourrai l’oublier définitivement pour ne plus que décliner l’architecture en place.

Maintenant je m’attaque aux dégâts additionnels, façon NWN pour les armes et flèches avec dégâts élémentaires. Je viens de perdre des heures à essayer d’implémenter les dégâts élémentaires des armes de mêlée pour me rendre compte de ce que j’aurais dû comprendre tout de suite : si je fais ça je vais me retrouver avec les habituels petits malins pour tourner autour des gars en plaques avec leurs dagues enflammées en se moquant d’eux. A croire que je n’ai pas retenu grand-chose de mes années de PvP… Donc, poubelle, et je remplace tout ça par un global effect additionnel. Je finirai peut-être demain, pas sûr. Après ça je m’attaque soit aux skills façon UO soit aux effets des effluves du Quadracle. Ca avance !

Je l’ai pas vu venir…

Je suis tombé sur un bug vicieux de Slate, ce qui sert de support à l’interface d’Unreal. Quand le serveur échange deux objets de place suite à un clic droit, par exemple en changeant d’arme au paperdoll, Slate reste coincé lorsque j’initie le click down. J’ai donc dû repasser toute la mécanique de clic droit au click up. Et je me suis rendu compte qu’il était impossible, par exemple, d’envoyer un objet dans sa banque par clic droit.

J’ai pris mon courage à deux mains et j’ai ré-écrit tout le code de gestion des clics souris dans les inventaires en utilisant un ordre de préséance : si un marchand est ouvert, c’est d’abord à lui que s’adresse le clic droit, ce sera donc une vente. Ensuite je teste le paperdoll, puis la banque et enfin le loot qui lui ne réagit pas au clic droit car il est impossible pour un objet d’inventaire de savoir de quel inventaire de loot il provenait – sans programmer une usine à gaz.

Ca m’a pris la journée et c’était pas marrant !