JeuWeb - Crée ton jeu par navigateur
Questions (techniques) sur la création d'une carte 2D - 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 : Questions (techniques) sur la création d'une carte 2D (/showthread.php?tid=1342)

Pages : 1 2


Questions (techniques) sur la création d'une carte 2D - Dexyne - 22-04-2011

Bien le bonjour.

Je désirerais savoir comment, ou plutôt qu'utilisez vous pour faire une carte 2D. Dans mon cas l'utilisation serait avec PHP mais cela n'empêche pas avec d'autres langages.
Ce que j'aimerais ce n'est pas du code tout fait mais plutôt connaître les technologies, les méthodes ou les structures que vous utilisez pour une carte 2D.
J'ai regarder un peu d'autres sujets mais je ne trouve pas spécialement les réponses que je cherche.

Par exemple, comment utilisez-vous la BDD pour votre carte ? Que mettez-vous dedans ?
Pour la structure je comptais utiliser les balises table puisqu'elles ont l'air d'être les plus adaptés à une bonne lecture (particulièrement pour les mal et non-voyants).
J'aimerais aussi savoir comment bien exploiter le cache, que ce soit au niveau de MySQL ou du cache "standard" (je sais pas si il a un nom :o).
Comment gérez-vous (en rapport ou non à la BDD) l'affichage des éléments (images, etc) sur la carte.

En faite j'ai une petite idée sur comment faire ma carte mais j'ai des "manques" ou des doutes sur sa structure. Afficher une carte via une BDD utilise-t-elle beaucoup de requêtes ? Dans le cas ou on chargerait toute la carte cela pourrait-il être lourd ? Et dans le cas où on ne chargerait qu'une portion (celle visible par le joueur) ?
Pour le nombre de cases je n'en sais rien et il est - fort - probable qu'il augmente avec le temps.


Je sais que tout ça dépendra aussi du projet et des besoins mais j'aimerais quelque chose d'assez général, je l'adapterais ensuite à mes propres besoins.


Je vous remercie par avance pour vos réponses Smile.


RE: Questions (techniques) sur la création d'une carte 2D - Sephi-Chan - 22-04-2011

Il faut que tu nous parles de ton jeu et de ta carte pour qu'on puisse te répondre efficacement. Smile

Quel genre de jeu as-tu ? La carte est-elle une grille ? Qu'est-ce qu'on trouve sur la carte ? Si c'est une grille et qu'on y trouve des choses, ces choses peuvent-elles occuper plusieurs cases ? Etc.


RE: Questions (techniques) sur la création d'une carte 2D - Dexyne - 22-04-2011

Alors, j'ai plusieurs utilisation de cartes donc je ne sais pas encore pour tout mais pour le projet actuel c'est un wargame avec la carte en grille effectivement (avec des table on peut faire d'autre type de carte ?), on y trouve un terrain (plaines, forêts, sable, plages, etc.) et des villes (la ville appartient au joueur ou à plusieurs joueurs si ils jouent groupés).
Les villes seraient - éventuellement - sous différentes forme selon leur "état" (je trouve pas le mot exacte mais bref). On aurait donc un village, une ville ou même une mégalopole, comme je le vois ce serait une illustration différente selon cette état.
Je ne pense pas faire occupé plusieurs cases, un terrain (ou son type plutôt) prendrait une case et une ville aussi je pense, seule l'apparence (donc une image) changerait en fonction.

Si d'autres infos sont nécessaires j'y répondrais Smile mais j'aurais aimé aussi savoir comment vous construisez vos cartes en fonction justement du type jeu, sur quel données ce baser pour construire sa carte en gros. Ça m'aiderais pas mal je pense ^^.

Edit: les villes sont placés sur un terrains et si existante, donc si aucun joueur ne joue (ce qui serait dommage) aucune ville ne serait présente sur la carte. Je pensais donc le placé au dessus du terrain et afficher donc 2 images pour les séparer.


RE: Questions (techniques) sur la création d'une carte 2D - Dexyne - 03-05-2011

Je remonte le sujet vu que j'ai pas eu de réponse hormis celle de Sephi ^^.

Pour la BDD je comptais utiliser un table "carte" avec les champs :
x, y, ville (devrais-je mettre directement l'id de la ville ou simplement si il y en a une ? Ou alors l'id du type de ville (village, ville, mégalopole) ?), type_terrain (id du terrain contenu dans la table "terrains")
Je crois que c'est tout, je ne sais pas si mettre un id pour chaque coordonnée soit judicieux qu'en est-il de vous ?

Une table "terrains" qui contiendrait chaque type de terrain (plage, forêt, montagne, plaine, etc) :
id, nom_terrain, construction (je sais pas trop quoi mettre sur le coup pour le nom mais pour savoir si la construction d'une ville est possible sur ce terrain, pas sur d'être mis ça mais bon ^^).

Puis une table "ville" avec les différents type de ville :
id, nom (ville, village, mégalopole,...)

Une table contenant les différentes villes existera aussi pour contenir toutes les villes existantes, elle sera lié au(x) joueur(s) qui en auront la gestion.

Ensuite je comptais faire une requête SQL puis afficher le tout dans une boucle et dans mon table. Une douzaine de case devrait être afficher par morceau de carte visible par le joueur, pour le total je ne sais pas et si elle grandit ce sera difficile à savoir ^^.

Est-ce donc une "bonne" méthode ? Cela sera-t-il trop lourd ? (si je limite à mes 12 cases je ne pense pas mais bon Smile).

Je crois ne rien avoir oublier bien que je n'en sois pas sur x).


RE: Questions (techniques) sur la création d'une carte 2D - atra27 - 03-05-2011

Je dirai exactement pareil:
Une table pour définir les valeurs
type_villes
id|nom
type_terrain
id|nom

Une table qui défini les villes construites
id|type_ville

Et enfin une table terrain qui regroupe les infos de la map
X|Y|type_terrain|id_ville
Si id_ville est a 0 (défaut) alors il n'y as pas de ville.

Tu peut optimiser en mettant que si l'enregistrement d'une case est inexistant alors la case n'a pas de ville et est un terrain de type 1... mais sa casse toute la logique des liaisons et sa posera probléme lors de la construction d'une ville sur cette casse... a éviter donc je pense...

Je pense pas que une jointure pour récuperer les 12 cases avec leur terrain et la ville associée soit un probléme vu que seule le premier traitement est long (sélectionner la case par X/Y) mais que comme tu ne peut pas procéder autrement.
Les autres traitements (récuperer la ville et le terrain) utilisent les id définis en primary sur ces tables, il n'y as donc pas moyen de faire beaucoup mieux a mon sens!


RE: Questions (techniques) sur la création d'une carte 2D - Dexyne - 03-05-2011

Ok merci de ta réponse, pour générer une carte (en tout cas au début) je comptais utiliser un array qui représenterais la carte avec des chiffres, ce serait le type de terrain, j'aurais donc un

array(0,0,0,0,0,
0,1,2,1,0,
0,0,0,0,0);

Ce qui représenterais pour zéro de l'eau par exemple, le 1 un plage et le 2 un "forêt" par exemple.
Bon j'ai simplifier faut mettre les coordonnées en plus et tout mais en gros c'était comme ça que je voyais le chose ^^.


RE: Questions (techniques) sur la création d'une carte 2D - php_addict - 03-05-2011

mais fout donc ca en base de donnée...plus facilement maintenable, évolutif, etc...


RE: Questions (techniques) sur la création d'une carte 2D - Dexyne - 03-05-2011

Oui mais avant la base de données faut bien générer ma carte xD. Me faut la structure puis ensuite l'ajout dans la table sinon je vois pas comment elle va se mettre en place :o


RE: Questions (techniques) sur la création d'une carte 2D - Asphodèles - 03-05-2011

Ca dépend de la complexité de ta map : si elle est simplissime, tu peux presque la faire à la main. Si elle est plus complexe, un système comme l'array que tu décris peut faire l'affaire. Mais si tu veux une carte vraiment grande avec plusieurs couches, et beaucoup de terrains différents, il va probablement te falloir un éditeur plus sérieux.

Moi j'utilise Tiled, je sauve ma map en csv sans compression et j'ai un p'tit script pour convertir en SQL.


RE: Questions (techniques) sur la création d'une carte 2D - Dexyne - 04-05-2011

Oui j'avais rapidement regarder Tiled mais pour le moment il n'y a rien de bien complexe puisque 2 couches seulement avec le terrain puis la ville par dessus, je ne sais pas si on va gérer les accords entre terrains pour le moment pour ne pas faire trop complexe, on améliorera par la suite.