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

Algorithmes et structures de données Discussion :

Déplacement intelligent des ennemis


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 124
    Points : 43
    Points
    43
    Par défaut Déplacement intelligent des ennemis
    Bonjour,
    Je suis en train faire la partie AI du jeu.
    J’en suis au déplacement des ennemis.
    J’arrive bien a les faire déplacer ou je veut mais le problème c’est qu’il ne « regarde pas ou il vont » en fait il vont tout droit sachant qu’il va avoir collision plus loin.
    Je pense a un système de « rail » (les ennemis suivent une ligne pour leur déplacement) mais le problème c’est qu’il doit pouvoir être assez libre.
    Es que vous avez d’autre idée plus simple ?
    Merci

    Ps : si ça peut aider mais je pense pas : C++ et Opengl

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    il vont » en fait il vont tout droit sachant qu’il va avoir collision plus loin.
    Quelle est la cause des "collisions" : Obstacles phisiques (rochers, eau, ...) ou accumulation de troupes ?
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Membre habitué Avatar de larnicebafteur
    Inscrit en
    Mai 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 133
    Points : 131
    Points
    131
    Par défaut
    Tout dépend du jeu, mais en général, il faut calculer les différents déplacements possibles pour l'ennemi plusieurs coups à l'avance et determiner le plus avantageux pour lui.

    Mais de toute façon, si on en croit la citation suivante, il semble difficile que l'ennemi soit intelligent :

    L'ennemi est con, il croit que c'est nous l'ennemi alors que c'est lui."(Pierre Desproges)
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème

  4. #4
    Membre confirmé Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Points : 496
    Points
    496
    Par défaut
    Il est difficile de repondre a ta question, sans savoir le type de jeux, et les parametre propre a un "ennemi".
    De tout façon il te faut une estimation du cout, une valeur borné qui t'informe de la "qualité" du deplacement de ton ennemi : ( distance entre ennemi <> joureur, la distance avec ces potes, la distance avec le drapeau, son niveau d'energie ... )

    Avec cette estimation de cout tu peut generer n deplacements, et estimer le plus favorable (cf. jeux d'echec), apres il existe des algo de type genetique pour combiner les parametres des meilleurs deplacemements...
    ________________________________________________
    http://bliquid.fr : Blog sur Android et l'Acer Liquid

  5. #5
    Membre confirmé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Points : 546
    Points
    546
    Par défaut
    Il faut aussi penser à recalculer son déplacement soit tous les "tours", soit tous les n "tours" afin qu'il puisse prendre en compte le déplacement de sa ciblke ou les modifications du terrain...
    Mindiell
    "Souvent, femme barrit" - Elephant man

  6. #6
    Membre actif Avatar de petitpasdelune
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 221
    Points : 231
    Points
    231
    Par défaut
    Si tu peux représenter ta carte par un graphe (ce qui est le cas si c'est du wargame ou assimilé), l'algorithme est celui du plus court chemin (Viterbi, Bellman & Ford, Dijkstra....).
    Tes sommets -> les case (hexagones)
    Tes arrêtes -> le passage entre cases adjacentes.
    Si il y a un obstacle => pas d'arrète
    Si le passage est difficile => poids de l'arrète = 0.5
    Si le passage est facile => poids de l'arrete = 0 ou 1 (cela depend du sens de ton algo)

    Ces algos peuvent être très gourmand en temps de calcul. Pour les jeux il est conseillé de reduire l'espace de recherche, puis de le relaxer si il n'y a pas de solution.

    Après un googlelisation :
    http://interstices.info/display.jsp?id=c_15578
    (regarde toutes les pages)

    PPDL

  7. #7
    Membre éprouvé
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Points : 1 249
    Points
    1 249
    Par défaut
    Pour les jeux vidéos la star sur les calculs de chemin est le A* (un Dijkstra modifié) qui peut aller très vite sur les chemins 'simples'. Il sert presque partout.

    Je pense que pour que l'on puisse aider il faudrait plus de détail sur le jeu (FPS, 3d, temps réel... ) ?

    Citation Envoyé par Guillaume602
    Je pense a un système de « rail » (les ennemis suivent une ligne pour leur déplacement) mais le problème c’est qu’il doit pouvoir être assez libre.
    Pour faire plus souple les ennemis peuvent avoir une suite de points de passage (ce qui en terrain découvert revient au même qu'un rail). Comme ça en cas d'obstacle ils peuvent contourner 'naturellement'. Si le jeu s'y prète bien (avec des cases) un bon A* permettra d'atteindre les points de passage. Sinon (genre le FPS moyen) c'est plus délicat. Avec des points rapprochés on peut y aller en ligne droite et contourner 'naivement' les obstacles. Ou alors mailler assez finement toute l'aire de jeu pour avoir un graphe (en bloquant les noeuds/arrêtes bloqués par le joueur ou autre) et se ramener au A*...

    Citation Envoyé par petitpasdelune
    Ces algos peuvent être très gourmand en temps de calcul. Pour les jeux il est conseillé de reduire l'espace de recherche, puis de le relaxer si il n'y a pas de solution.
    Voir même de répartir un calcul sur plusieurs frame dans les cas extrèmes.

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/04/2014, 14h18
  2. [OL-2007] Déplacement automatique des nouveaux mails et notifications
    Par jaymzwise dans le forum VBA Outlook
    Réponses: 1
    Dernier message: 19/11/2013, 12h18
  3. Firefox propose un filtre intelligent des cookies tiers
    Par Stéphane le calme dans le forum Firefox
    Réponses: 41
    Dernier message: 10/11/2013, 11h56
  4. Gérer le déplacement des ennemis
    Par dré kam dans le forum Algorithmes et structures de données
    Réponses: 0
    Dernier message: 25/03/2012, 21h58
  5. Vision des ennemies
    Par goutbouyo dans le forum OpenGL
    Réponses: 15
    Dernier message: 15/11/2004, 10h03

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