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.
Partager