Bonjour à tous
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é
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 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 !
Hors ligne
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à .
A+
Hors ligne
Yosh
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
Hors ligne
penche toi du coter de DetourRecast
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
Salut
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
Hors ligne
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
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
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
Hors ligne
Salut
Merci pour vos réponses 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+
Hors ligne
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
Salut
Je sais pas c'est bizarre, ca me fait encore plein d'erreur .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 . Donc ce serait vraiment sympa de ta part si tu pourrais m'aider sur ce domaine qui me semble flou
a+
Hors ligne
Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
---|---|---|---|---|
Corrections |
|
xhtml 1.0 css 2.1 Propulsé par FluxBB Traduit par FluxBB.fr |
882 membres 1429 sujets 11119 messages |
Dernier membre inscrit: LiseBuisson96 27 invités en ligne Aucun membre connecté RSS Feed |