IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques Discussion :

Quelle Bibliothèque pour une IA d'un RTS ?


Sujet :

Bibliothèques

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Quelle Bibliothèque pour une IA d'un RTS ?
    bonjour,

    Avant de me lancer dans la programmation d'une IA ( en C++ ) pour un rts, je voulais avoir quelques infos :

    -Existe t il des librairies dediées à ca ?

    -si oui laquelle me conseilleriez vous ?

    -Les Soft commerciaux ( Warcraft,AOE, AOM, C&C...) ont ils leurs propres IA ou "achetent" ils une telle librairie ?

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    A ma connaissance non, il n'existe pas de telles bibliothèques. Par contre ce que j'avais déjà vu, c'est un framework d'IA offrant des algorithmes et structures classiques (réseaux neuronaux, algos génétiques, ...).

    En tout cas ce qui est sûr c'est que les softs commerciaux possèdent leur propre IA. L'IA dans un jeu professionnel est un module très complexe et spécifique au jeu en lui-même, donc je ne pense pas qu'on puisse proposer de solution générale. Par contre pour les modules de base bien connus (algos min-max, pathfinding, ...) tu peux trouver des choses interessantes, si ce n'est une bibliothèque au moins du code source et des tutos à foison sur le net.

    Avant de te lancer dans la conception de ton IA documente toi bien sur les techniques existantes, il y a pas mal de choses plus ou moins classiques en ce qui concerne les RTS .

  3. #3
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    J'avais vu une boite, française, qui proposait une ensemble de composants (COM je crois) qui était orienté IA pour jeux. Dans mes souvenirs, leur bibliothèque devait être exploitée dans un RTS de démonstration de leur cru.

    Il s'agit de directia (weuweuweu...point-com, tout ça). Et ils sont toujours référencés depuis gameai, avec d'autres SDK je vois.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  4. #4
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    J'avais visité deux boîtes de ce genre, l'une faisait plutôt du path finding amélioré, l'autre une représentation du raisonnement d'une unité (but : application militaire d'entrainement d'officiers).

    Mais je dois avouer qu'à part les éléments de base, je n'ai pas vu trop de choses disponibles.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Merci de vos réponses,
    Pour le pathfinding, qui a mon sens n'est plus du ressort de l'IA, j'ai deja une solution légere.
    en effet j'avais vu directIA mais je n'ai pas bien compris en quoi cela consiste et surtout si c'est integrable a un jeu. ( enfin si ca l'est pas je sais pas a quoi ca servirait)
    J'ai cherche un peu avant de poster et c'est vrai que l'on trouve pas de solution générique. Juste quelques exemples sur comment modeliser un comportement en groupe:
    http://www.red3d.com/cwr/boids/
    et d'autre pour la prise de décision sous forme de machine d'etat,
    enfin bon qu'est ce que la veritable IA...

    Sinon Est ce que , algo genetique et reseau de neuronnes sont trop lents, envisageables pour un RTS ?

    Quels types de modelisation comportement , IA les RTS commerciaux utilisent ils ?


    Ravie de voir que des experts ont répondu

  6. #6
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Les algorithmes sur l'IA sont en plein essor, et je pense qu'il n'y a pas UNE IA. Des gens cherchent depuis des années et cherchent encore.

    Juste pour dire que tu peux faire un peu comme tu le sens. Bien sur l'IA que tu vas utiliser et que tu devras personnaliser doit tenir compte de l'ensemble de ton programme.

    Un algorithme d'IA très poussé peut demander beaucoup de ressources, au détriment du reste. Il n'y a qu'à regardé du coté des jeux d'échecs, (un programme qui essaierait toutes les combinaisons possibles ...).

    Je crois que la meilleure chose est d'expérimenté par toi-même et d'essayer de programmer les algorithmes que tu trouveras. Je reconnais que sur le net, tu trouveras difficilement du code directement exploitable.

    Etudies les algorithmes existant et essaies de voir comment les intégrer dans ton programme.

  7. #7
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Pour les RdN ou les AG, le problème n'est pas une question de lenteur, mais de ce que l'on veut et peut modéliser.

    Ce sont des systèmes à deux temps. Il y a un temps d'apprentissage et un temps d'exploitation. Si l'exploitation peut être excessivement rapide, l'apprentissage peut être particulièrement lent.

    Et tout le (premier) problème est de décider : - des entrées du système (contexte dans lequel évoluent les "individus" ; sorte de perception), - des sorties du système (la réponse de l'"individu" face au contexte dans lequel il se perçoit), - et approche d'apprentissage (supervisé, difficilement applicable aux jeux je pense, mais approche dont on voit l'algorithme "naif", pour les RdN, sur quantité de sites ; ou non supervisé voire "dirigé", voir les AG et le reinforcement learning).

    Il reste encore ensuite le problème de décider du sous ensemble de données possibles qui sera utilisé dans les machines, et de tous les pré-traitements liés aux données.

    Bref, ce n'est pas simple, c'est difficilementg énéralisable. Les RdN sont tout sauf une boite magique capable de faire tout et n'importe quoi. C'est avant tout un outil mathématique qui remplit des tâches d'optimisation.

    (Je doute que le forum C++ soit le bon)

    Les FSM sont ce qu'il y a de plus classique dans la mesure où il est facile pour nous de scripter des séquences. Au niveau des choix autorisés pour chaque changement d'état, plein d'options s'offrent à nous (pourcentages en dur ou qui peuvent évoluer selon un apprentissage de type reinforcement learning ; possibilité d'utiliser de la logique floue ; etc, etc)
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  8. #8
    Membre habitué
    Profil pro
    Enculeur de mouches
    Inscrit en
    Septembre 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Enculeur de mouches

    Informations forums :
    Inscription : Septembre 2003
    Messages : 133
    Points : 161
    Points
    161
    Par défaut
    Luc, ce que tu dis sur les RdN est vrai pour la famille des perceptrons (notamment ce que tu dis sur l'apprentissage supervisé) ou encore les réseaux récurrents, mais pas pour les Self-Organisating Map, les Growing Neural Networks, etc... Ou encore les réseaux à base de colones corticales.

    Puisqu'on en est à faire l'inventaire, il existe aussi les Fuzzy Cognitive Maps (se basant sur la logique floue) permettant de modéliser des émotions ou instincts (peur, faim, fuite, etc...) en se basant sur un paradigme connexoniste, mais où les unitées interconnectée on un symbolique directement interprétables (donc plus facilement manipulables par intuition).
    Luc a cité les modèles de décision markoviens sous le nom de reinforcement learning (ce qui est équivalent), c'est pas mal, mais dans les cas complexes, ça ammène à une explosion de la mémoire, et quand on cherche à réduire le nombre d'état en mémoire, on fini souvent par détruire la propriété markovienne de la perception de l'environnement, et ça se gauffre.

    Un truc qui a l'air en vogue dans les jeux vidéos ces temps-ci, c'est les systèmes de classeurs (chaque agent possède un "classeur de règles", qu'il fait évoluer avec son expérience).

    Mais quoi qu'il en soit, chacune de ses méthodes ne constituent pas une réponse en soit à un problème donné, il faut toujours les adapter au problème posé, les optimiser, parfois les combiner (par ex une FCM pour le coté émotionel de l'agent, et par dessus un système de classeur qui détermine le comportement réél, en fonction de la perception et de "l'état émotionnel").
    Ayant dis ça, on se rend vite compte que même si des bib's fournissent des briques de bases, il faut toujours beaucoup de bricololage (pas du bidouillage, hein...) pour assembler tout ça et que ça tourne correctement (comportement crédible et efficace).
    Gaïa n'est pas une marchandise.

  9. #9
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Hum.. Je voulais dire deux trucs essentiellement:

    1- Le problème de la modélisation des entrées et des sorties est vraie quelle que soit le système employé. Une des sources de "bricolage".

    2- Après attention, 90% des sites newbye-friendly qui traitent des RdN décrivent les MLP + backprop. Soit pas grand chose d'exploitable pour des jeux à mon avis. Il reste effectivement les autres algos, mais ils n'ont pas la même exposition.

    Bref, pas simple et immédiat à utiliser. Fort interessant ceci dit
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Pour info, j'ai essayé de récupere directIA mais c'est introuvable sur le net, et ils ne vendent ou pretent des licenses qu'a des societes qui vendent leur produit a forciori pas à moi

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/03/2011, 18h28
  2. Quelle bibliothèque pour attaquer une base de données Oracle ?
    Par traoreefo dans le forum Interfaces de programmation
    Réponses: 2
    Dernier message: 10/01/2008, 11h04
  3. Quelle bibliothèque pour une interface graphique C++
    Par peace_info dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 16/03/2007, 15h42
  4. Quelle BDD pour une grande utilisation et en cluster?
    Par SkyDev dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 21/10/2005, 21h20
  5. Quelle driver pour une HIS 9800 pro ice Q
    Par Death83 dans le forum Composants
    Réponses: 9
    Dernier message: 29/09/2005, 15h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo