JeuWeb - Crée ton jeu par navigateur
Pathfinding, Map 3D avec isobares (avec marching square) - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Pathfinding, Map 3D avec isobares (avec marching square) (/showthread.php?tid=4970)



Pathfinding, Map 3D avec isobares (avec marching square) - Gooora - 03-07-2010

Bonjour à tous,

En bref :

Dans cette discussion, nous aborderons le choix du mapping (vectoriel ou non-vectoriel), la mise en œuvre d’une carte isobares, les coupes transversales d’une map et le pathfinding associé.

Ces différents points sont importants, par la suite j’essayerai de rassembler les informations, les idées et/ou solutions pour rédiger un article du genre tutoriel sur le forum.
Ha oui, j’oubliais, je travaille en php/MySQL + ajax (avec ou non utilisation de jquery par exemple)

Introduction :

Beaucoup de personne on déjà voulu créé un jeu qui ne soient pas figé sur un système de tuiles isométriques (très bon article : http://www.jeuweb.org/showthread.php?tid=1703&page=2 ). Un système sans tuile permet une liberté de mouvements différente et permet de faire du temps réel ou pseudo temps réel. Ce système permet aussi de créer du relief dans le décor.

Question et hypothèse :

1) Comment faire intervenir le relief graphiquement ?
a- La vue du dessus (90°) avec choix de l’affichage des courbes isobares (marching square)
b- Vue de côté (45°), assez esthétique mais d’avantage de calcul graphique
c- Vue du dessus + coupe transversale

2) Comment le faire intervenir dans les mouvements des unités ?
a- Relief non vectoriel (moins esthétique mais moins de calcul) => obstacle (avec l’information : l’unité peut passer, est ralentie, ou non)
b- Relief vectoriel => Calcule des courbes et des différentes inclinaisons pour savoir si ou ou non l’unité passe ou est ralentie

Analyse :

1) a)
* calcul graphique moins lourd
* calcul de la matrice pour le marching square avec h [Hmin->Hmax] = f(x,y)
1) b)
* calcul graphique élevé
* calcul de triangle correspondant au graphisme et affichage + affichage des éléments cachés ou non…
1) c)
* calcul graphique moins lourd
* calcul de la matrice pour le marching square avec f(x) = h ; f(y) = h
* La coupe ne représente pas l’espace 3D => muti-coupe transversale avec différente couleur selon la profondeur

2) a)
* Le relief est formé d’obstacle qui sont des figures simples isométriques : parallélépipèdes, dé à 12 faces…
* calcul des inclinaisons assez simple
2) b)
* calcul des différents points isobares pour obtenir des inclinaisons, ou travail en vectoriel pur


(Personnellement je regarde la solution simple en premier lieu : 1.a + 2.a couplé à l’algorithme de Dijkstra pour le déplacement des unités)


Qu’en pensez vous ? (esthétique, performance, fluidité…)
Qu’utiliseriez vous ?
Simplifieriez-vous les formules ?
Comment appliqueriez vous le pathfinding ?
Travaillez-vous parfois en vectoriel ?


Soyez complet, je remettrai tout au propre s’il faut pour vous et les suivants ;-)