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


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

Bonjour a vous,

Me voilà repartie dans mes interrogations existentielles concernant divers points liés à la création d'un jeu php amateur.

Aujourd'hui le sujet qui me plairait d'aborder serait le suivant: La place de l'Intelligence Artificiel au sein de nos jeux!

En effet, la plus part des jeux web ont un «semblant » d'IA.

Que ce soit des vaisseaux pirates dans l'espace, ou des gardes dans une ville, ou un sage dans une cabane au fond de la forêt, ou bien encore le marchant/forgeron du coin, il y a bien souvent de multiple façons d'introduire ce qu'on appel les PNJs (Personnage Non Joueur).
Mais de ce que j'en ai vu, ce genre d'IA est généralement, relativement peu développer dans le sens où il n'y a uniquement que quelques actions assez restrictives, qu'il est possible d'effectuer sur ces-derniers. Et eux a l'inverse n'exercent pas d'actions sur les joueurs.
Alors vous allez me dire, « pas toujours », et c'est bien vrai, j'ai eu l'occasion d'observer ce que j'appelle moi même des IA de niveau 2 : Une IA qui présente un minimum d'autonomie;
Par exemple des créatures à déplacements aléatoires (capacité : mouvement aléatoire), ainsi qu'attaque sur les joueurs imprudent allant a sa rencontre. (capacité : une action précise, dans un cas bien précis)

Cependant ce genre de comportement reste encore limité a mon goût, et ne représente pas bien ce qui se passerais en réalité. Imaginée, vous passez dans le champs de vision d'une créature hostile quelconque, il semble assez peu probable qu'en vous voyant passer, il ne se mette pas à charger!
Cela sous entend donc une intelligence un peu plus élevé. Je n'ai connut qu'un seul jeu ayant une IA de niveau 3, c'est a dire où les monstres non seulement attaqué les passants, mais en plus de cela les poursuivaient! (capacité : déplacement dans une direction non aléatoire => plus intelligent).
C'est ce genre d'IA qui m'intéresse, et je pense même que l'on pourrait aller encore plus loin!
Exemple: pour les PNJs marchands, qu'ils ne se contentent pas de dire « bonjours, bienvenue dans mon magasin », un PNJ qui serait capable de proposer aux passants des marchandises, de commercer...
Qu'un joueur puisse être interpellé par un PNJ quand il se promène tranquillement dans la rue d'une ville! Je trouve l'idée assez puissante. ^^

Ma question serait donc : Quel idée de fonctionnalités que peut posséder une IA, avez-vous?
Qu'es qui pourrait s'apparenter a un « niveau 4 »?
Et pour finir, quel est votre avis sur les PNJs en général, es-ce que vous préférez une IA de base, ou quelque chose de plus évolué, ou carrément que les IA gâche un jeu, et qu'il est préférable de laisser les joueurs entre vrai joueurs?

Vilou, merci. Smile


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

J'ai trop peu d'expérience dans les jeux @ navigateur pour savoir ce qui s'y fait en terme d'IA.
Cependant, je pense que l'IA est systématiquement une bonne chose, tant qu'elle est cohérente avec le jeu et qu'elle n'est pas trop intrusive, pas lourde... Pour les monstres qui attaquent automatiquement et qui suivent le joueur par exemple, c'est bien mais il faut pondérer cette fonctionnalité avec une notion d'hostilité... Sinon, le pauvre joueur qui se fait taper dessus dès qu'il croise un monstre, tout le temps, il risque d'en avoir rapidement marre.
Je dirais aussi que plus l'I.A. est poussée, meilleure en sera l'immersion du joueur dans l'univers du jeu, sauf si le concept même du jeu ne repose que sur les interactions avec les autres joueurs. Sinon, l'IA apporte justement de la flexibilité à ce niveau, et permet aux joueurs de s'épanouir sans forcément interagir avec les autres joueurs, mais avec le monde, les PNJ, les monstres, et autres trucs de l'univers du jeu.

En résumé, il faut favoriser les interactions entre les joueurs parce que c'est une expérience qui sera toujours plus enrichissante que de simples interactions avec un monde figé, statique, sans surprise. Mais si possible, développer une IA est une bonne chose pour rendre l'univers plus sympathique, et pour ne pas laisser en marge les joueurs solitaires / seuls.


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

Je commence doucement à penser à l'IA de mon jeu, et ca risque d'être assez complexe. Je m'explique :

Monstres:
En gros, chaque monstre n'est pas agressif, et encore moins face a un guerrier niveau max full équipé. Chaque monstre est relié à un type de comportement (agressif, neutre, fuyard) basique, qui doit s'adapter au truc en face (pas envie que les niveaux 10/20 soient constamment agressés par des rats). + un comportement spécial en cas de PV très faibles.

En dehors de ca, les monstres se baladent en groupe/meutes => comportement cohérent à prévoir pour chaque membre. (sachant que des groupes de monstres peuvent contenir plusieurs types de monstres (le sorcier se baladant avec 2 serviteurs et sa garde)). Bref... je rajoute encore un niveau: l'IA de groupe.

Comment faire ca?
ben, j'avoue ne pas encore savoir... surtout que chaque "monstre" peut posséder un équipement aléatoire, avoir des compétences spéciales (furtivité) et meme des attaques uniques.

PNJs:
- marchands : restent en magasin. ils ont des compétences, et des caracs de base => doivent pouvoir gérer automatiqueemnt un marchandage avec mémoire à long terme (va donc marchander 2 heures avec un marchand pour lui dire "non, désolé, je prends pas"... Pas sur que la fois prochaine, il t'offre la meme réduction.)
Etat: partiellement implémenté.

- autres : euh... a part pour lancer des quetes, euh... a voir (les quetes sont un truc qui arrivera encore plus tard)

enfin, bref: IA la plus crédible possible en ce qui me concerne. Un PJ doit SURVIVRE dans mon monde ^^ (MJ sadique inside)
maintenant, je suis ouvert à tout projet de développement d'une IA de ce genre avec 'autres motivés.

PS: j'oubliais: le monde à une sorte d'IA aussi... enfin, non, pas une IA, une dynamique... en gros, le gars qui coupe un arbre fait apparaitre une souche. Plus tard, la souche évolue avec un petite pousse... puis un jeune arbre, et un nouvel arbre... la boucle est bouclée... plusieurs semaines nécessaires pour ca, en fait. Idem avec cultures, cueillette, etc... (en place aussi, partiellement)


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

je crois pas qu'il y ai bcp de jeu avec une "vraie" IA (càd capable d'évoluer, s'adapter, d'apprendre d'elle-même en fonction de ses expériences etc)

les "IA" des jeux web sont souvent ce qu'il y a de plus archaique (le IA tiens plus de Interaction Archaïque que d'Intelligence Artificielle): un simple processus action->réaction; auquel parfois on ajoute un peu de rand() histoire d'éviter que ce soit totalement rigide.


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

Je suis de l'avis de l'avis de wild-D, le terme d'intelligence artificielle est un peu galvaudé, c'est plus souvent de scripts assez basiques qui réagissent à un certains nombres de situations, il n'y a pas vraiment d'apprentissage.

Ensuite pour ta définition d'IA niveau 4, c'est assez simple de caractériser une "bonne" IA : elle doit réagir exactement comme un joueur, que ce soit impossible de faire la différence entre personnages joueurs et non-joueurs.

On peut déjà émettre un bémol sur le langage sinon ça veut dire que tu passes le test de Turing, par contre pour les aspects "en jeu" au niveau des actions, si tu arrives à "imiter" un joueur, c'est parfait !


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

Allwise :
Citation :Pour les monstres qui attaquent automatiquement et qui suivent le joueur par exemple, c'est bien mais il faut pondérer cette fonctionnalité avec une notion d'hostilité... Sinon, le pauvre joueur qui se fait taper dessus dès qu'il croise un monstre, tout le temps, il risque d'en avoir rapidement marre.
Je suis totalement dans ce cadre là, chaque monstre a son degrés "d'agressivité", ce qui revient un peu à se que disais Ruz concernant le "type de comportement (agressif, neutre, fuyard)".

Je suis bien d'accord que cela peut être un n-ieme bon moyen pour l'immersion du joueur dans un univers.

Par contre, Ruz:
Citation :En gros, chaque monstre n'est pas agressif, et encore moins face a un guerrier niveau max full équipé. Chaque monstre est relié à un type de comportement (agressif, neutre, fuyard) basique, qui doit s'adapter au truc en face (pas envie que les niveaux 10/20 soient constamment agressés par des rats). + un comportement spécial en cas de PV très faibles.
Je n'aime pas l'idée d'empecher/interdir que des rats (ou autres) attaque des lvl 10, 20 , 100 000... peut importe. Pour moi on doit conservé l'esprit de réalité, les rats sont pas assez intelligent pour se rendre compte qu'il s'attaque a plus fort qu'eux, donc je trouverais ça même amusant a la limite qu'un joueur reçoive un message au chargement de sa page du style:
"un rat a tenté de vous attaquer, après avoir peiné à monter sur votre pied, le rat s'est cassé une dent en essayant de vous mordre sur votre jambière. vous l'avez finalement écrabouillé d'un coup sec, et poursuivit votre chemin". ^^

A la limite qu'en fonction de la carac. intelligence, certains monstres comprennent qu'ils n'ont aucune chance et préfère fuir, là oui, ce serait de l'intelligence, et une bonne IA, mais pas tous.

Citation :En dehors de ca, les monstres se baladent en groupe/meutes => comportement cohérent à prévoir pour chaque membre. (sachant que des groupes de monstres peuvent contenir plusieurs types de monstres (le sorcier se baladant avec 2 serviteurs et sa garde)). Bref... je rajoute encore un niveau: l'IA de groupe.

Comment faire ca?
ben, j'avoue ne pas encore savoir... surtout que chaque "monstre" peut posséder un équipement aléatoire, avoir des compétences spéciales (furtivité) et meme des attaques uniques.

J'y est également pensé, c'est effectivement se qui pourrait s'apparenter au niveau 4. Mais comme toi j'avoue que c'est assez flou quant à la manière de créer une horde autour d'un chef etc.
Bien qu'un peu définir ces liens dans une table créé à cet effet...

Citation :les "IA" des jeux web sont souvent ce qu'il y a de plus archaique (le IA tiens plus de Interaction Archaïque que d'Intelligence Artificielle): un simple processus action->réaction; auquel parfois on ajoute un peu de rand() histoire d'éviter que ce soit totalement rigide.
J'aime bien t'a nouvelle définition de IA :p

Et je suis d'accord que généralement, l'IA est plutôt un "fake", un assortiment de rand() suite a certaines actions types, comme tu le dis. C'est bien dommage d'ailleurs! :mauvais:


EDIT: Mycroft : Je suis d'accord qu'il serait excellent de parvenir a imiter un joueur, mais c'est cependant une tache assez ardu quand on y réfléchit. Les joueurs ont un but, les bots n'en ont pas vraiment, alors c'est vrai qu'on pourrait leur en définir, mais bon l'IA n'a pas accès aux informations comme les joueurs, certaines chose leur manque, il est presque impossible d'arriver a faire pareil qu'un humain. Avec un exemple simple, si ils ont besoin d'équipement il fraudais qu'il se rende dans le magasin, et achète, mais sa sous entend d'avoir de l'argent donc d'avoir fait plein d'autre chose avant, enfin c'est très difficile a faire...
Et je ne parle mémé pas de la communication et des messages échangé par l'écrit...


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

(04-02-2009, 02:30 PM)Argorate a écrit : EDIT: Mycroft : Je suis d'accord qu'il serait excellent de parvenir a imiter un joueur, mais c'est cependant une tache assez ardu quand on y réfléchit. Les joueurs ont un but, les bots n'en ont pas vraiment, alors c'est vrai qu'on pourrait leur en définir, mais bon l'IA n'a pas accès aux informations comme les joueurs, certaines chose leur manque, il est presque impossible d'arriver a faire pareil qu'un humain. Avec un exemple simple, si ils ont besoin d'équipement il fraudais qu'il se rende dans le magasin, et achète, mais sa sous entend d'avoir de l'argent donc d'avoir fait plein d'autre chose avant, enfin c'est très difficile a faire...
Et je ne parle mémé pas de la communication et des messages échangé par l'écrit...

Tout est en base de donnée donc les PNJs ont accès aux même données que les joueurs (voir plus Smile )! Mais je suis d'accord, la complexité est plutôt dans la simulation du comportement.

A mon avis, une solution est de créer une petite machine à état pour gérer différentes situations.

Par exemple, créer les états:
- patrouille
- repos
- combat
- fuite.
- achat équipement
- etc...

Décider quelles sont les transitions autorisées entre ses états et les tester à régulièrement.

Par exemple, si un personnage est en patrouille depuis trop longtemps si son état de fatigue est trop élevé il passe en repos. Il repasse en patrouille quand il est suffisament reposé, etc..
Si j'ai le temps ce soir je poste un petit exemple en image.

Après c'est à adapter à ton jeu Smile.


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

Je suis ok, sauf quand tu dis que le bot a accès aux même infos que le joueur. Peut être que dans ton jeu tu as tout en BDD, pour ma part, se n'est pas le cas. il y a de nombreuses informations contenu dans les pages.

Exemple tout bête le cout des déplacements/terrain.

De toute manière, il y a des info qui ne peuvent être importé en BDD, du style si une quête te décrit un lieu où chercher un objet, c'est très difficile de faire réfléchir le pnj...
Ou encore comme les événements RP, ou les intentions des joueurs. (exemple l'attaque d'une guilde peut avoir été discuté sur le forum du jeu, le pauvre bot lui, ne sera jamais au courant de tout se qu'il s'y dit...)


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

