IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Schéma Discussion :

Jeu [Entité-Association]


Sujet :

Schéma

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 79
    Points : 45
    Points
    45
    Par défaut Jeu
    J'ai le diagramme suivant :

    J'aurais besoin d'aide pour comprendre un peu les liens entre les tables avant de commencer à coder.

    dans ma table personnage j'ai un idPersonnage qui sera la primary key et des id pour chaque table qui sont en relation avec ma table personnage donc : idTete, idCorp, idMain, idRace, ... qui sont des foreigns key. Es-que c'est l'armure qui fait référence à personnage ou personnage qui fait référence à armure ?

  2. #2
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    salut,

    ton truc est un schéma de données classique pour un jeu... mais faut se méfier de ce genre de schéma.

    l'armure est un équipement comme un autre... ce qui simplifierait ta gestion et le nombre de tables
    les caractéristiques des équipements peuvent être stockés dans une table associative (ce qui permet une évolution de leur nombre).

    en terme de programmation ton schéma n'est pas du tout performant car beaucoup de chose peuvent être factoriser comme par exemple encore "tient" et "manie" mais aussi "porte sur x"... tout ça c'est résumable par une seule procédure "equipe" qui teste au moment de la tentative d'affectation si l'endroit convient en fonction de l'équipement, est vide (sinon remet l'objet présent dans l'inventaire puis le remplace, etc...

    d'ailleurs il manque un éventuel inventaire non?

    faut différencier l'action visible (la représentation, l'animation) de la gestion des données qui la codifie en interne du jeu

    donc ici personnage fait référence aux pièces de l'armure comme aux autres équipements (car tu as des armures différentes pour chaque partie du corps)

    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 79
    Points : 45
    Points
    45
    Par défaut
    Merci pour la réponse rapide, C'est un exerice pour un cours, on ne va pas vraiment implenter le jeu. Il y a juste le lien entre personne et armure qui m'énerve un peu. Dans Personnage je vais avoir 5 id's, qui seront des foreigns keys, pour les 5 parties du corps. Mais dans ma table armure sa va être quoi ma primary key ? es-que sa peut être les 5 id's des parties du corps ? Sa me foure un peu le fait qu'il y est 5 liens vers une seule table.

  4. #4
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    oui bien sur mais comme je te l'ai dit faut penser plus simple et efficace...

    si tu figes l'évolution du game play:

    perso:
    id
    id_main_droite
    id_main_gauche
    id_torse
    id_tete
    id_bras
    id_bottes
    force
    ...
    esprit
    après comme je te l'ai dit tout est un équipement:

    caracteristiques:
    id
    nom
    types:
    id
    nom
    emplacements:
    id
    nom
    code_emplacement
    equipements:
    id
    id_type
    nom
    code_emplacement
    equipements_caracteristiques:
    id
    id_equipement
    id_caracteristique
    valeur
    tu noteras que le principe pour les caractéristiques des objet peut s'appliquer au personnages mais avec soit une table de liaison spécifique (pour ne pas à avoir de collision entre id de personnage et des objets) soit en rajoutant une colonne pour savoir si c'est l'un ou l'autre dans la table de liaison (le nom "equipements_caracteristiques" n'étant plus valable bien sur)...

    à toi donc de voir si ton schéma ne mériterais donc pas d'être amélioré...

    c'est jamais tant l'outil de modélisation qui compte (tu peux largement t'en passer) que la réflexion...

    si tu fais le schéma à partir des table que je te donne il va grandement se simplifier tout en étant plus ouvert...

    tout se récupère en une à 3 jointures... très courtes... puis tu traites coté sgbd en procédural par exemple

    le code d'affectation sur le corps d'un objet est un "and bitwise" entre celui de l'objet et celui de la partie du corps dans la table emplacements), par exemple:
    • droite: 0000001
    • gauche: 00000010
    • droite et gauche: 00000011
    • tete: 10000000
    • torse: 01000000
    • jambes: 00100000
    • bras: 00010000


    une épée à donc pour code: 00000011
    tu veux l'affecter à la main droite dont le code est 00000001, le test serait:
    00000011 & 00000001
    ce qui donne une valeur différente de 0, tu sais donc que tu peux l'affecter

    ça te donne comme ça d'autres pistes
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 79
    Points : 45
    Points
    45
    Par défaut
    D'accord merci pour l’éclaircissement. Au sujet de la Table "Effet" comment je fais, car un personnage peut être affecté par plusieurs effets et un équipement aussi peut être affecté par plusieurs effets.

    J'ai par exemple dans ma table effet cette liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Protection du feu 
    o  Protection de l’air 
    o  Protection de la terre 
    o  Protection de l’eau
    o  Bouclier de feu
    o  Force de géant
    o  Régénération
    o  Esprit vif
    o  Rapidité
    o  Lenteur
    o  Esprit distrait
    o  Enracinement
    o  Bouclier magique
    Comment je vais faire pour savoir par combien / ou quel(s) effet est affecté le personnage puisque je ne peux pas avoir un nombre indéterminé de lien.

  6. #6
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    tes effets vont agir pendant un temps sur une ou plusieurs caractéristiques, ça peut ressembler à ça pour faire simple:

    effets:
    id
    id_caracteristique
    debut
    fin
    valeur
    dans cette approche tu gères 1 ligne par caractéristique affectée pour un effet

    autre approche:

    effets:
    id
    nom
    effets_caracteristiques:
    id
    id_caracteristique
    valeur
    effets_application:
    id
    id_effet
    debut
    fin

    au final ça revient à faire le listing des caractéristiques du personnage union celui des équipements union celui des effets puis un group by par id_caractéristique en sommant valeur.

    en fonction de l'action, tu lis les caractéristiques finales obtenues correspondantes
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 79
    Points : 45
    Points
    45
    Par défaut
    Merci pour ton aide ericd69, ce la m'a beaucoup aidé.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quel style de DirectX pour un jeu 2D ?
    Par delire8 dans le forum DirectX
    Réponses: 34
    Dernier message: 31/07/2003, 00h47
  2. Réponses: 7
    Dernier message: 18/06/2003, 15h20
  3. [socket][tcp] jeu en reseau
    Par souris_sonic dans le forum Développement
    Réponses: 2
    Dernier message: 30/05/2003, 07h31
  4. [C réseau débutant] jeu
    Par Heimdall dans le forum Développement
    Réponses: 6
    Dernier message: 22/05/2003, 13h58
  5. Une déclaration pour la survie du jeu vidéo en France
    Par Freakazoid dans le forum DirectX
    Réponses: 1
    Dernier message: 30/10/2002, 14h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo