JeuWeb - Crée ton jeu par navigateur
[débat 4] L'importance de l'IA... - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Gameplay, gamedesign (https://jeuweb.org/forumdisplay.php?fid=48)
+--- Sujet : [débat 4] L'importance de l'IA... (/showthread.php?tid=3412)

Pages : 1 2 3


RE: [débat 4] L'importance de l'IA... - Argorate - 05-02-2009

Allwise : Oui mais les bots dont tu parles c'est sans doute pour WOW, c'est pas exactement la même chose là ^^

Par contre je suis d'accord qu'il y a suffisamment d'info en BDD pour commencer a avoir une IA intéressante.

Ruz: Ok j'ai mieux compris Big Grin

Sinon tu veux bien précisez ta pensée sur "l'auto-apprentissage" et ton histoire de "génétique", ça m'intéresse Smile


RE: [débat 4] L'importance de l'IA... - MdE - 05-02-2009

Un peu HS mais tout ça me rappelle une des premières discussions que j'avais eu en philosophie en terminale où la prof demandais "Peut-on réduire l'homme à une machine complexe ?". Moi je disais oui ^^. Par contre, arriver jusqu'à un bot autonome qui apprend etc... ça me paraît énormément complexe pour peu.


RE: [débat 4] L'importance de l'IA... - Mycroft - 05-02-2009

(05-02-2009, 06:28 PM)Argorate a écrit : Sinon tu veux bien précisez ta pensée sur "l'auto-apprentissage" et ton histoire de "génétique", ça m'intéresse Smile


http://fr.wikipedia.org/wiki/Algorithme_g%C3%A9n%C3%A9tique

C'est appliquer les principes de l'évolution biologique aux algorithmes.

En gros, pour un jeu où tu génères des PNJ, il faut que la gestion de ton "automate" dépende d'un certain nombres de critères, par exemple :
- agressivité
- couardise (qui décide a quel moment il fuit et si il attaque des cibles pluis puissante que lui)
- curiosité ( degré de volonté à explorer des nouveaux territoires, etc)
- esprit de meute
- etc


Simplement pour créer un nouvelle généraiton de PNJ, tu te bases sur ceux qui ont le plus de "succès" à cette génération là, et tu fais des croisements...

Bien sûr il faut définir ce qu'on appelle "succès" : capacité à survivre, capacité à nuire, à tuer le plus de PJ, à s'enrichir, à gagner le plus d'XP, etc..

Normalement au bout de N générations tes PNJs seront mieux adapté que ceux de la génération 1 qui ont été généré un peu au pif. Smile . Encore mieux si les joueurs changent de stratégie, normalement au bout d'un certains temps tes monstres vont évoluer aussi pour s'adapter.

La difficulté c'est de créer une bonne évaluation du "succès", et de définir des variables intelligentes sur lesquels on peut agir. En soit, c'est aussi compliqué que de développer un jeu complet. Smile.

Comme c'est complexe à mettre en place, à mon avis c'est plus une évolution du jeu, qu'une fonctionnalité de base.


RE: [débat 4] L'importance de l'IA... - Ter Rowan - 05-02-2009

à mon sens il n'y a pas de réponse toute faite à ce débat, cela dépend du contexte

je reprends en grande partie ce qui a déjà été dit plus haut, il faut mesurer le gain / coût de l'IA

pour des PNJ (ou monstre) qu'on rencontre aléatoirement, l'IA n'est pas à être très développée (Ex "attaquer" ou "attaquer si plus fort que l'autre", ou "attaquer si elfe", etc...)

pour des pnj récurrents, quelque chose de plus poussé, avec de la "mémoire" (lui m'a rendu service par le passé, mes relations seront meilleures qu'avec celui qui m'a ennuyé, mais finallement ca revient à la même IA qu'au dessus, avec juste un score supplémentaire par PJ calculé en fonction des actions passées)

pour des cosmes (micro, j'élève des cellules, macro, j'élève des peuples) je reprendrais bien l'idée Mycroft, un peuple/élevage = n comportements, au départ avec une certaine proportion, proportions évoluant dans le temps tant grâce à l'influence du roi/dieu/éleveur que d'événements extérieurs (agression d'un voisin, éruption volcanique, etc...)

mais voilà, inutile de sortir l'artillerie lourde pour gérer l'ours qu'on croise au détour d'un chemin


RE: [débat 4] L'importance de l'IA... - Ruz - 05-02-2009

merci Mycroft ^^

