Version imprimable du sujet
Cliquez ici pour voir ce sujet dans son format original
Forum TourDeJeu > Programmer > Logique Ou Pas ?


Ecrit par: Actarus Jeudi 10 Avril 2008 à 23h41
Bonsoir a tous

Depuis quelque temps je bricole en php/sql pour faire un semblant de jeu ( pour mon plaisir personnel ) mais;

je bloque sur la logique de ma bdd et j’aimerais vous en faire part, a votre avis et il préférable de mettre toutes les infos d’un joueur dans la table joueur, ou faut il que je fasse d autres tables par exemple ajouter la table possession, guilde, armement, richesses etc etc

Bien sur je ne compté pas mettre toutes les données dans une seul table mais je bloque sur cette satané table joueurs.

Merci pour vos réponses

Ecrit par: Rataflo Vendredi 11 Avril 2008 à 10h32
Je ne sais pas si tu t'est deja penché sur Merise mais si tu ne connais pas il serais intéressant que tu regarde. C'est pas super compliqué mais ca va te donner les clés pour résoudre ce genre de probléme somme toute basique.

Imagine ton joueur il posséde plusieurs objets, tu te vois créer un champ pour chaque objet possedé dans la table joueur (objet1, objet2,....)?
Non tu crée une table JOUEUR_OBJET avec ID joueur et ID objet en PK.

Ecrit par: Oelita Vendredi 11 Avril 2008 à 23h04
A tout hasard, tu peux jeter un oeil sur ce vieil article TdJ sur les bases de données : http://www.tourdejeu.net/focus/index.php?num=11 , qui donne un exemple de base de données.

Ecrit par: Actarus Samedi 12 Avril 2008 à 00h22
je ne connais pas trop la méthode Merise (juste de nom)
je vais me documenté et je regarde le focus


merci bien


heuuuu en faite je crée une table objet qui possède tous les objets du jeu et qui sont appeler le moment voulu par leurs id (je suis sur la bonne piste je suis pas très logique des fois) smile.gif

Ecrit par: Oelita Samedi 12 Avril 2008 à 11h11
oui, en général, on a une table objet, qui contient les caractéristiques de chaque type d'objet (image, poids, type d'objet, point d'attaque si c'est une arme, etc selon tes besoins) et qui donne un identifiant (id) à chaque type d'objet.

Ensuite, si ton joueur ne peut possèder qu'un seul objet à tout moment, alors tu peux mettre une colonne objet dans ta table joueur, qui contient l'id de l'objet. Tu peux faire ça aussi pour indiquer l'arme et l'armure du joueur s'il ne peut porter qu'un de chaque...

Mais (c'est le cas général), si ton joueur peut porter plusieurs objets, il faut que tu fasses une table à part pour l'équipement des joueurs, qui représente l'inventaire. Elle comporte une colonne id du joueur et une colonne id de l'objet , mais on peut rajouter aussi, par exemple, le nombre d'objets de ce type (il porte 3 torches, par exemple), ou bien l'état d'usure, ou je ne sais quoi d'autre.

Ecrit par: blueman Mardi 12 Août 2008 à 17h57
En fait merise permet de formaliser ta pensée et de procéder a la normalisation qui permet d'optimiser surtout l'espace disque. Pas besoin d 'être un expert en merise pour commencer a t'amuser. Met plutot l'accent sur le game design. Si tu fais du php orienté objet, tu peux la jouer "une table = une classe".

Si tu recherche la performance brute, je te conseil d'aller lire les blogs sur le sujet du tuning des serveurs mysql.

(http://ebergen.net/wordpress/2006/03/06/3-minute-mysql-tuning/ donne de bons articles.)

Tu pourra y apprendre quelques astuces de conceptions concernant la structure des tables, l'utilisation des index, des clés étrangeres, etc. Et garde a l'esprit que souvent, le plus couteux est d'établir une connexion plutot que de rechercher dans une table de 10 000 inscrits.

Pour une maquette de jeu, regroupe tous tes champs dans une seule table. Ca ne sera ni beau ni performant, mais ca sera une maquette. Et si tu te rends compte lors de la mise en ligne que les acces BDD sont trop longs, trouve une personne sachant " normaliser" une table qui voudra bien construire ce projet avec toi :-) Maisil est probable que le goulot d'etranglement ne sera pas ta BDD.

Tu peux me contacter par Mp si tu cherche un coup de main bien précis (j'insiste sur le *bien précis*, évite les questions trop ouvertes), je pourrai peut être de donner le bon tuyau.

***************************************
OUPS, désolé pour le déterrage de topic :-D

Alors il en est ou ce jeu ?

Ecrit par: Actarus Samedi 20 Septembre 2008 à 01h32
salut et merci, même tardive les réponses sont les bienvenues

En faite le jeu n'est pas construit complètement en php le gros morceau est un
(client téléchargeable) en C
seul la création du compte/perso, la gestion de l'hôtel des ventes, la messagerie,les sauvegardes, et quelques autres bricoles seront gérés par des pages php "enfin bricole c'est deja pas mal" smile.gif

j'ai découvert un soft génial pour ma bdd http://louis.saunders.free.fr/

Merci pour ta proposition d'aide il se peut que je te fasse appel, pour des trucs bien précis



Acta
-----------------------------------------------------------
mon jeu avance il n'est plus au stade embryonnaire


Ecrit par: Guile Samedi 20 Septembre 2008 à 10h25
Pour moi c'est devenu simple la modélisation :
"Tu écris des phrases qui décrivent le fonctionnement de ton jeu" c'est la première étape importante.
Puis tu souligne ce qu'on appelle des entités (en gros les noms de choses comme personnages, possessions, guildes, etc.)
Tu essaies ensuite de dire :
- est ce que telle entité est liée à telle autre entité? (en gros : est que les possessions sont liées aux personnages. Evidemment c'est oui!) Si c'est oui, tu te poses 2 questions : combien de machins pour 1 truc, combien de trucs pour 1 machin? Les réponses c'est "plusieurs, et au moins une", "de zero à plusieurs", "zero ou une", "une et une seule" (ex: combien de possessions pour un personnage, ici c'est plusieurs mais pas forcément; combien de personnages par possessions, euh... dans ce sens je dirai un et un seul (car selon mon interprétation personnelle, une possession est forcement possédée par un personnage). C'est l'étape la plus importante, car c'est déterminant sur la façon de concevoir ta base de données. Il est possible de revenir par la suite sur la bdd, mais c'est très chronophage.
- à partir de ces choses, il faut modéliser la base de données physiquement. Si les 2 étapes précédentes ont été bien faites, tu auras une belle base de données.

Certains diront que suivre la norme à outrance n'est pas garants de performance. Car la norme optimise la taille des données, mais pas la vitesse d'exécution. Après, il faut un peu d'expérience pour optimiser le tout.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)