Tile Base PathFinding

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
bisonfoutu
Messages : 27
Inscription : 22 Juil 2015 15:44

Tile Base PathFinding

Message par bisonfoutu » 30 Mars 2016 11:01

Bonjour,

Avant toute chose je tient a préciser que je suis débutant en programmation (C#) (j'ai réalisé quelque tutoriel sur Unity, je commence a bien connaitre les interfaces du logiciel et les options qu'il propose, mais ne suis toujours pas très a l'aise avec certaines logiques de programmation.).

Cela fait un moment que j'ai pour objectif de réaliser un Tactical RPG (Final Fantasy Tactic/Wakfu...). J'ai donc listé les différentes composantes essentiel au fonctionnement du jeu et l'aspect le plus important a traiter dans un premier temps me parait être le PathFinding case par case. Seulement je ne sais pas vraiment vers quel système m'orienter.
Je ne comprend pas vraiment le fonctionnement du A* Pathfinding, mais tout les exemple que j'ai pu trouver sur l'Asset Store ne correspondent pas au comportement que j'attend, peut être est-il adaptable?
Mon objectif serait un système de Pathfinding capable de calculer le nombre de case parcouru avec un système de point de mouvement (6PM = 6 cases de déplacement max), et également capable de calculer la porté en fonction du nombre de case entre le joueur et l'ennemie visé. Bien sur, d'autre comportement liés à la grille seront nécessaire, mais ceux la me paraissent fondamentaux.

Sauriez-vous vers quel système je devrais m'orienter? De plus, pensez vous que ce projet est réalisable avec les compétences de débutant que j'ai (je compte m'accrocher, et chercher pendant longtemps si nécessaire, c'est le premier vrai projet perso que j’entame). Si le A* est compatible avec mon projet, auriez vous un tutoriel, ou une explication simple destiné à un débutant à me fournir? De manière à ce que je comprenne le code en question et ainsi être en mesure de le modifier/adapter à mes besoins afin de ne pas me retrouver bloqué par un code que je ne suis pas en mesure de comprendre.

Merci d'avance pour vos réponse, j'espère que mon post vous aura permis de comprendre mon problème.
(Sujet déplacé, rien à voir avec du code)

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6221
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Tile Base PathFinding

Message par boubouk50 » 30 Mars 2016 11:54

Si ce n'est qu'une question de cases, tu peux te créer ta propre grille de déplacement. Une simple propagation de numéros sur les cases aux alentours te permet rapidement de récupérer les cases atteignables.
Un peu à cette manière (ça marche avec n'importe quel type de cases: hexagonales, octogonales, etc. C'est à toi de décider)
Image
Tu te limites au nombre de déplacements permis et ça devrait le faire.

Par contre, je te dis ça, mais je ne sais pas si les autres solutions de PathFinding le font. Ce serait bête de réinventer la roue, mais c'est toujours une solution.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

bisonfoutu
Messages : 27
Inscription : 22 Juil 2015 15:44

Re: Tile Base PathFinding

Message par bisonfoutu » 30 Mars 2016 12:05

Merci beaucoup pour ta réponse!

Je vois ou tu veux en venir, seulement saurais-tu m'aiguiller pour arriver a ce résultat? Je n'ai aucune idée de comment réaliser cette "propagation de numéro". A partir d'un système tel que celui ci, serais-je en mesure de faire déplacer mes personnages en suivant les cases?

Enfin, si tu es en mesure de me fournir d'avantage d'information sur ce système je suis preneur!

Encore merci

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6221
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Tile Base PathFinding

Message par boubouk50 » 30 Mars 2016 13:41

En fait, la propagation se fait par rapport au joueur. Donc, les numéros vont en croissant. Pour atteindre une case éloignée, il doit passer par une case numérotée 1, puis 2, puis 3, etc.
La question est comment veux-tu ton système? Automatique, l'IA choisit ou manuelle, le joueur clique.
Dans le cas de l'automatique, il te faut aussi créer le chemin depuis l'arrivée. Tu auras 2 numéros par case, l'aller et le reste du chemin. Les cases qui auront un aller à 6 et le reste du chemin le plus faible sera le chemin le plus court.
Dans le cas du manuel, tu ne fais que l'aller, et autorise le joueur à cliquer sur la case de son choix.
Dans les 2 cas, pour savoir quel chemin prendre, il faut compter à rebours depuis le point final. Puisqu'un 5 précède toujours un 6, un 4 un 5, etc pour finalement arriver logiquement jusqu'à la case 0 où ton personnage se trouve.
Fait toi une petite grille et dessine les nombres tu verras, ça saute aux yeux.
La partie le plus difficile en soi est la composition de la grille: Comment propager l'information, donc quelle case touche quelle case. Mais il y a plusieurs manière plus ou moins facile à mettre en place ou rapide, comme par ex utiliser les coordonnées world, un tableau de voisin avec ID, récupération à la construction, etc.
Là, c'est à toi de jouer en fonction du jeu que tu souhaites faire.

Encore une fois, il existe surement un Asset qui doit le faire déjà, peut-être faut-il mieux rechercher que de se lancer dans ce script. Sauf si tu as l'envie de le faire toi même. Ce n’est pas d'une difficulté insurmontable. C'est du niveau fin de 1er année d'IUT info.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

bisonfoutu
Messages : 27
Inscription : 22 Juil 2015 15:44

Re: Tile Base PathFinding

Message par bisonfoutu » 30 Mars 2016 14:32

Je t'avoue que ton explication me fait un peu peur, je comprend très bien le principe, seulement de là à le programmer je pense que j'aurais un peu plus de mal. Je vais quand même essayer, bien que cela me paraisse vraiment compliqué (je ne suis malheureusement pas en DUT info =p ).

Merci beaucoup pour tes réponses en tout cas, j'espère que je vais au moins réussir a faire quelque chose!

Bonne journée a toi =)

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6221
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Tile Base PathFinding

