Reste à faire

La barre de compétences (8 façon GW1), la carte, la minimap, les skills (façon UO), le respawn, le loot (avec les tables de drop), les groupes (je vais probablement faire un sytème à la UO, pas d’interface de groupe puisqu’il n’y a pas d’XPS, juste la possibilité de détacher des barres de vie) et enfin la partie graphismes/animations/décors en toute fin.

Sans déconner, reste que ça ?

Aujourd’hui, Behavior tree

Après une journée épouvantable à transformer le code d’attaque des mobs des élucubrations de Gemini vers le Global Ability System, GAS, j’aborde le Behavior Tree et son Blackboard, en C++

C’est le fondement du comportement des mobs – qu’auparavant on appelait IA mais le mot IA a changé de sens et j’hésite donc à l’utiliser. Je peux encore, pour l’instant, me glisser derrière un mob et le tuer sans qu’il réagisse. J’en entends au fond qui braillent : “Touche à rien, malheureux, c’est bon comme ça !” Oui, mais non, parce que ce serait trop simple, déjà, et aussi parce que j’attends depuis des années de pouvoir intégrer un arbre de décision réaliste dans les mobs, pour qu’ils se battent, ou fuient, ou aillent chercher des copains, ou se mettent à l’abri ou encore assistent le joueur, ce que j’avais essayé sans succès sur le dernier Althea.

Le but ultime, mais vraiment quand tout le reste sera fait, soit pas demain, est de reconstruire en mieux le système de fiefs avec batailles de masse et machines de siège.

Oui, c’est vrai, je commence à y croire, ce n’est pas faute de prendre des coups pourtant !

Combat corps à corps

J’ai bien avancé pour les joueurs, ils peuvent taper, on voit les dégâts, les critiques en rouge, j’ai modifié le blend space pour que le perso reste en posture de combat et puisse se déplacer librement, enfin, toute cette sorte de choses élémentaires qui nous paraissent évidentes et que je dois programmer de zéro. De plus en utilisant le GAS, soit le tout répliqué à tout le monde avec autorité serveur et tout le bazar.

Ce soir, j’avais le choix entre commencer les routines de loot ou commencer l’IA des mobs, pour qu’ils perçoivent les joueurs et puissent leur foncer dessus pour les bourrer. C’est ce que j’ai choisi, je vais donc terminer tout le combat au corps à corps avant de m’occuper du loot. Pour les archers et les mages, on verra plus tard.

Eh ! pas mal !

Un truc m’énervait : je ne voyais pas quand mon perso était en état d’attaque, ou pas.

J’ai donc pris mon courage à deux mains pour trouver une animation de posture de combat, la retarget pour mon mannequin, modifier le C++ pour ajouter une variable bIsInCombat, l’utiliser dans la state machine pour créer un nouvel état ‘en combat’ et jouer la bonne animation suivant la pose voulue.

Ca fait beaucoup de bouts de code un peu partout et ça marche !

Content.