#1 

20-04-2013 18:42:07

Vvampire
Membres
Avatar de Vvampire
Date d'inscription:
Messages: 11
IP: 78.244.202.109
Courriel

Bonjour à tous smile

Je suis actuellement en train de développer mon projet d'FPS et je voudrais intégrer des ennemis (en l’occurrence, des monstres appelés "gnomons" dans mon jeux). Le problème c'est que c'est la toute première fois que je m'attaque a de l'intelligence artificielle avec Irrlicht et je ne sais pas comment m'y prendre. J'ai fait différentes recherches mais je n'ai pas eu d'infos vraiment "concret", c'est pour cela que je post moi-même sur ce forum qui m'a souvent bien aidé smile

En théorie, ce que je veux faire est très simple: intégrer différents gnomons dans la map. Si le joueur est à une certaine distance d'un gnomon, celui-ci s'approche de lui et l'attaque. Si le joueur est à une plus longue distance, le gnomon est en mode "pause". Si déjà je parviens a faire cela, j'aimerais aussi que le gnomon attaque le joueur que si le joueur est à une certaine distance et qu'il est également dans son champ de vision, mais ça c'est après ^^

En pratique, ça devient plus difficile pour moi sad Je voudrais que vous puissiez m'aider sur la démarche à suivre et aussi me donner des exemples de code si ça peut être possible, ça m'aiderait vraiment bien et ça pourra aussi aider les autres qui lag comme moi sur cette partie :s

Merci d'avance ! big_smile


Hors ligne


#2 

20-04-2013 19:47:43

Copland
Modérateurs
Date d'inscription:
Messages: 657
IP: 92.156.90.40
Courriel  Site web

Salut,
Pour l'IA géré selon la distance c'est pas très complexe, tu peux tester la distance entre ton personnage et le monstre en question puis déclencher ou pas une action.
vector3df position de ton perso->getDistanceFromSQ(vector3df position du méchant) ou un truc dans le genre...je me souviens plus trop.
Pour le déplacement de tes personnages, regarde sur google ce que tu trouves à l'algorithme appelé "A Star" ou A* ça pourrait bien t’aider à comprendre déjà smile.
A+


Config : I5 2400, ATI HD6870 1Go DDR5, 4Go DDR3.
Single Boot : Windows Seven.

Hors ligne


#3 

20-04-2013 22:49:53

Vvampire
Membres
Avatar de Vvampire
Date d'inscription:
Messages: 11
IP: 78.244.202.109
Courriel

Yosh smile

Merci pour ces infos, j'avais jamais eu vraiment l'occaz d'utiliser le fonction getDistanceFromSQ mais je dois avouer que pour ce cas elle est très efficace , c'est déjà ça de fait ^^

Je me suis informer un peu partout sur le net concernant le A*, maintenant je comprend un peu mieux le fonctionnement du déplacement mais il faut dire que c'est un algorithme plutôt complexe et je ne vois pas comment je pourrais adapter cet algo à mon code, je voudrais donc que tu m'éclaire donc sur ce point.

Salut wink


Hors ligne


#4 

23-04-2013 13:09:08

Vvampire
Membres
Avatar de Vvampire
Date d'inscription:
Messages: 11
IP: 78.244.202.109
Courriel

Pas d'idée smile ?


Hors ligne


#5 

24-04-2013 00:22:52

Magun
Administrateurs
Avatar de Magun
Date d'inscription:
Messages: 910
IP: 92.146.116.105
Courriel  Site web

penche toi du coter de DetourRecast wink
sa va être compliquer le A* sinon

je ne sais pas a qu'elle étapes du développement tu te situe mais en générale pour simplifier le développement en commence par l'ia (un monde virtuel)
sur le qu'elle tu greffe le graphique.
note on peut faire l'inverse mais y a souvent plus de contraint technique

bon après ça dépend du niveaux d'ia que tu envisage a long terme

Hors ligne


#6 

24-04-2013 11:13:26

Vvampire
Membres
Avatar de Vvampire
Date d'inscription:
Messages: 11
IP: 78.244.202.109
Courriel

Salut wink

Merci pour ta réponse, mais j'ai beau chercher sur le net , je ne vois pas beaucoup d'informations concernant le DetourRecast. Mais est-ce vraiment la bonne solution de partir dans des algos aussi complexes que le A* ? Il faut dire que je n'envisage pas de faire un niveau d'IA très élevé, comme je l'avais dis plus haut, je veux juste que le monstre puisse se déplacer en direction de la camera afin de l'attaquer. Je veux juste que vous m'aidiez sur ce point sachant que je ne veux pas que l'IA soit hyper performant, en donnant un exemple de code si possible pour mieux comprendre.

Merci d'avance wink


Hors ligne


#7 

24-04-2013 11:52:33

Magun
Administrateurs
Avatar de Magun
Date d'inscription:
Messages: 910
IP: 92.146.116.105
Courriel  Site web

la second solution serait de mapper ton niveaux avec des path que tu défini toi même
si ton joueur ce situe pret d'un path et qu'une autre etiter si trouve aussi tu peut le ramener vers lui en suivant celui-ci

dans tout les cas tu auras beusoin au final d'un algo pour contourner les obstacles
si tu veut diriger un enemis vers un point qui n'est pas en ligne droite ou si ce point bouge il va ce retrouver coincer dans un angle au bout d'un moment
et si tant a plusieur t'auras un tas big_smile

l'utiliter de DetourRecast c'est justement de mapper ton niveaux pour le A* en simplifiant les géometries pour que ce soit plus obtimiser
d'ailleur une implementation est déjà dispo pour irrlicht http://irrlicht.sourceforge.net/forum/viewtopic.php?f=9&t=47017
a la fin tu fait un test de visibiliter pour les enemie sur ton joueur et des qu'il le voie op tu active le A* sur ton joueur que tu rafraichie de temps en temp

Hors ligne


#8 

25-04-2013 16:37:05

Copland
Modérateurs
Date d'inscription:
Messages: 657
IP: 109.223.37.193
Courriel  Site web

Fait des recherches partout sur le forum officiel d'irrlicht avec comme mot clé "A*","A Star","PathFinding", si avec ça tu trouves pas ton bonheur, bein t'a plus qu'a coder tout toi même big_smile


Config : I5 2400, ATI HD6870 1Go DDR5, 4Go DDR3.
Single Boot : Windows Seven.

Hors ligne


#9 

25-04-2013 18:07:04

Vvampire
Membres
Avatar de Vvampire
Date d'inscription:
Messages: 11
IP: 78.244.202.109
Courriel

Salut wink

Merci pour vos réponses smile Magun j'ai testé le lien que tu m'as donné mais je ne peux pas telecharger l'ensemble avec ce lien : http://recastnavigation.googlecode.com/svn/trunk/ , j'ai essayé mais il me manquait encore des fichiers, bizarre :s. Et aussi j'ai connu l'existence de irrAI, est-ce que ca peut me servir dans mon cas ? Ca peut être pratique puisque je fais mes niveaux avec irredit et qu'il y a justement un logiciel irrai editor qui permet d'ajouter en temps réel les paths, faudrait voir..

Copland, j'ai cherché et j'ai trouvé ca : http://irrlicht.sourceforge.net/forum/viewtopic.php?f=6&t=47457&start=15#p277547
J'avais déja testé ce jeux et il faut dire que j'ai exactement besoin de ce type de IA dans mon jeux, tu as une idée de comment il a procédé ? ^^

a+ wink


Hors ligne


#10 

25-04-2013 20:03:26

Magun
Administrateurs
Avatar de Magun
Date d'inscription:
Messages: 910
IP: 92.146.116.105
Courriel  Site web

a toi de définir ce que tu a vraiment beusoin, a mon gouts irrAI ne me semble pas une bonne chose
je n'est pas de soucis de compilation pour DetourRecast a tu bien lancer cmake ?

Hors ligne


#11 

26-04-2013 20:21:20

Vvampire
Membres
Avatar de Vvampire
Date d'inscription:
Messages: 11
IP: 78.244.202.109
Courriel

Salut wink

Je sais pas c'est bizarre, ca me fait encore plein d'erreur sad .Ce qui serait bien, c'est que si tu en a un, ajoute moi sur skype ( U59150 ) pour pouvoir parler mieux de tout cela. En vérité je fais mon jeux dans le cadre du concours innov game, et la création du jeux est à faire avant le 2 mai sad . Donc ce serait vraiment sympa de ta part si tu pourrais m'aider sur ce domaine qui me semble flou smile

a+ wink


Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
153 invités en ligne
membre en ligne: -
RSS Feed