JeuWeb - Crée ton jeu par navigateur
[Résolu] Comment bien faire une carte sans trop de requêtes ? - 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 : [Résolu] Comment bien faire une carte sans trop de requêtes ? (/showthread.php?tid=3466)



[Résolu] Comment bien faire une carte sans trop de requêtes ? - oualala - 21-12-2008

Bonjour à tous!

Voilà, moi mon problème est nullement l'affichage d'une map, mais la création de celle-ci.

En ce qui concerne l'affichage, les déplacements, etc... Je pense y arriver sans trop d'ennuis. Mais le problème c'est que si je veux créer une carte, sa me prend trop de requêtes...

J'ai 3 tables, la table sur la position du joueur sur une carte. Une table carte, où il y a les informations d'une carte. Et une table cases où est indiqué l'emplacement des images. Cette dernière table me cause un petit problème... Si je fais une carte 10*10 cases, ben sa fait quand même 100 requêtes...

Vous vous feriez comment? Des fichiers à côté pour les cartes et juste les informations du joueurs dans la BDD?

Et si vous auriez un tutoriel, merci d'avance Wink


RE: Comment bien faire une map sans trop de requêtes? - wild-D - 21-12-2008

? pourquoi 100 requêtes

tu dois pouvoir faire une jointure non afin d'aovir tes info en une requête ?


Sinon y a effectivement des cas ou j'aurais tendance à utiliser des fichiers pour les données constantes (genre si la map terrain est figée; et si biensûr on joue par "map" -taille d'une map limité; et qu'on passe de l'un à à lautre par "portail"-)

sinon pour ce qui est de ta table case; à mon avis elle est inutile; utilise une convention simple pour facilement retrouver l'image avec le contenu de ta table carte.


RE: Comment bien faire une map sans trop de requêtes? - oualala - 21-12-2008

Ok, je croix que je vais donc faire un fichier à côté.

Le coup des 100 requêtes c'est exagéré, mais bon, même avec une jointure sa laggerait trop...

Problème réglé Wink


RE: [Résolu] Comment bien faire une carte sans trop de requêtes ? - Sephi-Chan - 21-12-2008

Étonnant… Avec une jointure, la carte peut-être récupérée en 1 requête.
Quoi qu'il en soit, n'hésite pas à présenter ta solution ici, qu'elle puisse resservir.


Sephi-Chan


RE: [Résolu] Comment bien faire une carte sans trop de requêtes ? - oualala - 21-12-2008

J'ai pris un tuto, et je vais essayer de le faire en 2D iso Wink. Mais j'avais pas pensé que sa ne prendrai qu'un seul fichier, moi j'aurai pensé que sa allait prendre 20 fichier pour 20 map par exemple... Donc je suis parti sur la BDD.

Voici le résultat actuel:

http://uplofile.free.fr/rep2/66226976carte.jpg

Merci à ce tuto: http://www.jeuweb.org/board/creation-dune-map-2d-en-php-simple-mais-t-41.html Smile


RE: Comment bien faire une carte sans trop de requêtes ? - Hakushi - 23-12-2008

Personnelement j'utilise des fichiers XML que je genere avec un editeur de map Flash, c'est tres pratique et dans la mesure ou le terrain d'une map est tres peu sujet a changement, je ne trouve pas utile de surcharger MySQL avec une/plusieurs tables pour des maps.

L'avantage que j'y trouve c'est que ca me permet de charger ma map dans n'importe quel langage, par exemple je genere une vu 2D du dessus de mes maps avec php pour avoir un apercu , mais la map ou le joueur se trouvera sera elle gerée par Flash en 3D iso.
Pour ce qui est des interactions et des eventuels scriptages, c'est tout en DB et dans memcached, sous une forme map:caseX:caseY:<ma clef>, pour flash je retourne des SWF en byteArray dans lesquels j'ai compile mes functions/script (s'il y a plusieurs swf, je les merge sous forme de .pak que je revoie comme un seul fichier binaire, qui est decomposer dans flash pour recuperer le contenu de chaque SWF), et pour de l'affichage web pur c'est du JavaScript (via JQuery) que j'injecte donc a l'affichage.

Au final ca donne ce genre de fichier:
Code :
<map name='forest_44' level_modifier='5'>
   <textures>
        <texture url='url_of_the_texture' name='Young Tree' class='tree_1' />
        <texture url='url_of_the_texture' name='Dark Ground' class='ground_2' />
   </textures>
   <mapping>
        <tile x='0' y='0' level='0.2' class='ground_2'/>
        <tile x='0' y='0' level='0.2' class='tree_1'/>
        <tile x='1' y='0' level='0.2' class='ground_2'/>
   </mapping>
   <scripts>
        <action tile='0;0' script_name='treasure_12' />
   </scripts>
</map>