JeuWeb - Crée ton jeu par navigateur
Conception d'une bdd - 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 : Conception d'une bdd (/showthread.php?tid=4430)

Pages : 1 2


Conception d'une bdd - Elscorto - 30-10-2009

Bonjour, ce serai pour avoir des explications sur la modélisation d'une base.

Je m'explique, je souhaiterai faire un jeu basé sur la gestion d'une ville.Ce ne sont que des idées pour l'instant.

On va dire que le jeux se déroule sur une planète, une planète est composée d'une dizaine d'île, une île est composé de 3 à 4 ressources, un joueur à l'inscription obtient une île. Le joueur doit faire évoluer sa ville en exploitant des ressources.Une ville peut aussi avoir des bâtiments qui lui permettront d'exploiter ses ressources ou de faire des recherches.

La chose que je voudrais faire, c'est que pour chaque bâtiments,ça demande des habitants,des ressources et de l'or,l'or se gagne grâce aux habitants,les habitants augmentent grâce aux nombres de maisons, mais celà augmente aussi la consommation.

Bon après plus loin,je ferai des stades d'évolution,enfin bref présentation et comme vous le voyez,c'est qu'un banal jeu de gestion, il y aura commerce guerre etc...

Aujourd'hui,j'ai commencé à imaginer les bases et j'aimerai savoir ce que vous en pensez.

Une table Joueur qui contient toutes les données du joueur.
Une table planête mais on va dire que pour l'instant il n'y a qu'une planète.
Une table île pour savoir quelle ressource existe sur l'île (je ne vois pas comment faire pour l'instant).
Une table ville ou colonie,peut importe le nom, cette table représentera la ville du joueur.

[ON]Pour cette partie,je ne suis pas sûr de moi.
Une table type_ressource qui contiendra les différentes ressources du jeu.
Une table ville type_ressource,où là sera stocké la quantité de ressource de chaque ville
Une table type_bâtiment même chose que pour type_ressource
Une table ville type_batiments même chose que pour ville_type ressources.
[OFF]

Voilà où j'en suis aujourd'hui,qu'est ce que vous en pensez?Pour définir les habitants, dois je faire des tables comme pour ressources ou est ce qu'une colonne dans la ville suffit. Après il faudra que je réfléchisse au coefficient,qu'une ferme admettons produit 50 de nourritures,un habitant en consomme 2, une ferme peut avoir jusqu'à 10 travailleurs,coûte 5 or d'entretien.

Enfin voilà,je vous laisse la parole et merci.


RE: Conception d'une bdd - Argorate - 30-10-2009

Salut,

petit conseil: ne met pas d'accent dans le nom de tes tables Wink

Ensuite pourquoi mettre "type" en prefixe? "batiment" et "ressource" c'est trop simple? :p

Sinon pour ce qui est de "ville ressource", si tu sais quel batiment appartiennent a tel ville, tu peux retrouver cette quentié en faisant la somme de toutes celles des batiments concerné.
Reste a voir si c'est une donnée que tu as besoin souvent ou pas. Si c'est le cas ça vaut peut etre le coup de la stocker, mais si c'est occasionnel et calculable, tu n'en as pas vraiment besoin.


RE: Conception d'une bdd - Elscorto - 30-10-2009

Je sais pour les accents ne t'inquiète pas,le code est au niveau 0, je suis juste avec mon crayon et ma feuille,d'où les accents,et préfixes inutiles.
Les ressources,oui j'en aurai besoin,il faudra bien informer le joueur s'il peut construire tel bâtiment,car il y aura des ressources pour la construction et d'autres pour le besoin,un peu comme Anno si tu connais.Mais pour l'instant je cherche juste à modéliser ma base,faire un truc tout simple pour essayer de comprendre.


RE: Conception d'une bdd - wild-D - 30-10-2009

