C'est idiot ce que tu dis, et je crois que tu le sais (d'où ton "je suis casse pieds")
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 ....Envoyé par davcha
Peut-être pas des milliers mais je suis d'accord avec toiEnvoyé par Mat.M
Jc
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:
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 ... ... while(1) { while (SDL_PollEvent(&event) != NULL) { gerer_evenement(event); } gerer_IA(); SDL_Flip(ecran); }
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); } }
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 ?Envoyé par Mat.M
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
Oui mais c'est extrêmement compliqué à gérer !Envoyé par davcha
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 ?
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.
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager