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

Intelligence artificielle Discussion :

[IA] Pour un jeu en "temps réel"


Sujet :

Intelligence artificielle

  1. #1
    Membre actif
    Homme Profil pro
    Freelance
    Inscrit en
    Décembre 2003
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Décembre 2003
    Messages : 423
    Points : 259
    Points
    259
    Par défaut [IA] Pour un jeu en "temps réel"
    Bonjour tout le monde,

    Je ne sais pas réellement où poster ce message, mais a mon avis, la section algo est la mieux adaptée.

    Je travaille actuellement avec 3 autres personnes sur un jeu. Pour ne rien cacher, c'est une refonte du fameux Bomberman en 3D (base OpenGL).

    Maintenant que le gameplay est en lui même quasi terminé (juste quelques bricole) il devient nécessaire de créer une intelligence artificielle pour pouvoir ajouter des défiants ordinateur ...

    Indépendemment du langage de programmation, partant on va dire sur des choses simple du jeu (une intelligence ne gérant par exemple pour le moment pas les bonus qu'il a acquis) je ne sais vraiment pas comment faire ... La seule fois où j'ai touché à de l'intelligence artificielle c'était pour un Morpion où tout est plus simple car prévisible au tour par tour ... mais là ...


    Donc voila, face au néant je fais appel à vous pour, non pas que vous me donniez le code fonctionnel, mais bien pour que vous me guidiez dans la mesure du possible quand à la démarche à adopter pour en arriver à mes fins : avoir un bomberman géré par l'ordinateur qui ne se jette pas tout seul sur les bombes ....

    Par avance merci à quiconque voudra m'aider
    "La théorie, c’est quand on sait tout et que rien ne fonctionne. La pratique, c’est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : rien ne fonctionne ... et personne ne sait pourquoi !" et malheureusement c'est souvent le cas en Développement...

  2. #2
    Membre éprouvé Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Points : 1 213
    Points
    1 213
    Par défaut
    Pardonne mon ignorance, qu'est-ce que "bomberman"?
    Nemerle, mathématicopilier de bars, membre du triumvirat du CSTM, 3/4 centre

  3. #3
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Ah la la... toute ma jeunesse.

    Pour Nemerle: http://en.wikipedia.org/wiki/Bomberman_(series)

    Donc il y a plusieurs mouvements "intelligents" a simuler:

    1. Deplacement + Pose d'1 bombe contre obstacle
    2. Deplacement + Pose d'1 bombe contre opposant
    3. Deplacement + Pose d'1 bombe contre bombe (explosion en cascade)

    Ce qui se décompose en 2 algo:

    I. Choisir une action parmis les 3 (obstacle vs opposant vs cascade)
    II. Effectuer le déplacement + poser une bombe

    Pour l'algo I, je ne sais pas.

    Pour l'algo II, je pense que l'algo A* (ou une de ses variantes) est bien adapté dans ce cas.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  4. #4
    Membre actif
    Homme Profil pro
    Freelance
    Inscrit en
    Décembre 2003
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Décembre 2003
    Messages : 423
    Points : 259
    Points
    259
    Par défaut
    Bon ... et bien je cois qu'il ne me reste plus qu'à trouver des infos sur l'algo A* ...


    Merci pour ta remarque


    Je reste ouvert à toutes suggestions et aides encore évidemment
    "La théorie, c’est quand on sait tout et que rien ne fonctionne. La pratique, c’est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : rien ne fonctionne ... et personne ne sait pourquoi !" et malheureusement c'est souvent le cas en Développement...

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 37
    Points : 32
    Points
    32
    Par défaut
    Hello,

    Je vais essayer de mettre ma pierre a l'édifice...
    Je reprendrai les 3 cas... sur ces 3 cas tu dois définir une priorité d'intervention

    genre :
    poser bombe contre ennemi priorité haute
    poser bombe contre autre bombe priorité moyenne
    poser bombe contre mur priorité basse

    Ensuite c'est une simple detection d'environnement
    tu detectes ton environnement a X cases autour de toi.
    Si tu detectes un ennemi c'est la plus haute priorité tu geres ce cas
    Si tu detectes une bombe et un ennemi, tu geres l'ennemi
    Si tu detectes une bombe et un mur, tu geres la bombe
    Etc.

    Si tu detectes rien, tu te déplaces.
    Je ne pense pas que l'A-star soit utile ici. L'A-star est utile dans le cas d'un pathfinding or la c'est plutot du déplacement aléatoire :
    Tu regardes les directions dispos, tu choisis une direction et tu avances tant que les directions dispos changent ou qu'un evenement avec priorité arrive.

    L'avantage de ces priorités (plutot a numéroter) c'est que tu pourras définir d'autres infos genre :
    - Une option/bonus dans les parages ???
    - Durée de la bombe avant détonation (si a 1 sec priorité super haute, si a 5 sec on s'en tape)

    Donc je dirai :

    Priorité_actuelle = 0
    tant que priorité_actuelle = 0
    detecter_directions_possibles (1,2,4,8 pour nord sud est ouest)
    Si total_directions_possibles <> directions_possibles_acteulles alors
    directions_possibles_acteulles = total_directions_possibles
    on choisi une nouvelle direction
    Finsi
    On se déplace
    On calcule les possibles priorités
    fin tant que

    suivant priorité on gère
    retour au début




    a++
    Nico

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 37
    Points : 32
    Points
    32
    Par défaut
    Re

    Juste pour ajouter que si tu impliques ce systeme de priorités et la zone de "perception" , en jouant sur ces deux options, tu peux générer des IA de différents niveaux (une IA qui ne fait pas la différence entre une bombe a 5sec et une autre a 1sec, une IA qui ne cherche un nouveau chemin QUE quand elle est bloquée, une IA qui regarde a 3 cases de distance ou 1, etc.)

    a++
    Nico

  7. #7
    Membre actif
    Homme Profil pro
    Freelance
    Inscrit en
    Décembre 2003
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Décembre 2003
    Messages : 423
    Points : 259
    Points
    259
    Par défaut
    Effectivement c'est une solution ...

    Je vais réfléchir à tout ça et voir ce que je peux faire



    Merci à vous
    "La théorie, c’est quand on sait tout et que rien ne fonctionne. La pratique, c’est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : rien ne fonctionne ... et personne ne sait pourquoi !" et malheureusement c'est souvent le cas en Développement...

  8. #8
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par Bleys
    Bon ... et bien je cois qu'il ne me reste plus qu'à trouver des infos sur l'algo A* ...

    Tiens : http://khayyam.developpez.com/articles/algo/astar/
    Je ne répondrai à aucune question technique en privé

Discussions similaires

  1. [Recrutement] Nous recherchons des testeurs pour un nouveau jeu 3D en temps réel
    Par Harold Actengo dans le forum Projets
    Réponses: 14
    Dernier message: 27/11/2012, 15h49
  2. Réponses: 20
    Dernier message: 30/03/2007, 15h01
  3. [PIC] Quelle puce pour échantillonnage et traitement audio temps réel ?
    Par kromartien dans le forum Autres architectures
    Réponses: 3
    Dernier message: 15/03/2007, 21h45
  4. Réponses: 1
    Dernier message: 31/10/2006, 11h15

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