Soit au clair avec ton gameplay avant de te lancer dans la conception de la bdd. Ta bdd n'est pas là pour t'éclaircir les idées :/ (comment veux-tu faire ton MCD si t'es encore dans le flou sur ce que tu vas modéliser ?)

et sinon - je cherche pas à te vexer, juste que je connais pas ton niveau en conception de bdd -; cardinalité, clé étrangère, normalisation c'est du français ou du chinois pour toi ?
vu tes "questions" (faut une colonne ou une table pour les habitants), j'aurais tendance à te fournir un lien qu'avait posté y a pas longtemps plume sur les règles de normalisation: http://plumeconception.olympe-network.com/blog/index.php?post/2009/09/18/Organisation-des-donnees-dans-les-tables


RE: Conception d'une bdd - pascal - 30-10-2009

(30-10-2009, 01:08 AM)Elscorto a écrit : Voilà où j'en suis aujourd'hui,qu'est ce que vous en pensez?Pour définir les habitants, dois je faire des tables comme pour ressources ou est ce qu'une colonne dans la ville suffit. Après il faudra que je réfléchisse au coefficient,qu'une ferme admettons produit 50 de nourritures,un habitant en consomme 2, une ferme peut avoir jusqu'à 10 travailleurs,coûte 5 or d'entretien.

Comme dit wild-D, il faut clarifier l'étendue du jeu pour savoir ce qu'il y a à représenter en base de données.

Ensuite, comment savoir si c'est suffisant ?
J'ai un truc pour ça :
- décrire les fonctionnalités liées à la DB : augmenter les ressources, trouver les villes voisines, acheter des batiments...
- faire les requêtes à main levée (en lisant le schéma) : est-ce que les relations entre les tables sont claires pour faire les jointures ? est-ce que les colonnes des tables stockent toutes les infos nécessaires ?

Si c'est OK, ça devrait tenir la route pour les fonctionnalités définies. De nouvelles fonctionnalités risquent de faire changer le modèle par la suite, mais au moin ça sera une bonne base.

A+

Pascal


RE: Conception d'une bdd - Elscorto - 30-10-2009

Oui pour le gameplay,je vais essayé d'y réfléchir un peu plus,ce ne sont que des idées pour l'instant,c'est juste que je voulais essayer un truc tout simple por voir ce que ça donné et voir comment mieux le développer.

Ne t'inquiète pas,tu ne me vexe pas,ta question est légitime, pour y répondre,celà fait 8-9 mois que j'apprends en autodidacte le Xhtml-css-php-sql-javascript,j'essaie de me professionnaliser et créer un jeu est un excellent exercice même si je ne le mets pas sur le net.Je n'ai pas lu encore ton sujet mais je le lirai après avoir posté,juste pour voir si j'ai pas faux.
- La cardinalité, je dirai que ce sont les relations comme 1-1,1-n,n,m
- Clés étrangères,une clé se trouvant dans une table faisant réference à une autre table.
- Règle de normalisation : joker Wink

Voilà,je vais lire ton lien maintenant et merci de ta réponse, mais vous ne m'avez pas répondu,mes tables sont construites assez bien ou je me plante totalement?


RE: Conception d'une bdd - Sephi-Chan - 30-10-2009

(30-10-2009, 01:08 AM)Elscorto a écrit : Bonjour, ce serai pour avoir des explications sur la modélisation d'une base.

Je m'explique, je souhaiterai faire un jeu basé sur la gestion d'une ville.Ce ne sont que des idées pour l'instant.

On va dire que le jeux se déroule sur une planète, une planète est composée d'une dizaine d'île, une île est composé de 3 à 4 ressources, un joueur à l'inscription obtient une île. Le joueur doit faire évoluer sa ville en exploitant des ressources.Une ville peut aussi avoir des bâtiments qui lui permettront d'exploiter ses ressources ou de faire des recherches.

La chose que je voudrais faire, c'est que pour chaque bâtiments,ça demande des habitants,des ressources et de l'or,l'or se gagne grâce aux habitants,les habitants augmentent grâce aux nombres de maisons, mais celà augmente aussi la consommation.

Bon après plus loin,je ferai des stades d'évolution,enfin bref présentation et comme vous le voyez,c'est qu'un banal jeu de gestion, il y aura commerce guerre etc...

Aujourd'hui,j'ai commencé à imaginer les bases et j'aimerai savoir ce que vous en pensez.

Une table Joueur qui contient toutes les données du joueur.
Une table planête mais on va dire que pour l'instant il n'y a qu'une planète.
Une table île pour savoir quelle ressource existe sur l'île (je ne vois pas comment faire pour l'instant).
Une table ville ou colonie,peut importe le nom, cette table représentera la ville du joueur.

