Intelligence Artificielle de Combat : un nouveau système

Répondre
Partager Rechercher
Jamais essayé le système de base pour ma part, mais je demanderais autour de moi!

[Edit] Après consultation, donc, ce qui en ressort le plus c'est le fait que sur Fanelya, les classes avec attaque à distance sont clairement avantagée. Après est ce du à un réglage du script ou au script, a voir avec laban/charlouloute.

Bref, a ne pas lancé avant moult tests.
Je vous rassure tout de suite, je sais bien que c'est loin d'être parfait

Concernant le souci des bas niveaux et tout ça, c'est sûr que c'est le niveau le plus élevé qui va faire monter le Challenge Rating.

Par contre, ce qui manque encore c'est une gestion plus stratégique des cibles : en gros que les créatures avec une AI normale s'attaquent aux créatures de haut niveau.

Pour ce qui concerne les attaquants à distance, je dirai que ça me semble en effet plus réaliste. Cf. l'invention des armes à feu.

Ceci dit, si tu crées des mobs purement mélée et rapides...
On a encore en effet énooormément de paramètres à ajuster. Et effectivement ça stagne encore de ce côté là puisque j'ai repris les cours... j'ai des vacances bientôt je vais faire au max !

Pour l'avantage distance corps-à-corps, c'est assez égal, car (hormis les classes lanceurs de sorts GB ou autre ), le gars avec ses flèches il a une faible CA en général, il attaque à coup de 6 de dégâts (ça vole pas haut), bref, pas la joie, il meurt très vite dès que les mobs arrivent au corps à corps. Le gars au corps-à-corps, ça va devenir difficile quand les mobs fuiront.

En fait, pour l'avoir tester, la meilleure combinaisons c'est un corps-à-corps + un archer (ou distance), comme ça les deux pallient à leurs manques, et finalement on a du RP de groupe et chacun est utile .


Sinon, un problème qu'on a, Lv l'expliquerait mieux que moi : une division par 0 si j'ai bien compris quelque part à cause de la variable pour le paramètre de comportement "sauvage". Ca provoque pas mal de lag apparemment puisque le script bug ou plante ou je sais pas quoi... je sais pas si ça vient de nos modifs ou du script original... à voir donc .
Pour répondre à Heleanna et un peu à Charloulou

Le système est bien. J'ai pesté au début contre les mobs qui fuient. Avec du recul ça a un sens et privilégie la démarche que préconise Charloulou (travailler en équipe).

Il faudrait pouvoir paramétrer un peu mieux cette fuite.C'est frustrant quand tu arrives enfin à amener un mob au seuil 'agonisant' (alors qu'en général ce mob te tue) et que tu peux pas le finir parce qu'il se met à fuir.

En forêt, avec un seuil d'agressivité des mobs à bas niveau, c'est parfait, ça contribue au RP des 'natureux', qui te disent que si tu attaques pas les animaux ils t'attaqueront pas.

En résumé, idée géniale, nécessite quelques réglages.
Citation :
Publié par Laban
Je vous rassure tout de suite, je sais bien que c'est loin d'être parfait

Concernant le souci des bas niveaux et tout ça, c'est sûr que c'est le niveau le plus élevé qui va faire monter le Challenge Rating.

Par contre, ce qui manque encore c'est une gestion plus stratégique des cibles : en gros que les créatures avec une AI normale s'attaquent aux créatures de haut niveau.

Pour ce qui concerne les attaquants à distance, je dirai que ça me semble en effet plus réaliste. Cf. l'invention des armes à feu.

Ceci dit, si tu crées des mobs purement mélée et rapides...
La gestion plus stratégiques des cibles serait un plus, c'est clair.

Par contre, je comprends pas ce que changerait un mob purement mêlée et rapide. Il fuira toujours de suite comme le font certains mobs lorsque le Pj arrive, non? Ne laissant pour le coup aucune chance au PJ cac de toucher l'bonhomme, et donc d'avoir au moins l'xp remise quand on fait fuir le mob. [Edit] Ok compris, my bad.

Aprés c'est aussi une question de la balance cohérence/gameplay que l'on veut sur son mob, et un grand bravo d'avoir conçu ça pour être customizable!
@ Charlouloute : Pour le RP et le groupage, c'est vraiment le but recherché. Concernant la division par 0, Lv que je vois de temps à autre sur IRC ne m'en a pas reparlé. Je l'invite à reporter ça et le reste ( cf. fin du post ).

Sinon j'ai un doute : le système utilise l'heure de jeu comme base de temps pour le respawn. Si tu passes à 1h = 20 minutes réelles... le délai minimal sera 20 minutes.

@ Krighaure :
Merci et content que ça te plaise. Passer des "sacs à XP" à des créatures qui peuvent avoir des réactions imprévisibles demande effectivement un changement de paradigme mais c'est pour le mieux n'est-ce pas ?

@La Fouineuse
: je parlais de "l'avantage des combattants à distance" en disant cela. Ceci dit, dans le cadre de la fuite, hé bien... je dirais qu'il me semble normal qu'un soldat en armure peine à rattraper les fuyards.

Ceci dit, la part d'XP distribuée lors de la fuite peut être modifiée. Par défaut elle est de 50% du total, elle peut être mise à 75% par exemple. Ce qui rend la poursuite des fuyards moins pénalisante.

De plus, il est possible de modifier le Fear Factor, de sorte que les mobs fuient plus ou moins rapidement.

Pour résumer, et tu l'avais compris, les paramètres sont là et tout dépend des administrateurs du module.

De manière générale : J'espère avoir le temps avant Noêl de consacrer du temps pour faire évoluer ce système ( liste des améliorations / bugs sur http://alban.pastebin.com/f16e0104 ). Ceci signifie y consacrer au moins une semaine complète, mais pourquoi pas.

En attendant, je serai content si vous me postez ici vos listes de bugs, d'améliorations potentielles et autres.

Idée curieuse mais intéressante qu'on m'a donné : développer l'empathie des mobs d'alignement neutre / loyal / bon qui ne poursuivraient pas les joueurs qui fuient trop loin.

Idée intéressante mais qui réclame un refactoring du code existant : Avoir des mobs qui poursuivent les joueurs de zones en zones.

Idée nécessaire évoquée ici : système anti-respawn d'un même trigger tant que les mobs n'ont pas été nettoyés.
Deux idées me plaisent :

Idée curieuse mais intéressante qu'on m'a donné
: développer l'empathie des mobs d'alignement neutre / loyal / bon qui ne poursuivraient pas les joueurs qui fuient trop loin

-> En allant plus loin, on pourrait penser aux animaux et aux druides. Mais là je crois que ça devient complexe de trouver un truc qui tient la route.


Idée nécessaire évoquée ici : système anti-respawn d'un même trigger tant que les mobs n'ont pas été nettoyés.

L'idéal selon moi serait que pour chaque variable CREATURE_X, tant qu'il y a un mob de cette ligne, le mob n'est pas respawné. Ca évite de bloquer le re-spawn de mob pour un mob qu'on avait pas vu, mais ça évite aussi la surcharge de mobs .


J'aime pas beaucoup la deuxième, parce que déjà pour les zones comme les villes bonjour la galère... et puis changer de zone reste sur Fanelya parfois le dernier espoir . Et puis y'a un truc que je déteste : mourir pendant la transition parce que le mob a suivit et que nous on a pas fini de charger . Mais après c'est pas moi qui décide
Pour la poursuite des mobs de zone en zone ( cf. mon nouveau topic sur le sujet ) ça voudrait effectivement dire que chaque zone pourrait recevoir une variable "interdisant la poursuite", en autorisant certaines zones de provenance si on va loin.

Mais je te rassure, il est peu probable qu'en l'état j'ajoute ça. Notamment pour le souci que tu évoques : latence de chargement entre joueur et PNJ.
Oui ça fait un moment qu'il faut que je regarde certaines choses mais j'ai pas vraiment le temps. J'ai modifié deux ou trois trucs dans la version que j'ai de ce système, je t'en reparlerais sous irc.

*se dirige vers le crossarea* :)
Bien sur que c'est pour le mieux Laban

Pour la fuite il y a des trucs bizarres :
- un NPC t'attaque, a un certain seuil il fuit, et alors tous les autres de la zone fuient aussi.
- parfois un NPC fuit, puis revient à l'attaque pour fuir dès que tu combat
- un rat sanguinaire et 2 loups sanguinaires t'attaquent (vu les réglages du mod, gros challenge pour un PJ level 8-10). Tu tue un rat, les loups se mettent à fuir alors qu'ils sont encore largement un challenge pour le perso.

Le plus gros défaut du système, c'est que pour un perso qui ne peut compter que sur l'or des mobs, quand il monte en level les mobs fuient plus tôt et il n'a plus de ressources de revenus. Oui je sais ça n'a rien à voir avec le système Laban, mais ça en découle
Citation :
un NPC t'attaque, a un certain seuil il fuit, et alors tous les autres de la zone fuient aussi.
Ca c'est parce que ça fonctionne par équipe. En général, tous les mobs de même "type" sont en une équipe (je pense qu'à terme, j'augmenterai le nombre d'équipe). Quand tu tues un mobs ou en blesse, tu affectes le "moral" de toute l'équipe. Si par malheur tu tues le boss en premier, ça leur fait un gros coup et tout le monde part ... mais ça c'est encore mes paramètres.

Citation :
parfois un NPC fuit, puis revient à l'attaque pour fuir dès que tu combat
Ca j'avoue j'ai toujours pas compris. Je pense à une contradiction entre une forte peur et un comportement définit comme étant "sans peur". Je m'explique : de base, on définit un type de comportement : boss, sous-chef, couard, sauvage, buffer, lanceur de sort, etc..., mais on définit aussi un facteur de peur pour toute l'équipe. Peut être que quand on met "boss" par exemple, il ne sait pas choisir entre la fuite ou le combat à tout prix ?


Citation :
un rat sanguinaire et 2 loups sanguinaires t'attaquent (vu les réglages du mod, gros challenge pour un PJ level 8-10). Tu tue un rat, les loups se mettent à fuir alors qu'ils sont encore largement un challenge pour le perso.
Ca c'est sans doute un paramétrage à affiner de mon côté. J'ai dû, par la variable qui définit le comportement du mob rat et du mob loup, donner plus de poids sur le moral aux rats qu'aux loups, et du coup un rat mort et les loups fuient. Maintenant je ne connais pas la hiérarchie et les proportions "de poids" de ce côté là... c'est sûrement dans le script mais vu que j'y comprends rien .



Citation :
quand il monte en level les mobs fuient plus tôt et il n'a plus de ressources de revenus
Ca c'est encore propre à nous. Mais avec le temps on finit par comprendre quel mob faut tuer en premier, comment faut investir justement entre l'attaque à distance et celle au corps à corps (perso je reste au corps à corps tant que je peux, j'use un peu chaque mob, et quand ils fuient, je les fini un à un à distance... par contre faut pouvoir encaisser... contre les orques je tue le boss parce qu'à coup de 30 dans ma tête ça fait mal et ça va très vite !!!!). Au final, avec certains drops, je m'en sors pas trop mal. Je suis pas super équipé comme quelqu'un qui aurait une solde chez nous, mais je ne souffre pas tant que ça.

Avec les paramétrages améliorés petit à petit, d'ici un an je pense, tout sera parfait .
@krighaur et Charlouloute

Concernant la mort (ou pas) et le loot, c'est à vous de voir. Après tout, pour gagner de l'argent, qui a dit que massacrer était la voie la plus logique ?

Maintenant il faut comprendre qu'il s'agit "d'équipes" et que si on met des rats et des carottes dans la même équipe, quand on massacre les rats les carottes sont cuites et donc fuient. Non j'ai pas honte de ma blague pourrie.

Donc, pour fournir du challenge avec des mobs de différents niveaux dans un même trigger, il faut placer du "petit loup CR2", "loup CR4" et "gros loup CR6", genre.

Ceci dit, le fait que le CR relatif du mob ( son CR par rapport au CR moyen de l'équipe ou au CR max de l'équipe ) soit pris en compte pour la perte de morale est une idée à creuser.

Un petit bug :
vous avez testé avec des Sorciers ( Warlocks ) ? Apparemment les sorts offensifs ne déclenchent pas le combat. Gros souci. Si personne ne l'a remonté c'est que certains doivent en abuser
Citation :
Concernant la mort (ou pas) et le loot, c'est à vous de voir. Après tout, pour gagner de l'argent, qui a dit que massacrer était la voie la plus logique ?
Nous sommes on ne peut plus d'accord. Certains se sont plains de ne pas looter assez... finalement la plupart des personnes ont compris qu'une guilde ou un métier était encore la meilleure solution. Du coup ça va bien mieux au final. Après là où ça devient dur c'est pour les druides où autre qui niveau équipement du coup sont pas mal désavantager. On essaye de creuser pour rétablir ce déséquilibre mais pour le moment tout semble aller plutôt bien je crois.


Citation :
Maintenant il faut comprendre qu'il s'agit "d'équipes" et que si on met des rats et des carottes dans la même équipe, quand on massacre les rats les carottes sont cuites et donc fuient.
Comme j'ai eu plus de 75 zones à peupler, j'avoue que je suis allée "un peu vite" je pense. Enfin j'ai tout de même séparer les animaux sauvages, des animaux sanguinaires, des kobolds et des wyvernes par exemple. C'est en général relativement suffisamment séparé mais certaines zones ne sont pas encore parfaites de ce point de vue là et donc je les paramétrerai à nouveau.


Citation :
Donc, pour fournir du challenge avec des mobs de différents niveaux dans un même trigger, il faut placer du "petit loup CR2", "loup CR4" et "gros loup CR6", genre.
C'est bien comme ça que je faisais.


Citation :
Ceci dit, le fait que le CR relatif du mob ( son CR par rapport au CR moyen de l'équipe ou au CR max de l'équipe ) soit pris en compte pour la perte de morale est une idée à creuser.
Je pense aussi .


Citation :
Un petit bug : vous avez testé avec des Sorciers ( Warlocks ) ? Apparemment les sorts offensifs ne déclenchent pas le combat. Gros souci. Si personne ne l'a remonté c'est que certains doivent en abuser
On a une section bug bien remplie et pourtant celui-ci n'apparaît pas. Un truc que je vais surveiller tient, parce que j'en connais des sorciers qui se plaignaient que tel mob avait parade de projectile et que du coup ils ne pouvaient pas pexer etc... Maintenant, vu la configuration tortueuse de nos maps... m'étonnerait pas que les mobs sautent quand même sur les pjs à chaque fois avant que le pj ait eu le temps d'attaquer . On a rarement l'initiative sur Fanelya je crois .
Citation :
Publié par Laban
Un petit bug : vous avez testé avec des Sorciers ( Warlocks ) ? Apparemment les sorts offensifs ne déclenchent pas le combat. Gros souci. Si personne ne l'a remonté c'est que certains doivent en abuser
J'ai un sorcier sur le module en question, les bestioles lui tombent sur le paletot sans soucis au déclenchement des hostilités (à une époque c'était même l'aggro instantanée universelle omnisciente de zone dès la transition huhu , mais pas spécialement que pour les sorciers).
Ah deux autres trucs :
- quand tu approches d'un mob en mode pistage il fuit pas, quand tu lui fonce dessus il fuit. Logique après tout
- A un endroit il y a des scarabées géants (en général 6 à 8). Bizarrement ils n'attaquent que par vagues de deux, les autres restent à l'écart et attaquent quand leurs collègues sont morts. ET les deux derniers fuient

