JeuWeb - Crée ton jeu par navigateur
Pathfinding - 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 (/showthread.php?tid=4414)



Pathfinding - Scrat - 16-10-2009

Je me décide enfin à ouvrir un topic pour demander quelques conseils.

En effet depuis plus d'un an maintenant je code un jeu PHP (que j'ai laissé à l'abandon bien 6 mois, pour cause de paternité :p). J'avais codé le jeu entièrement en php en ajoutant vraiment très peu de Javascript car j'y étais allergique.

Depuis, je me suis soigné, et ça va beaucoup mieux. J'utilise mootools et j'ai appris via ce dernier à appréhender un peu moins le JS. Donc là, j'ai repris depuis le tout début la programmation de mon jeu. Avec en premier plan ma carte, mon perso, son déplacement (avec du mootools un peu partout). Tout fonctionne.

Mais maintenant je voudrais ajouter un petit plus au déplacement, le pathfinding A*. J'aimerai pouvoir le développer en javascript pour l'intégrer à mon module de déplacement.

Je viens ici pour chercher des conseils (pas du code), une orientation, vers quoi me tourner. Peut être un script js est tout prêt et me tend les bras. Peut être devrais-je prendre le script php de naholyr et le transformer en js.

Pour ce qui est de savoir si on proposera au joueur le chemin le plus rapide ou alors le moins couteux... je pense développer les deux ! Et voir par la suite, peut être une option pour le joueur.

Je sais qu'il y a pas mal de sources sur le net mais justement, si vous en avez une à vous, que vous pensez meilleure qu'une autre, je suis preneur (et je veux savoir pourquoi elle est meilleure Big Grin)

Je voudrais tout simplement votre avis.


RE: Pathfinding - guile - 16-10-2009

Personnellement, si j'avais à faire un pathfinding pour un jeu web, je réaliserais le code côté serveur.
Ceci pour une raison simple : je risque d'avoir plus besoin de faire du pathfinding côté serveur (genre pour des éventuelles IA).
Ainsi, je mettrais en place un mécanisme en Ajax :
- Le client dont le personnage est au point A veut aller au point B
- envoie d'une requête Ajax : Pathfinding de A vers B
- calcul côté serveur
- réception du trajet obtenu
- affichage via javascript du résultat
- acceptation / refus par le client du chemin.

Ainsi, la requête Ajax appelle du code côté serveur, que tu pourrais très bien réutiliser pour les IA.
En ce qui concerne le code, je n'ai pas chercher. A toi de voir ce que tu veux : t'enrichir à faire ton code de PF, ou être efficace en reprenant une ressource.

Bon courage à toi!


Guile


RE: Pathfinding - niahoo - 16-10-2009

+1 pour le faire en ajax, c'est le plus simple car tu auras besoin de l'info côté serveur et côté client, or le php c'est quand même beaucoup plus simple/performant pour ça, notament pour gérer les listes "close", "open" "global" (enfin je trouve)

tout est là : A* Pathfinding for Beginners

pour DL son programme, tu recherche dans le texte : Sample Code: A* Pathfinder (2D) Version 1.9

C'est assez facile au final tu verras.


RE: Pathfinding - Thedeejay - 16-10-2009

voici le bon lien Wink http://www.policyalmanac.org/games/aStarTutorial.htm


RE: Pathfinding - Scrat - 16-10-2009

Je suis ridicule non ? :p

Merci franchement, j'avais tout bonnement mal réfléchit. En effet je me vois bien faire mon pathfinding en php et le récupérer via ajax pour l'afficher.

Je prends en compte vos liens et je vous donnerai des nouvelles prochainement. (Je pense voir vos liens dans la soirée et commencer peut être un peu de code).

Merci les gars.


RE: Pathfinding - Ter Rowan - 17-10-2009

je ne dirais pas ridicule

on peut aussi le faire coté client, ça évite au serveur de faire des calculs et de consommer la bande passante

après tu envoies toutes les étapes au serveur qui ne fait rien d'autres que de valider la possibilité de passer d'une étape à l'autre

l'intérêt étant là d'avoir une seule interface ajax et script serveur pour valider le mouvement d'un personnage par le biais d'étape par étape

en effet si tu choisis de donner au joueur plusieurs méthodes de déplacement
- ligne droite
- a*
- étapes (décidées par le joueur)
- etc

tu développes uniquement côté client tous ces choix et un seul script/algo de contrôle coté serveur



maintenant c'est vrai que si tu as des pnj qui doivent se déplacer, faudra songer à le mettre coté serveur

mais à mon sens, ce n'est pas ridicule de le mettre coté client


RE: Pathfinding - guile - 17-10-2009

+1 pour Ter Rowan qui a bien développé l'idée.

-1 a Scrat pour s'être qualifié de ridicule!

Pour revenir à la performance comparée de php et JS, sans entrer dans des détails techniques, je pense tout de même que le javascript propose une performance énorme comparée à php.

PHP va être géré par un serveur qui dans l'ultimum sera géré par un octo proc'.
Le JS va être géré par autant de processeur qe de client!

Et oui, le client a souvent une machine plus puissante que la partie octroyée par les serveurs mutualisés...


RE: Pathfinding - php_addict - 23-10-2009

bonjour

ily a script que je trouve très bien, voir ici: http://forum.phpfrance.com/vos-contributions/algorithme-astar-php-t245973.html

il m'a sauvé la vie ce script, mais faut aimer la POO...

je me permet un lien vers ma question sur ce forum au sujet d'un probleme au sujet de Astar: http://www.jeuweb.org/board/astar-chemin-impossible-trop-long-t-6095.html

bonne fin de journée