(04-02-2009, 02:30 PM)Argorate a écrit : Par contre, Ruz:
Citation :En gros, chaque monstre n'est pas agressif, et encore moins face a un guerrier niveau max full équipé. Chaque monstre est relié à un type de comportement (agressif, neutre, fuyard) basique, qui doit s'adapter au truc en face (pas envie que les niveaux 10/20 soient constamment agressés par des rats). + un comportement spécial en cas de PV très faibles.
Je n'aime pas l'idée d'empecher/interdir que des rats (ou autres) attaque des lvl 10, 20 , 100 000... peut importe. Pour moi on doit conservé l'esprit de réalité, les rats sont pas assez intelligent pour se rendre compte qu'il s'attaque a plus fort qu'eux, donc je trouverais ça même amusant a la limite qu'un joueur reçoive un message au chargement de sa page du style:
"un rat a tenté de vous attaquer, après avoir peiné à monter sur votre pied, le rat s'est cassé une dent en essayant de vous mordre sur votre jambière. vous l'avez finalement écrabouillé d'un coup sec, et poursuivit votre chemin". ^^

A la limite qu'en fonction de la carac. intelligence, certains monstres comprennent qu'ils n'ont aucune chance et préfère fuir, là oui, ce serait de l'intelligence, et une bonne IA, mais pas tous.

Suis entièrement d'accord, me suis sans doute mal exprimé, et l'exemple mal choisi ^^
En gros, je reprécise: je n'ai pas envie qu'un joueur de très haut niveau se fasse agro par tout et n'importe quoi... maintenant, faut voir le système de gestion des monstres. En ce qui me concerne, je génère 5 groupes (1 à X membres) à chaque instanciation d'un groupe + regénération quand il n'en reste plus assez (2/3)

Le rat ne sera jamais seul... et de fait, une armée de 24 rats contre un indiviu seul, ben, ca peut embeter... RP, c'est acceptable... en jeu, c'est plus lourd. Imagine, tu as un perso, tu parcours le monde pour trouver du lion/panthère/orc qui peut t'offrir richesse et gloire (et XP ^^) enfin, bref... tu parcours des lieux, et hop, tous les dix mètres, une armée de rats qui t'attaque... Tu vas jouer longtemps?
Moi, perso, deux jours, et au revoir.

par contre, intercepter l'attaque niveau code, doser le niveau de difficulté, et transformer ca en petit message RP quand c'est victoire assurée, ben, oui, pourquoi pas ^^ (je précise aussi que chaque monstre possède ses propres caracs... intelligence comprise. En gros, la combinaison (intelligence/agressivité/conditions environnementales/autres à définir) doit définir la réaction d'un monstre envers un groupe.


En résumé : Techniquement, oui, aucune limitation ne se justifie... c'est juste une manière de pas trop gonfler les grosbills joueurs avec de la piétaille sans importance. (en gros, c'est à ajuster en fonction du type de monstres/cartes/jeu)

Et perso, j'ai bien envie d'un système d'auto-apprentissage pour mes monstres... (en gros, l'approche "génétique" pourrait intervenir... générer des séquences de combats, mémoriser celles qui sont bonnes, et combiner le tout... voir quelles combinaisons fonctionnent, etc... du gros boulot à venir...)
Bon, allez, je quitte... du boulot m'attends ^^ Mais intéressant, ce débat ^^


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

Argo, l'accès aux données dépend de l'organisation de chacun. Mais en théorie, si les données sont accessibles aux joueurs, elles peuvent l'être par le serveur, vu que c'est le serveur qui les délivre. Après bien sûr, si les données ne sont liées d'aucune façon : genre ton exemple avec les quêtes, ou si elles sont dans des images, on pourra pas en faire grand chose.
D'où l'utilité de penser a priori à une façon de stocker ses données qui permette de les lier / de les récupérer facilement (vive les SGBDR).
Niveau complexité de mise en place d'une IA, je pense aux bots développés pour tricher dans certains mmo, et qui sont très complets : ils se déplacent tous seul, ils tapent les monstres qu'on leur dit de taper, ramassent des objets, les revendent, se reposent si besoin, sont capables de "converser" avec des npc ( voyage, vente, achats... ). Ils sont même capables d'éviter les joueurs, de se déconnecter lorsqu'ils en rencontrent un ou encore de leur répondre des phrases prédéfinies... La totale quoi.

Par contre, je vois mal un bot capable de participer à une guerre de guildes, faire du RP... Ce sont des choses que les joueurs veulent partager avec d'autres joueurs, pas avec des bots. Si un bot peut en tout point remplacer un joueur, le jeu ne serait plus qu'un mi-MMORPG.