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

Développement 2D, 3D et Jeux Discussion :

[debutant][SDL][c]Gerer une IA


Sujet :

Développement 2D, 3D et Jeux

  1. #21
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut
    C'est idiot ce que tu dis, et je crois que tu le sais (d'où ton "je suis casse pieds")

  2. #22
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 385
    Points
    20 385
    Par défaut
    Citation Envoyé par davcha
    C'est idiot ce que tu dis, et je crois que tu le sais (d'où ton "je suis casse pieds")
    oui je veux bien mais enfin par rapport à des Age of Empire ou Warcraft qui gèrent des milliers d'unités en meme temps ....

  3. #23
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par Mat.M
    oui je veux bien mais enfin par rapport à des Age of Empire ou Warcraft qui gèrent des milliers d'unités en meme temps ....
    Peut-être pas des milliers mais je suis d'accord avec toi

    Jc

  4. #24
    Membre expérimenté
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Points : 1 452
    Points
    1 452
    Par défaut
    Pour ton problème de monstre:

    Utilise SDL_Thread!


    SDL_Thread te propose d'exécuter une autre fonction parallèlement sans bloquer les autres.


    Sinon, autre solution: tu peux le faire avant chaque affichage:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ...
    ...
     
    while(1)
    {
      while (SDL_PollEvent(&event) != NULL)
      {
         gerer_evenement(event);
      }
      gerer_IA();
      SDL_Flip(ecran);
    }
    Encore mieux: tu peux utiliser un framerate, qui te limite le nombre d'images par secondes, donc tu es sûr de l'intervalle de temps qui s'est écoulé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    long int Timer;
    while(1)
    {
      while (SDL_PollEvent(&event) != NULL)
      {
         gerer_evenement(event);
      }
      //On fait un affichage toutes les 33 ms, soit un framerate de 30
      if (SDL_GetTicks() > Timer + 33)
      {
        Timer = SDL_GetTicks();
        gerer_IA();
        SDL_Flip(ecran);
      }
    }

  5. #25
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut
    Citation Envoyé par Mat.M
    oui je veux bien mais enfin par rapport à des Age of Empire ou Warcraft qui gèrent des milliers d'unités en meme temps ....
    La question à se poser est : est-il vraiment nécessaire de gérer des milliers d'unités en même temps à chaque cycle de la boucle principale ?
    Réponse : non

    Question 2 : ne peut-on pas différer dans le temps la prise de décision (donc l'IA) sur certaines unités ?
    Réponse : si

    Question 3 : existe-t-il des moyens permettant d'attribuer un rôle, une action, etc... nécessitant peu de ressources (processus, mémoire...), moins que l'IA en elle-même en tout cas, à certaines unités entre les temps où l'IA ne s'occupent pas d'elles ?
    Réponse : ça existe

  6. #26
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 385
    Points
    20 385
    Par défaut
    Citation Envoyé par davcha
    La question à se poser est : est-il vraiment nécessaire de gérer des milliers d'unités en même temps à chaque cycle de la boucle principale ?
    Réponse : non
    Oui mais c'est extrêmement compliqué à gérer !
    Tu vas avoir des éléments qui seront "dans le vide" et qui ne seront pas mis-à-jour..il n'y a aura pas de cohérences entre les entités du jeu.
    As-tu une démo sur laquelle on puisse se baser et parfaitement fonctionnelle pour étayer tes propos ?
    Des exemples concrets ?

  7. #27
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut
    Mat.M : je parle de l'intelligence artificielle.

    C'est pas parce qu'un mob s'arrête de penser 5 secondes que quand on lui lance un cailloux à la gueule ça lui passe au travers.

  8. #28
    Membre averti Avatar de yetimothee
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 260
    Points : 364
    Points
    364
    Par défaut
    Bon, je suis actuellement en apprentissage c++, ce qui va rendre le travail bien plus facile
    Donc, je pense aussi après utilisé openGL et glut pour fair tout cela...
    A voir

Discussions similaires

  1. debutant SDL une aide pour comprendre
    Par fil de fer dans le forum Débuter
    Réponses: 24
    Dernier message: 23/10/2009, 14h50
  2. [debutant]gerer une execption => NumberFormatException
    Par thecancre dans le forum Langage
    Réponses: 2
    Dernier message: 10/05/2006, 14h19
  3. [Debutant(e)] Analyse d'une chaîne de caractères
    Par maire106 dans le forum Langage
    Réponses: 6
    Dernier message: 22/03/2004, 15h04
  4. comment gerer une TStringGrid
    Par madison59 dans le forum C++Builder
    Réponses: 3
    Dernier message: 01/03/2004, 15h03
  5. [Debutant] Sdl & OpenGl link ne marche pas
    Par Riko dans le forum OpenGL
    Réponses: 9
    Dernier message: 18/02/2004, 16h13

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