Message par boubouk50 » 30 Mars 2016 14:51

J'insiste une 3e fois:

Des Assets pour ce genre de pathfinding doit déjà exister. Il vaut peut-être mieux que tu approfondisses tes recherches plutôt que de te lancer dans quelque chose que tu ne maîtrises pas encore.

J'ai tapé: tilemap pathfinding dans google et je suis tombé sur pas mal de résultats dont cette vidéo:
http://www.youtube.com/watch?v=kYeTW2Zr8NA

Oui, c'est en anglais, blablabla, ça n'empêche pas que les solutions déjà implémentées existent déjà, il suffit juste de chercher un peu.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

bisonfoutu
Messages : 27
Inscription : 22 Juil 2015 15:44

Re: Tile Base PathFinding

Message par bisonfoutu » 30 Mars 2016 15:05

Le lien est parfait, je ne sais pas encore très bien comment chercher des infos sur la programmation.

Je vais partir de ce tutoriel pour démarrer mon projet.

Encore merci!

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6221
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Tile Base PathFinding

Message par boubouk50 » 30 Mars 2016 15:15

???
Tu tapes simplement le tire que tu as mis sur ce forum: tile base pathfinding, tu ajoutes unity pour spécifier, et tu tombes sur cette vidéo. Y'a vraiment rien de compliqué, tu aurais perdu moins de temps si tu avais cherché un minimum.
Je ne te dénigre pas en disant cela, mais je veux seulement te montrer à quel point le recherche d'information est importante.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

bisonfoutu
Messages : 27
Inscription : 22 Juil 2015 15:44

Re: Tile Base PathFinding

Message par bisonfoutu » 30 Mars 2016 19:12

Je sais bien que la recherche d'information est capitale, et croit moi j'y suis passé. Je me demande comment je suis passé a coté de ce lien. J'ai parcouru des dizaines de forum... Mais je ne suis pas tombé sur celui ci.

Enfin la n'est pas la question, je ne cherche pas a me justifié, mais je ne serais pas venu demander de l'aide sur un forum sans avoir fait de recherche au préalable.

Encore merci pour ton aide.
Bonne soirée

Répondre

Revenir vers « Unity le logiciel »