Ces deux exemples montrent qu'avec un peu d'habitude du système on doit pouvoir créer des comportements de mobs intéressant.

Après il faudrait pouvoir ajouter un peu d'aléatoire, afin qu'on devine un peu moins vite le comportement du mob.

Ceci dit je suis loin d'être un fan du massacre de mob, mais un aventurier sans guilde doit quand même pouvoir vivre
Bonjour,

Comme vous le savez Thelasia utilise l'intelligence artificielle que vous avez créée pour les mobs. Une idée m'est venue récemment, je vais donc exposer le problème (minim) et la solution.

Le spawn de mob est déclenché par l'entrée dans un trigger. De ce fait, sur un module RP, lorsque des PJs s'arrêtent en un point précis pour RP justement, et que cet endroit ce trouve être pile sur un trigger, malgré le délais (s'ils restent vraiment longtemps) : on spawne en boucle. Alors certes, le cas est rare, mais fonctionnant ainsi, un joueur connaissant un tant soit peu le fonctionnement de Neverwinter Nights 2 saura deviner les points de déclenchement.

Ma proposition ne règle pas tout à fait le problème mais le diminue (il n'est déjà pas bien grand) : mettre le déclenchement du script à la sortie du trigger et non l'entrée. On éviterait ainsi les déclenchements en boucle.

Cependant, j'aimerais votre avis de créateur sur la question : le script fonctionnera-t-il toujours aussi bien ?

En outre, j'ai pris l'habitude de créer une zone de déclenchement "incontournable" et fine pour que l'emplacement du déclenchement soit trop précis pour être perceptible précisément par le joueur. Cela vaut ce que cela vaut, mais pour le moment le résultat est plutôt satisfaisant.

Enfin, riches de l'expérience de Fanelya et des conseils que nous prodigua leur équipe, nous sommes, à l'heure actuelle, entièrement satisfait de ce script. Nous avons observé un petit problème mais nous l'avons déjà posté et vous laissons le soin d'en prendre note.
__________________
Je pense que mettre en sortie est une bonne solution, en effet.

Le tout est de bien combiner la forme du trigger, l'emplacement des waypoints et le déclenchement à l'entrée ou à la sortie.

Il semble que c'est ce que vous avez fait.

Vivement que votre serveur marche pour que je vois ça
Citation :
Publié par krighaur
Désolé, j'étais dans l'équipe de Fanelya à la fin, et dans celle de Thelasia, mais je n'ai pas participé à la mise en place de ce système.
Ces 2 serveurs n'existent plus? Vu le travail qui a été fait sur ces persistants... je pense que je vais baisser les bras ...
C'est vrai qu'il y avait eu un travail énorme. J'ai participé à celui de Thelasia et je n'ai pas envie de recommencer.

Laisser tomber ou pas, ça dépends de l'objectif que tu te fixes et de ce que tu attends en retour. Il faut le faire si tu as envie de mener ton projet à bien, mais ne t'attend pas à être considéré pour cela : les mécontents s'expriment souvent plus que les satisfaits.
La doc du système de Laban est pas trop mal faite dans mes souvenirs. A moins que ce ne soit celle qui était utilisée pour Thelasia (Krighaur a peut-être une copie ? si oui ça pourrait être une idée de la poser ici)... Si tu es vraiment en lutte je devrais pouvoir t'aider vers début mai.

P.S. Pour ton module, as-tu considéré l'idée d'utiliser les maps pour un module scénario ? Avantages: tu choisis tes joueurs, le domaine est beaucoup plus restreint (plus rapide à créer, facilité de développement de scripts spécifiques) et à force les joueurs s'entendent bien. Désavantages: pratiquement pas de PvP, et à priori un groupe ayant un ou plusieurs objectifs communs.
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés