JeuWeb - Crée ton jeu par navigateur
[CONSEILS] Table(s) pour gestion 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 : [CONSEILS] Table(s) pour gestion carte (/showthread.php?tid=2064)



[CONSEILS] Table(s) pour gestion carte - Ogham - 26-11-2007

Bonjour,

Je travail toujours sur la carte de mon jeu et et suis actuellement en train de réfléchir à la meilleure manière de gérer tout ça.

Le premier problème qui m'occupe est le placement aléatoire sur cette carte des nouveaux joueurs.

Donc pour réaliser cette première étape j'ai imaginé une sélection aléatoire dans une table où seraient stockés tous les types de terrains de manière à pouvoir déterminer si l'emplacement est libre où non.

*par type de terrain on entend
si c'est une cité du jeu ou d'un joueur une zone habitable ou non ... ou un emplacement libre.

la table ressemblerait à ça:
Code :
CREATE TABLE `carte` (
  `id` mediumint(9) unsigned NOT NULL auto_increment,
  `type` tinyint(3) unsigned NOT NULL,
  `nom` varchar(60) NOT NULL,
  `x` smallint(5) unsigned NOT NULL,
  `y` smallint(5) unsigned NOT NULL,
  `description` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

Ce qui me pose question c'est que la carte complète fait 960px de côté et qu'il y a une info à enregistrer tous les 3px, soit 102400 entrées exactement.(j'ai fais un petit script qui marche très bien pour gérer le remplissage de la table donc de ce côté là pas de problème)

Mais cette table me semble énorme et je me demande si en terme de gestion, des requêtes, recherches dans la table notemment, ça ne va pas poser problème par la suite et je suppose que cette table à elle seule va consommer beaucoup d'espace ?

Elle devrait être utilisée pour le placement des joueurs donc,lors des déplacements sur la carte pour déduire les actions possibles et les évènements en fonction du type de terrain, et l'affichage des cités.
A priori c'est tout.
Mais elle sera donc sollicitée souvent pour les déplacements et l'affichage cités sur la carte.

Pourriez vous me dire ce que vous en pensez ? Est-ce gérable ou non ?

Sinon la carte est conçue de telle manière qu'elles peut être découpée en neuf parcelles donc cette table pourrait être divisée en neuf tables de 11236 entrées chacune.
Code :
CREATE TABLE `carte1` (
  `id` smallint(5) unsigned NOT NULL auto_increment,
  `type` tinyint(3) unsigned NOT NULL,
  `nom` varchar(60) NOT NULL,
  `x` smallint(5) unsigned NOT NULL,
  `y` smallint(5) unsigned NOT NULL,
  `description` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

Ce qui ne change rien en terme d'espace mais par contre les recherches simultanées elles sont répartie sur plusieurs tables.
Par contre ça alourdi un peu le code puisqu'il faut alors déduire pour chaque déplacement la parcelle sur laquelle se trouve le joueur avant de faire toutes les autre recherches.
ça complique également la requêtes pour l'affichage des cités du jeu.
Une requêtes sur neufs tables ?

Pensez vous que c'est mieux ainsi ?

Merci pour votre aide.


RE: [CONSEILS] Table(s) pour gestion carte - jean-baptiste - 26-11-2007

Ce que tu peu faire c'est faire un "else" : je m'explique !
tu rentre dans ta table les emplacement joueur , les emplacement d'un type de terrain mais si il y a un 3ème types tu fait un "else" affiche ça ( une texture sur ta carte ). ce qui peu soulager pas mal d'entrée !


RE: [CONSEILS] Table(s) pour gestion carte - Zamentur - 26-11-2007

jean-baptiste a écrit :Ce que tu peu faire c'est faire un "else" : je m'explique !
tu rentre dans ta table les emplacement joueur , les emplacement d'un type de terrain mais si il y a un 3ème types tu fait un "else" affiche ça ( une texture sur ta carte ). ce qui peu soulager pas mal d'entrée !

C'est vrai mais çà peut aussi compliquer l'evolutivité du jeu, imaginons par exemple qu'on veuille recuperer les cases qui ont ce 3eme terrain çà va etre le bordel...
Alors que si tout est rentrée normalement: no problem!


RE: [CONSEILS] Table(s) pour gestion carte - Ogham - 26-11-2007

Citation :Ce que tu peu faire c'est faire un "else" : je m'explique !
tu rentre dans ta table les emplacement joueur , les emplacement d'un type de terrain mais si il y a un 3ème types tu fait un "else" affiche ça ( une texture sur ta carte ). ce qui peu soulager pas mal d'entrée !

Oui en effet c'est une solution mais si effectivement une table de cette taille se gère facilement je préfèrerais la garder comme telle.
Concernant les textures je n'en affiche aucune, seulement des repères (point ou autre) sur un fond de carte.