|
Bonsoir à tous,
Je vais essayer de faire rapide sur l'introduction pour passer le plus rapidement possible aux choses sérieuses et intéressantes. Mon but est de vous présenter une voie de l'intelligence artificielle, à savoir les systèmes multi-agent, appliquée au sujet qui nous regroupe tous ici : les jeux-vidéos(what else ?). Cette démarche n'est pas tout à fait désintéressée car rendre compte et transmettre les informations sera une compétence indispensable dans ma vie future, vous êtes donc mes cobayes! Préliminaires Commençons les présentations. Les systèmes multi-agents : Une définition en provenance de Wikipédia : Citation :
Comment marchent les SMA dans le micro-climat de Lille ? J'ai assisté il y a quelques semaines à une conférence de Philippe Mathieu, responsable de l'équipe SMAC(Systèmes Multi-Agent et Comportement) du laboratoire LIFL situé à Lille. Il venait expliquer la vision de son laboratoire et l'orientation de leurs recherches.Cette conférence a été intéressante, comparativement à d'autres, car leur approche est vraiment très différente de tout ce que j'ai pu lire ou voir auparavant. Généralement dans les systèmes multi-agent, la grosse partie du travail est de programmer les agents. Définir leurs comportements, leurs réactions, le plus souvent dans un cycle Perception => Décision => Action. Cela se fait à coup de if de case et de toutes ces structures qui rendent un code illisible. De plus programmer de cette façon revient à modifier l'agent à chaque changement de comportement et rend celui-ci non exportable vers un autre système. Mais cré fin dieu, un système multi-agents comporte des agents ! On doit bien, à un moment ou à un autre, s'en occuper ? Le LIFL nous répond : non. Du moins ils voient les agents comme des coquilles vides. Ce qui compte réellement, et ce qui fait l'intérêt de la chose, ce sont les interactions entre les agents. Ils ont donc développé une plateforme spécifique permettant de programmer les interactions et lorsqu'ils désirent lancer un système, sélectionne les interactions désirées dans le système, leur répartition en % de population et c'est parti. Les agents deviennent donc des pièces de puzzles sur lesquels ont greffe des formes pour les assemblées. Cela me permet d'introduire un peu mieux ce qu'est une interaction. Une interaction doit avoir un exécutant(l'agent qui fait l'action) et une cible(l'agent qui reçoit l'action). Ainsi un homme mange une pomme(exécutant) et la pomme est mangée(cible). Les interactions sont donc codées ainsi en mentionnant un exécutant et une cible sans jamais être restrictif sur une classe d'agent spécifique ce qui la rend portable. De là nous pouvons imaginer les intéractions comme les formes que l'on rajoute aux pièces d'un puzzle : les trous(cible de l'action) et les boules(exécutant). Lorsque deux côtés concordant se rapprochent l'actions s'effectue. Ce serait un peu trop facile. Nous ne contrôlerions pas alors quand les intéractions s'effectue et sous quelles conditions. Ainsi en plus une interaction à des conditions(qui disent si l'action est possible) et des déclencheurs(qui disent si l'action a besoin d'être faites). Pour exemple : Une personne a faim(déclencheur) et si de la nourriture est à portée(condition) elle va manger. Sur ce premier exemple on comprend bien l'intérêt d'exporter l'interaction, celle-ci pourra sans problème allez se greffer sur un renard, une taupe ou qu'importe. Dernier mot sur les interactions, la programmation d'un système de cette manière est grandement simplifiée. Une fois les interactions programmées, pour lancer une simulation il faut ajouter les catégories d'agents(lapin, renard, baie). Celles-ci sont alors représentées dans un tableau en colonne et en ligne. Il ne reste plus qu'à ajouter à l'intersection voulue l'interaction désirée. Par exemple entre renard et lapin on met mange (ligne exécutant, colonne cible). Et c"est parti ! Applications Tout ça c'est très bien mais pour quoi faire ? Tout en bas de la page du LIFL vous trouverez des démonstrations. Leur plateforme est également en démonstration dans la partie IODA. Les exemples que M.Mathieu m'ont parlé et je vais vous les répéter. Simulation de phénomènes physiques / biologique. Par exemple création de protéine et leur auto-inhibition. Ils représentent un brin d'ADN et celui-ci produit des protéines. Celles-ci une fois "en liberté" viennent se fixer sur le brin et inhibe la production. Le phénomène a pu être reproduit en simulation. Nous avons par exemple les unités dans Age of Empire. Un villageois coupe un arbre, l'arbre tombe, le villageois ramène l'arbre. C'est le villageois qui seul va regarder dans son entourage si il y a un arbre, aller couper celui-ci et décider de ramener l'arbre au forum(pas trop le choix on l'a programmé pour ca). Dans le Seigneur des Anneaux également. Les scènes de bataille épiques sortent des sentiers battus et des traditionnels copiés/collés plus ou moins dissimulés. Les développeurs ont placé des agents capables de donnés des coups d'épées(4 sortes de coups différents) et d'autres capables de recevoir(ces mêmes 4 coups). On donne une seule action à chaque agent, un peu de probabilités pour la répartition, et c'est parti. Plus qu'à rendre en 3D!(euphémisme). Future application(et peut-être scoop!), le LIFL serait en collaboration avec Ankama pour une application d'un tel système à un MMO à succès(chut!). Et dans les jeux-vidéos? Tout cela pour en arrivée à la conclusion que les systèmes multi-agents font leur petit bonhomme de chemin. Depuis longtemps qu'ils sont connus, ils gagnent leurs lettres de noblesse à chaque nouveau secteur où ils s'appliquent. Leur plus grande avancée à mon sens dans les jeux-vidéos a été les Sims. Les avatars y sont capables de savoir quelles interactions ils peuvent faire avec les objets à l'entour et prennent des décisions selon leurs besoins. Les Sims me permettent de faire la transition vers les scénarios émergents. Ce jeu en est un parfait exemple. Ainsi celui-ci n'est pas fortement scénarisé. Pas de vaisseaux extra-terrestre, pas de monde Heroic, ... pas de background. L'intérêt et l'attrait pour le joueur vient de ces intéractions. Toutes ces tâches à effectuées mises bout à bout forment une histoire et un lien avec l'avatar qui plongent ainsi aussi profondément le joueur dans le jeu qu'un scénario classique. Il est vrai que les agents ne font pas tout seuls. Les game-designer rajoutent quand même des éléments clés qui donnent encore plus d'intérêt et font un peu bouger le monde du joueur. The End Mais je suis persuadé que dans le très jeune, et très immature, monde du jeu-vidéo, les idées seront bientôt assez claires pour nous offrir des univers ludiques et dynamiques plus consistants que MyPet sur DS. Cependant, à l'instar de certains grands secteurs que je ne citerais pas, les éditeurs de jeux ont-ils intérêt à ce que des jeux qui sont, potentiellement, à durée de vie illimitée voient le jour ? Cette question n'appelle pas forcément à réponse étant assez polémique et juste lancée en l'air. Voilà, fin de l'exposée Assez parlé de techniques ! Que pensez-vous des univers multi-agent, si vous avez pu les expérimenter, dans l'univers des jeux-vidéos? Apporte t-ils quelque chose de nouveau ? Ou doivent ils être couplés avec d'autres systèmes pour fournir un jeu attrayant ? Personnellement je suis fan. Récemment Settlers 6 m'a offert une démonstration de cela et j'ai apprécié pouvoir suivre leur raisonnement et leurs objectifs par le biais de leur humeur. Pour moi il y a vraiment un concept à creuser. Peut-être que cela ne pourra pas s'appliquer à tous les types de jeux. Mais je pense entrevoir des possibilités dans mes deux formats de jeux préférés (MMO & Gestion\Stratégie). Je vais conclure par cette citation qui donne espoir pour l'avenir des SMA : Citation :
|
19/03/2008, 22h00 |
|
Aller à la page... |
Les systèmes multi-agents : de la simulation aux scénarios émergeants
Suivre Répondre |
|
Partager | Rechercher |
Alpha & Oméga
|
J'ai l'impression que ce système "multi agent" n'est finalement "que" de la POO avec gestion d'évènement, sous un autre nom. Ai-je loupé quelquechose?
|
20/03/2008, 09h48 |
|
Assurancetourix |
Voir le profil public |
Trouver plus de messages par Assurancetourix |
Lyta Alexander |
Voir le profil public |
Trouver plus de messages par Lyta Alexander |
|
Citation :
Comme le dit Ebe c'est vrai que le sujet est vaste. Surtout si on considère tous les aspects de l'intelligence artificielle.Encore une fois c'est juste mon avis et mes idées que j'exprime dans les exemples, loin d'êtres complètes et cohérentes Ce que tu décris(au niveau du football, un exemple de multi-agent sur le football est d'ailleurs disponible ^^)je le vois plus comme de l'évolution des connaissances des agents(par exemple réseau de neurone). Dans un SMA, à priori, le code et donc le comportement de l'agent est figé. Après on peut combiner différentes techniques ensemble, mais là ca va trop loin pour moi Alors c'est sur qu'on peut considérer que déjà tout est agent dans les jeux et plus généralement dans les programmes. Mais leur gestion n'est pas vu de la même façon que dans les simulations SMA. Un mob dans un MMO est certes un agent mais il est programmé pour agir si il se passe tel ou tel évènement. Alors que si il était en "mode" SMA, il verrait que le joueur est à sa portée (interaction possible). A t'il la volonté de l'attaquer (problème de factions, faims, ...) et peut-il l'attaquer(15 niveau au dessus ... hm hm). En ce qui concerne mon exemple précédent, j'ose pas trop m'avancer mais par exemple on va retrouver des attributs sur chaque agent. Ces attributs diront si tels ou tels actions sont possible sur eux. Par exemple tous les objets qui sont rigides et immobiles(exemples vite fait) peuvent être coupes ( trou dans la pièces de puzzle) Pour conclure : Je pense qu'à l'heure actuelle ça n'a pas encore été implémenté en tant que concept à part entière. On en a, vous en donnez tous des exemples, par-ci par là mais les applications restent limités. En ce qui concerne les "situations" c'est un axe qui est déjà en cours d'investigation. Des situations génériques peuvent être prises et copiées collées pour s'adapter au scénario en cours. On a par exemple "Emmener le joueur vers une nouvelle destination". On colle deux PNJ en parametre et la "situation" fait en sorte que le joueur(par exemple par une quête de type courrier) va où il faut. |
20/03/2008, 13h15 |
|
|
Citation :
C'est sûr que varier les objectifs dans un mmo est quelque chose de très sympa, ceci dit, une variation arbitraire/aléatoire comme celle que tu décris me parait vraiment farfelue. Comment justifier que ça fonctionne de telle manière ?... Citation :
En revanche, les développeurs semblent avoir du mal à proposer un mmorpg qui sorte de ce contexte de "j'ai gagné". Les mmos, tu as du PvE et du PvP. Le PvP c'est simple, qui dit pvp dit compétition et qui dit compétition dit "je me compare aux autres joueurs, le gagnant c'est le meilleur/le plus fort/etc". Alors c'est pas forcément évident de dire qui est le meilleur quand la feuille bat le rocher que le rocher bat les ciseaux et que les ciseaux bat la feuille, par contre ça devient limpide quand les joueurs sont classés sur une échelle : "t'as pas 2200+ rating/points, t'es nul, t'as pas le droit de débattre et/ou ton avis nous intéresse pas"... reste à savoir comment ces points ont été gagnés et s'ils sont vraiment qualitatifs d'une "meilleure façon" de jouer. Le PvE, tu as des défis, on pourrait les apparenter à des puzzles, et terminer ces puzzles te donne doit à des récompenses que tu peux afficher aux autres joueurs, de manière à montrer que tu es "meilleur" qu'eux. Reste encore à savoir comment ces récompenses ont été gagnées et si elles sont vraiment qualitatives d'un "bon jeu". Tout tourne autour de ce "bon jeu"/"meilleure façon de jouer". Mais on peut se poser la question : y a-t-il vraiment une "meilleure façon de participer" à un jeu de construction ? Les mmo, tu montres que tu es le meilleur, mais en définitive, le moyen pour montrer que tu es le meilleur passe par la construction : - construction de ton personnage (leveling, récupération d'équipement, gold, pvp rating...) - construction d'un empire (eve online, mankind...) - construction du plus beau marteau (atitd, désolé pour la boutade ...) - etc... Ce qui est peut-être dommage finalement, c'est que les mmorpgs actuels ne nous permettent pas de construire ce qu'on veut, ou tout du moins ne permettent que de construire des choses que dans un ou deux axes prédéterminés. En clair, si les développeurs ne donnent pas aux joueurs les outils pour participer aux gameplay, développer/construire les choses qu'ils aimeraient (le roleplay, par exemple), c'est pas étonnant que les joueurs délaissent ces choses en question. En gros : pourquoi vouloir à toute fin jouer aux échecs sur un plateau de morpion ? Citation :
J'avais tenté une petite expérience il y a quelques années, j'avais créé un forum, pour ainsi dire vide, avec 2-3 sections. J'ai appelé le tout "la ferme folle" (c'était avant la ferme célébrité, hein ), et j'ai invité des rôlistes puristes sur ce forum. J'ai ensuite créé un petit message dans la section "hall d'entrée" ou une connerie de ce style, disant que ceci était un terrain de jeu roleplay, que le but était de s'amuser, point final. J'avais une bonne vingtaine de participants dès le 1er jour. 3 jours après, j'avais 3 messages s'essayant au roleplay, et puis plus rien. "Jouer" n'est pas un objectif. Citation :
Citation :
Quand un joueur est à portée du mob, quand il entre dans sa zone d'aggro, il y a un échange d'informations entre le mob et le joueur qui fait que le mob attaque le joueur. C'est parce que c'est extrêmement basique que cela ne semble pas être apparenté à un SMA. Citation :
|
20/03/2008, 14h28 |
|
Lyta Alexander |
Voir le profil public |
Trouver plus de messages par Lyta Alexander |
|
Citation :
Exactement les SMA sont des machines à état. Du moins les agents dans un SMA sont des machines à états. Maintenant, comme je le précise dans le post initial, si on s'intéresse non pas spécifiquement aux agents mais aux interactions on arrive à quelque chose (d'un peu) nouveau. Comme tu le dis c'est le cas actuellement. Mais c'est trop simple. Le joueur arrive le mob détecte => bing. Le fait de se focaliser sur l'interaction amène une plus grande subtilité de décision sans pour autant compliquer drastiquement le développement. Je me suis peut-être mal exprimé en décrivant les interactions et je vous invite à aller sur cette page qui explique plus en détail la philosophie du laboratoire de Lille. On peut voir que avant de déclencher l'action des propriétés doivent être vérifiées. Et c'est celles-ci qui amènent le petit plus d'un comportement variable. En fonction de(s) état(s) du joueur et de celui du mob il y aura des réactions différentes de ceux-ci(du moins pour le côté mob). Pour le dernier point je me suis peut-être un peu enflammé dans l'exemple. Si, comme à l'heure actuelle, les actions entre composants du jeu existe dès le départ, couper du bois(je l'aime bien celui là :/), construire un truc X, on peut imaginer que les personnages connaissent(tout ou partie) des actions qu'ils peuvent effectuer et qu'ils les testent sur leur environnement. Ces exemples je les lance en l'air pour essayer d'illustrer au mieux mon propos. Ce serait utopique de croire qu'en quelques idées un système viable puisse être imaginé donc je vous pris de faire part d'indulgence en vers mes exemples ^^ |
20/03/2008, 14h47 |
|
Lyta Alexander |
Voir le profil public |
Trouver plus de messages par Lyta Alexander |
Suivre Répondre |
Connectés sur ce fil1 connecté (0 membre et 1 invité)
Afficher la liste détaillée des connectés
|