Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL > Débuter
Débuter Forum d'entraide : Débuter en base de données avec PostgreSQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/04/2011, 11h06   #1
Invité de passage
 
Homme
Concepteur Jeux Vidéos
Inscription : avril 2011
Messages : 12
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Concepteur Jeux Vidéos
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2011
Messages : 12
Points : 1
Points : 1
Par défaut Debutant, cast, heritage

Bonjour

Tout d'abord bravo à l’équipe de Developpez.com et aux participants des forums. J'ai trouvé ici de bonne choses et les articles/réponses sont de bonne qualité.

Pour me présenter rapidement, je suis développeur de jeux vidéo pro depuis 11 ans et jusqu’à présent j'ai essentiellement bossé sur console (PS2, DS, Wii, X360). La situation actuelle fait que mon prochain jeu sera sur PC.

Je travaille sur un jeu de type "Wipeout". Le coeur du jeu (la partie course) est terminé. J'ai sorti il y a quelques mois une version pour smartphones.

J'ai commencé une version PC. Vous pouvez avoir quelques infos ici:
http://www.raggededge-online.com/
Le jeu sera couplé avec une base de donnée. J'ai choisi PostgreSQL.

Je me suis acheté le libre "SQL" de Frédéric Brouard, qui si j'ai bien compris est modérateur ici. Très bon livre, je le lis et relis pour comprendre progressivement les concepts et instructions.

Je suis débutant donc je me pose des questions sur la manière d'architecturer mes données.

Le point particulier de mon jeu est qu'il est "customisable". Par l'a j'entends que chaque joueur peut modifier des paramètres des données du jeu pour créer ses propres éléments.
C'est moi qui choisi les paramètres que j'externalise du jeu, leur type, leurs bornes et je souhaite stocker cela dans la BDD.

Par exemple:
Le joueur pourra faire des courses dans x "environnements" (=décor) differents (et pour chaque choisir entre y "circuits" (=pistes) ).
Pour chaque environnement, je souhaite stocker des paramètres comme:
Texture de fond ("Skybox") (Choix dans une liste), Gravité (float), Condition climatique (choix dans une liste)
Tous les environnements ayant les même paramètres, je vois vaguement comment je vais pouvoir faire cela.

Mon problème est au niveau des modes de jeux.
Le jeu comportera x modes de jeux differents et chacun aura ses paramètres (la ils peuvent être tous differents).

Exemple: (Mode : Paramètres )
CONTRE LA MONTRE : Aucun paramètre
VS : Nombres d'adversaires, Nombre de tours, ...
CHECKPOINTS : Nombre de tours, Espacement des checkpoints, temps de depart, nombre de drones, type de drones, ...

Pour chaque mode, il y aura plus de paramètres, l'idée c'est qu'un maximum de données soient réglables par le joueur pour créer de nouveaux mode de jeu, qui seront partagés aux autres joueurs.

Je pourrai créer une table mode de jeu avec un mélange de tous les paramètres de tous les modes. Mais je trouve cela vilain. Car impossible de savoir lequel est utilisé pour tel ou tel mode (et puis j'ai envie d'apprendre à faire les choses bien si possible).
Idem si je dois utiliser un unique paramètre text, et stocker toutes mes infos la dedans la queueleuleu. Vilain.

En C++, j'utiliserai la notion d’héritage pour créer une classe mère et des classes filles spécifiques. Et quand je fais un lien vers un mode de jeu, je peux le typer en "classe mère" et mettre dedans n'importe quelle classe fille.

Donc je verrai une table mère "MODE DE JEUX".

Et des tables filles "CONTRE LA MONTRE", "VS", ... qui hérite de "MODE DE JEUX".

Ce que je ne sais pas, c'est si il est ensuite possible de faire une table "COURSES" dans laquelle je pourrai préciser qu'il y a une données de type "MODE DE JEUX" (une clé étrangère , c'est ca ?), et dans laquelle je pourrai faire un lien avec n'importe laquelle des tables filles, (et donc une entrée dans cette table) et que ca puisse me paramètres d'aller lires les données spécifiques des tables filles.

Ou alors il faut faire des CASTS ?

J'aimerai savoir si dans l'idée globale je suis sur la bonne piste.

Et si quelques uns ont des aides pour le détail, je suis curieux également.

Merci d'avoir lu.
Christophe78180 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 17h56   #2
Modérateur
 
Inscription : octobre 2008
Messages : 1 505
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 505
Points : 2 034
Points : 2 034
Citation:
Envoyé par Christophe78180 Voir le message
Ce que je ne sais pas, c'est si il est ensuite possible de faire une table "COURSES" dans laquelle je pourrai préciser qu'il y a une données de type "MODE DE JEUX" (une clé étrangère , c'est ca ?), et dans laquelle je pourrai faire un lien avec n'importe laquelle des tables filles, (et donc une entrée dans cette table) et que ca puisse me paramètres d'aller lires les données spécifiques des tables filles.
Non en modélisation relationnelle, on ne peut pas faire un lien qui va tantôt vers une table tantôt vers une autre avec le SGBD qui se débrouillerait dynamiquement pour aller chercher les données au bon endroit. Y compris et même notamment avec la fonctionnalité d'héritage de structure de table présente dans postgresql.

En revanche une modélisation assez courante pour des entités avec des attributs communs consiste à faire une table principale avec les attributs communs, et des tables secondaires avec leurs attributs spécifiques et une clef externe vers la table principale.
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 19h40   #3
Invité de passage
 
Homme
Concepteur Jeux Vidéos
Inscription : avril 2011
Messages : 12
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Concepteur Jeux Vidéos
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2011
Messages : 12
Points : 1
Points : 1
Merci pour ta réponse.
Je vais continuer a potasser pour la comprendre maintenant.
Christophe78180 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h28.


 
 
 
 
Partenaires

Hébergement Web