[ON]Pour cette partie,je ne suis pas sûr de moi.
Une table type_ressource qui contiendra les différentes ressources du jeu.
Une table ville type_ressource,où là sera stocké la quantité de ressource de chaque ville
Une table type_bâtiment même chose que pour type_ressource
Une table ville type_batiments même chose que pour ville_type ressources.
[OFF]

Voilà où j'en suis aujourd'hui,qu'est ce que vous en pensez?Pour définir les habitants, dois je faire des tables comme pour ressources ou est ce qu'une colonne dans la ville suffit. Après il faudra que je réfléchisse au coefficient,qu'une ferme admettons produit 50 de nourritures,un habitant en consomme 2, une ferme peut avoir jusqu'à 10 travailleurs,coûte 5 or d'entretien.

Enfin voilà,je vous laisse la parole et merci.

Ton modèle semble cohérent en ce qui concerne les tables de base. Pour récapituler (je mets des noms de table en italique et en anglais):
  • Une table contenant les planètes (planets) ;
  • Une table pour les joueurs (players), avec une colonne planet_id qui permet de savoir sur quelle planète joue le joueur ;
  • Une table contenant les îles (islands), avec une colonne planet_id permet de spécifier qu'une île appartient à une planète ;
  • Une table pour les colonies (settlements), avec une colonne island_id qui permet d'associer la colonie à une île ;


Concernant les ressources, la table qui recense les resources existantes pourrait simplement s'appeller resources. Pour les bâtiments (constructions), c'est pareil, pas besoin de préfixer, tu y perdras en clareté.

Ensuite, il te faudra effectivement des tables de relations.

Tu parlais de donner à chaque île des ressources spécifiques (pour inciter les joueurs à échanger ?), tu devras donc lier une île à des ressources, qui représentera les parcelles de resource disponibles sur chaque île. Pour cela, il te faudra une table de jonction riche (pas seulement un couple de clé étrangères) que tu pourras nommer parcels et qui possédera donc un identifiant unique, deux clés étrangères moins deux colonnes island_id et resource_id. Si tu veux ajouter des spécificités à chaque parcelle — par exemple la quantité maximale, la quantité actuelle, la vitesse de régénération ou que sais-je d'autre — tu peux, mettre les colonnes adéquates dans cette table.

Je m'arrête là pour le moment pour avoir ta validation ou non. Car peut-être que j'extrapole un peu tes besoins (car mon précédent projet de jeu fonctionnait de cette manière, avec des parcelles que l'on pouvait laisser en jachère ou au contraire, surrexploiter afin de les épuiser si on sentait le vent tourner).


Sephi-Chan


RE: Conception d'une bdd - Elscorto - 30-10-2009

Oui ce serai plus pour inciter les joueur à échanger, à coloniser ou se battre,comme capturer la ville d'un autre et l'exploiter,mais bon ça c'est quand je serai à un stade plus avancé.

Donc mes tables de bases sont bonnes,bon c'est un bon début,je vais essayer de réfléchir à la consommation et taux de production.L'histoire de laisser en jachère, pour faire durer la production est pas mal du tout non plus.

Merci pour vos précisions à tous.
[HS] Pascal: le lien de ton tuto sur la POO est hs,dommage[/HS]


RE: Conception d'une bdd - Sephi-Chan - 30-10-2009

Ok, ben je te laisse le soin de réfléchir. Tiens-nous au courant. Smile
J'ai réparé le lien de la signature de Pascal. Il pointait vers l'ancien nom de domaine.


Sephi-Chan


RE: Conception d'une bdd - Elscorto - 30-10-2009

D'accord,merci.Pas de problème je vous tiens au jus Wink