#0 

20-04-2013 20:42:07

Vvampire
Membre
Date d'inscription: 16-06-2012
Messages: 11

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


#1 

20-04-2013 21:47:43

Copland
Modérateur
Lieu: ZarbiLand
Date d'inscription: 22-09-2006
Messages: 657
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


#2 

21-04-2013 00:49:53

Vvampire
Membre
Date d'inscription: 16-06-2012
Messages: 11

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


#3 

23-04-2013 15:09:08

Vvampire
Membre
Date d'inscription: 16-06-2012
Messages: 11

Pas d'idée smile ?

Hors ligne


#4 

24-04-2013 02:22:52

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 908
Corrections: 2
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


#5 

24-04-2013 13:13:26

Vvampire
Membre
Date d'inscription: 16-06-2012
Messages: 11

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


#6 

24-04-2013 13:52:33

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 908
Corrections: 2
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/v … mp;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


#7 

25-04-2013 18:37:05

Copland
Modérateur
Lieu: ZarbiLand
Date d'inscription: 22-09-2006
Messages: 657
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


#8 

25-04-2013 20:07:04

Vvampire
Membre
Date d'inscription: 16-06-2012
Messages: 11

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/v … 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


#9 

25-04-2013 22:03:26

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 908
Corrections: 2
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


#10 

26-04-2013 22:21:20

Vvampire
Membre
Date d'inscription: 16-06-2012
Messages: 11

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é
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
881 membres
1427 sujets
11117 messages
Dernier membre inscrit: Bidule
20 invités en ligne
Aucun membre connecté
RSS Feed