ouaip, l'idée, c'est de générer un nombre conséquent de comportement différent.. voir ceux qui s'adaptent le mieux à une telle ou telle situation donnée, et sélectionner...
Enfin, au final, avoir une IA qui "s'adapte" au joueur en face... un monde vivant où chaque combat est unique ^^
bon, rêve irréalisable, mais bon, c'est une passion, alors, ca prendra le temps qu'il faudra... pour un résultat le plus chouette possible.
M'enfin, oui, c'est pas la fonctionnalité première à implémenter...


RE: [débat 4] L'importance de l'IA... - Zamentur - 06-02-2009

Concernant le test de Turing qui a été cité, ce test est généralisable et ne s'applique pas qu'aux écrits...
En l'occurrence un combat pourrait être un test de Turing(généralisé): alors est ce que tu t'es battu avec un pnj ou un vrai joueur?

C'est drôle parce que je discutais (par msn) de l'IA avec ReivaxHerica de Nemesis.
Bon et j'ai émis l'idée que pour simuler de façon correcte un joueur, le plus simple était peut être de les copier...
Ainsi il faut prendre des critères (çà rejoint un peu l'idée de Mycroft) afin de comparer ceux ci à une base de donnée de vrai joueur dont on a l'enregistrement des actions.
On prend le plus semblable et on applique les actions qu'il a effectué à ce moment là.

Ainsi on a des PNJ qui simuleront complètement les réactions d'un joueur par de multiple petit bout de jeu de joueur.

Voilà pour moi un exemple d'IA qui est assez général pour etre applicable sur la plus part des jeux.

A noter qu'il est assez difficile de faire la différence entre un enregistrement et une vrai réaction surtout si on change l'enregistrement lors de l'interaction avec un joueur pour simuler une réaction...


RE: [débat 4] L'importance de l'IA... - phenix - 06-02-2009

Je suis heureux de constaté que la vallée des larmes possède ce que tu appel une IA de niveau 3. Ben franchement c'est beaucoup de travail pour un résultat vraiment moyen.

Mes monstres sont capable de:

- Accumulé des points d'action pour faire plusieurs attaque a la fois.
- Sélectionner leur cible en fonction des niveaux des joueurs en vue.
- Poursuivre les joueurs (ou pas...)

Le rendu final est plus que moyen, même le dernier des attardés est capable de leurrer un monstre. Bon, les quelques bug présent y sont aussi pour quelques choses, mais passons.

C'est extrêmement dur à développer, et il faut vraiment pensé a un maximum de cas de figure pour évité de tombé dans les problèmes et les comportement bizarre.


RE: [débat 4] L'importance de l'IA... - Mycroft - 06-02-2009

(06-02-2009, 12:38 AM)Zamentur a écrit : Concernant le test de Turing qui a été cité, ce test est généralisable et ne s'applique pas qu'aux écrits...
En l'occurrence un combat pourrait être un test de Turing(généralisé): alors est ce que tu t'es battu avec un pnj ou un vrai joueur?

C'est drôle parce que je discutais (par msn) de l'IA avec ReivaxHerica de Nemesis.
Bon et j'ai émis l'idée que pour simuler de façon correcte un joueur, le plus simple était peut être de les copier...
Ainsi il faut prendre des critères (çà rejoint un peu l'idée de Mycroft) afin de comparer ceux ci à une base de donnée de vrai joueur dont on a l'enregistrement des actions.
On prend le plus semblable et on applique les actions qu'il a effectué à ce moment là.

Ainsi on a des PNJ qui simuleront complètement les réactions d'un joueur par de multiple petit bout de jeu de joueur.

Voilà pour moi un exemple d'IA qui est assez général pour etre applicable sur la plus part des jeux.

A noter qu'il est assez difficile de faire la différence entre un enregistrement et une vrai réaction surtout si on change l'enregistrement lors de l'interaction avec un joueur pour simuler une réaction...

C'est pas si simple de copier les actions d'un joueur, parce que dans la table des "actions" tu n'as à priori pas les infos sur l'environnement, ou le déclencheur qui a poussé le personnage à agir.

Par exemple si un personnage se déplace pendant plusieurs tours dans une direction donnée, est-ce que c'est pour suivre quelqu'un ou quelque chose, fuire un prédateur, se rendre dans un lieu particulier, etc...

J'ai l'impression qu'en copiant simplement il risque d'y avoir des comportements un peu erratiques...

Mais peut-être que j'ai mal compris ton idée, ça m'intéresse que tu développes sur la façon dont tu comptes contourner ce problème.


RE: [débat 4] L'importance de l'IA... - Argorate - 06-02-2009

Oui, donc pour l'histoire de "génétique", c'est bien se que j'avais en tete, même si le terme génétique n'est pas le plus pertinent ici, puisqu'on parle de comportement et de choix et qui n'est donc pas régis par les gènes (vive le libre arbitre...) Enfin bref passons ^^

Donc on travail sur des comportements. Le problème c'est: comment vous déterminez quand on doit passer a une "génération" suivante? Quand es-ce qu'on check-liste chaque pnj pour voir s'ils ont accomplit leurs taches? Pour pouvoir juger si leur méthode de comportement est la bonne?
Tout les 1er du mois? Tout les 15 jours? Combien de temps faut-il pour qu'ils aient pour évoluer?

phenix: Cela tombe bien que tu es une IA de ce niveau, tu pourrais nous éclairer sur ce que tu appels esquiver facilement les monstres? Et les bugs/problèmes que tu as rencontré, histoire qu'on y fasse nous même attention pour éviter de les reproduire.

Sinon, Zamentur : Je suis assez retissant a ton idée de reproduire le comportement des joueurs, comme l'a dit Mycroft, cela conduirai a des non sens et a des comportements pouvant s'éloigner de ce qu'il faudrait.
De plus cela suggère de stocker toutes les actions (ou du moins un grand nombres pour pouvoir varier) de tous les joueurs et dans le bon ordre... Je trouve que ce serait une perte de temps d'exécution (faire des INSERT UPDATE pour ça a chaque actions des joueurs) et de place en BDD pour finalement un résultat totalement aléatoire...


RE: [débat 4] L'importance de l'IA... - wild-D - 06-02-2009

l'idée de s'inspirer des actions des joueurs est intéressante, mais je pense assez utopiste...

y a pas seulement les motivation auxquelles ont a pas accès comme le souligne mycroft

y a en plus un facteur bête et méchant que vous zappez un peu: un PNJ ne remplit pas forcément un rôle équivalent à un PJ; un loup/troll/autre(PNJ) n'a pas à avoir un comportement "de PJ paladin/sorcier ou que sais-je".

Les PNJ sont bien souvent utilisé pour remplir un rôle différent de celui de PJ. (sinon à quoi ça sert d'avoir des PNJ ?)
Quel PJ voleur seraient heureux de se faire massacrer par des paladin à longueur de temps... ou inversément quel paladin serait enchanter de voir les voleurs toujours réussir à v(i)oler impunément la veuve et l'orphelin.
Si effectivement le PJ vs PJ offre souvent les défis les plus intéressant; il est aussi source de bien des tentions si on donne aux PJ des roles/objectifs systématiquement "irréalisables" en situation purement PJ vs PJ.

"Perdre/échouer" n'est pas forcément plaisant... alors il est courant de ce faciliter la tache en offrant le rôle du mauvais perdant aux PNJ ^^

-ça me fait un peu chier, mais j'ai zapper un peu ça sur mon jeu, et je sais pas comment le rattraper; parce que franchement hors système ELO, avec handicap, ou autre, je suis pas spécialement fan du pur PJ vs PJ ou faut que que systématiquement ce soit le plus intelligent/doué/etc... qui ait le plaisir de la "gagne" au détriment des autres; l'équilibrage d'un jeu vise finalement aussi à ça; essayer de répartir, optimiser les chance (de plaisir) de chacun.-

--
les algo génétique j'avais un peu regardé je trouvais ça très intéressant en théorie, mais j'ai jamais bien compris comment utiliser ça en pratique.Tongue

Sur le principe, me semble que pour les algo "génétique"; normalement tu fais comme dans la vraie vie; tu joue pas avec des générations séparées (genre je balance ma première génération et j'attends x temps, pour regarder le résultat, et générer ma 2e génération en "accouplant" les meilleurs).
à chaque fois que tu veux générer un nouveau PNJ tu piques 2 parents dans le lot des PNJ actuel que tu passe dans un "accoupleur" et tu rajoute un facteur "mutation" (pour permettre à ton algo génétique de tatonner/chercher de nouvelle piste; faut pas qu'il soit trop élever pour permettre à la sélection naturelle d'avoir le temps de faire son travail).

enfin bon toute la subtilité et de bien choisir le trio objectif/accouplement/mutation et le temps de reproduction.

note que l'accoupelement n'a pas à être "bisexué" (càd avec 2 individus... ça peut être 1(en gros y a que le facteur mutation), 2, 3, 4,...)