JeuWeb - Crée ton jeu par navigateur
[Avis] Carte - 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 : [Avis] Carte (/showthread.php?tid=5411)



[Avis] Carte - Fathom - 09-05-2011

Salut à tous,

Je bosse avec un ami sur un p'tit projet de jeu d'incarnation de super-héros.
On a pas mal avancé, une bêta-test est en cours d'avancement, et la majorité des erreurs ont été corrigées.

Jusqu'ici, les joueurs déplaçaient leur perso via un petit menu déroulant qui affichait l'ensemble des lieux auxquels ils avaient accès. (En fonction de leur niveau)

A présent, j'aimerai mettre en place une carte.

Cependant j'ai quelques soucis :

Dans la DB (DataBase), j'ai une table carte. Cette table contient les valeurs X et Y de chaque case. (abscisse/ordonnée)

J'arrive à peu près à m'imaginer le système à mettre en place pour afficher la carte.
(Double boucle imbriquées, utilisation de la table pour afficher à chaque case l'image correspondante...)

J'aurai besoin de votre avis :
-> Sachant que la carte doit représenter une ville moderne (genre New-York), connaissez-vous un moyen d'accéder à des ressources graphiques qui pourront faire office de roue de secours, en attendant de mettre la main sur un graphiste ? Tongue
-> Admettons que j'utilise le système de boucles, comme je pense le faire, pour parcourir la carte en DB afin d'afficher les images correspondants aux cases... Comment dissimuler les parties de la carte que le joueur ne peut pas encore visiter ?

Si je n'ai pas été assez clair, pardonnez-moi (il est tard quand même ! Tongue), et n'hésitez pas à me poser des questions. Smile

PS : Si je n'ai pas posté dans la bonne rubrique, ne me tapez pas, messieurs les modérateurs. Big Grin


RE: [Avis] Carte - Sephi-Chan - 09-05-2011

Pourquoi nommer ta table carte alors qu'elle contient les cases ? D'ailleurs on parle plutôt de tuiles, tiles en anglais, pour éviter le côté problématique du mot-clé "case" dans certains langages de programmation.

Si tu stock toutes ces tuiles en base, pourquoi faire une double boucle pour créer ta grille ? Pourquoi ne pas directement récupérer toutes les cases dans la zone qui t'intéresse ? Après tu peux même positionner tes éléments en CSS (avec des classes type tile-X-Y) plutôt qu'avec un tableau, comme ça tu n'es même pas embêté par la fin d'une ligne : ton HTML ne contient qu'un flot d'éléments.

Concernant les parties de la carte visible selon le niveau, tu peux simplement associer un niveau à chacune de tes cases, ainsi, si le niveau dépasse celui de ton héros, tu affiches de l'ombre au lieu de ce qu'il y a vraiment. Après c'est juste une piste, je ne connais pas très bien ton jeu.

Concernant les ressources graphiques provisoires, as-tu pensé à Google Maps ? Les clichés des grande villes sont plutôt beaux.


RE: [Avis] Carte - Jeckel - 09-05-2011

Question : ta carte (tes cases ou tuiles) vont évoluer continuellement ? ou bien c'est un truc assez figé ?

Parce que sinon, il est souvent plus simple d'avoir une seule image complète, et de ne stocker que les informations pertinentes des tuiles.


RE: [Avis] Carte - Fathom - 09-05-2011

Tout d'abord merci à vous pour vos réponses rapides, et utiles. Smile

Les clichés de NY sont intéressants, je note. L'idéal ce serait de trouver quelque chose de ce genre, mais en pixel art. Tongue

La carte sera la même pour tout le monde, et n'évoluera pas.
J'entends par là qu'elle ne sera pas modifiée. En revanche, elle sera souvent amenée à être agrandie au début. Wink

Ma carte est divisée en quartiers. Ces quartiers regroupent 4 "tuiles".
Auriez-vous une parade pour que le joueur sache à quel quartier correspond tel ou tel groupement de tuiles ?


RE: [Avis] Carte - Jeckel - 09-05-2011

tu veux les rendre inaccessible ? ou complètement invisible ?

Tu peux par exemple afficher une grille HTML par dessus l'image et rendre opaque les cases que tu souhaites rendre inaccessible.



RE: [Avis] Carte - Ter Rowan - 09-05-2011

(09-05-2011, 02:03 PM)Jeckel a écrit : tu veux les rendre inaccessible ? ou complètement invisible ?

Tu peux par exemple afficher une grille HTML par dessus l'image et rendre opaque les cases que tu souhaites rendre inaccessible.

attention cependant à cette solution Smile

En effet cela veut dire que visuellement, dans le jeu, le joueur ne voit pas ce qu'il ne doit pas voir mais que l'image complète est disponible côté client et donc que même un gars comme moi, pas très au fait technologiquement, peut voir la carte en entier même si le jeu m'en empêche

si on veut vraiment empêcher un joueur de voir des éléments graphiques il faut que le serveur n'envoie que les éléments visibles (je pense que c'est ce que Jeckel a voulu dire par inaccessible versus invisible)


RE: [Avis] Carte - Jeckel - 09-05-2011

Exactement, la solution que je propose (simple et peu coûteuse en performance) permet de facilement rendre une partie de la carte inaccessible, mais effectivement, la carte complète reste transmise et donc pas tout à fait invisible.

Ensuite tout dépend du nombre de case / tuile tu as sur ta carte... si c'est de l'ordre d'une dizaine, tu peux faire une image par combinaison possible... sinon il faut utiliser une solution plus complexe


RE: [Avis] Carte - Fathom - 09-05-2011

Je préfère qu'à chaque tuile corresponde une image.
Si le joueur à accès à la tuile, on l'affiche. Sinon, on met une image "cache", du genre un simple fond blanc. Wink

C'est tout bête, j'ai codé des choses à tordues telles que le système d'alliance, de messagerie, de combats...
Mais la carte, je bloque un peu. :/

Enfin je ne bloque pas directement, j'ai une bonne idée de ce que je veux faire quand même... Mais j'ai peur que ce ne soit pas simple d'utilisation. (Où afficher le nom des quartiers, celui des tuiles...)

Et j'ai aussi un deuxième souci : est-il préférable que le joueur se déplace sur telle ou telle tuile pour pouvoir lancer une mission qui lui correspond ? (Du genre : aller à la boutique pour lancer une mission d'achat) Ou est-il mieux d'inclure le temps de déplacement dans le temps nécessaire pour effectuer la mission ?