TourDeJeu, le réseau des jeux en ligne alternatifs : jeux web multijoueurs, jeux par forum. En savoir +

Flux RSS des discussions du forum : pour les joueurs, et pour les créateurs et MJ
  Reply to this topicStart new topicStart Poll

> Constantes : Fichier Vs Database, Question de design
Seren
Ecrit le : Mardi 23 Janvier 2007 à 15h54
Quote Post


Kid
*

Groupe : Membre
Messages : 37


Pour le stockage des constantes ( ou quasi constante du jeu), c'est à dire les prix, les caractérisitques des objets,..., j'hésite entre plusieurs solutions.

Fichiers:
- 1. un fichier "constant.php"
- 2. fichier CSV

Database:
- 3. une table

A priori, je penche pour la solution 1.

Le désavantage c'est de devoir charger le fichier de constante complet à chaque fois qu'on pourrait en avoir besoin. Donc gâcher de la bande passante inutilement. (Le fichier devrait pas faire plus de quelques Ko. )

La solution 3 ça permet plus facilement de récupérer uniquement l'info qui m'intéresse au coup par coup. Par contre, ça demande plus de ressources processeur, ça augmentre le nombre de requêtes. Sachant que les caractérisitques des objets risquent d'être utilisées assez souvent.

Est-ce qu'il y a des raisons pour adopter l'une ou l'autre solution ?

( Au final, je peux toujours essayer les deux et comparer. )
PMEmail Poster
Top
Haiken
Ecrit le : Mardi 23 Janvier 2007 à 18h50
Quote Post


Ouf
*

Groupe : Membre
Messages : 360


Si c'est constant, solution 1 sans hésiter. Je ne vois pas en quoi ça gâche de la bande passante, tout reste sur le serveur.


--------------------
PMEmail Poster
Top
Seren
Ecrit le : Mardi 23 Janvier 2007 à 19h08
Quote Post


Kid
*

Groupe : Membre
Messages : 37


Bonne remarque.. je sais pas à quoi je pensais...
PMEmail Poster
Top
Manest
Ecrit le : Mercredi 24 Janvier 2007 à 15h34
Quote Post


Ouf
*

Groupe : Membre
Messages : 503


Si t'as un gros CSV, t'es obliger de systématiquement lire tout le fichier, stocker le contenu dans le format qui te convient et utiliser le résultat?

L'ouverture, la lecture et le traitement d'un fichier ne prend il pas plus de temps qu'une requête BD?

L'idéal serait d'avoir les données directement stocké dans les structures d'accueils... Dans un fichier php que l'on inclut.

plutôt qu'un CVS que le PHP devrait ouvrir, lire etc... du genre
Hache à une main;2,5;30
épée à une main;1,4;25

Il faudrait un truc dans le genre
<?php
$tab_arme = array("nom" => "Hache à une main", "degat" => "2,5", "poid" => "30");
$tab_arme = array("nom" => "épée à une main", "degat" => "1,4", "poid" => "25");
etc...
?>


Seulement ce fichier ne peut plus être gérer par Excel directement...

Y aurait il un moyen de générer le fichier php directement sans passer par un script ou une implémentation manuelle ?


--------------------
PMEmail PosterUsers Website
Top
Nambew
Ecrit le : Mercredi 24 Janvier 2007 à 16h19
Quote Post


Kid
*

Groupe : Membre
Messages : 43


Pour ma part, je dirais la base de données, ça me semble plus simple et plus logique. Même si ce n'est pas compliqué, tu vas devoir créer du code pour accéder aux informations. Et si l'inventaire n'est pas affiché au complet, ça signifie que tu dois récupérer dans la base de données les objets à afficher comme dans le cas d'un inventaire du perso ou d'un magasin, donc tu peux très bien récupérer les infos au besoin en même temps avec une jointure.
PM
Top
LoK
Ecrit le : Mercredi 24 Janvier 2007 à 20h50
Quote Post


Ouf
*

Groupe : Membre
Messages : 210


Je n'ai pas testé la solution mais certains ont-ils essayé les bases de données SQLite ?

Ce sont des bases de données "normales" mais qui sont stockées dans des fichiers. Très rapide en lecture (10 fois plus qu'une requête classique si je me souvient bien de ce que j'avais lu) mais plutôt lent lors de l'écriture (idéal pour stocker les variables qui bougent peu donc).

PMEmail PosterUsers Website
Top
the-gtm
Ecrit le : Mercredi 24 Janvier 2007 à 22h52
Quote Post


Pro
*

Groupe : Membre
Messages : 130


Mon conseil c'est d'aller au plus simple, et avec ça de faire un jeu (pas un programme).
Ensuite quand le programme pose problème au jeu (trop lent, trop long à mettre à jour), il sera toujours temps de mettre les constantes à un meilleur endroit.
PMEmail Poster
Top
selenia
Ecrit le : Jeudi 25 Janvier 2007 à 19h57
Quote Post


Pro
*

Groupe : Membre
Messages : 163


@the-gtm : ...mouais on prend ca comme on veut mais je serais plutôt du style a faire bien dès le debut.


Sinon tu peux te faire un script qui génère automatiquement à partir de la base de donnée un fichier de constante.

L'avantage serait pour la facilité de mise à jour. En gros ca serait comme si tu avais un fichier qui fait le rôle de compilateur.

MODIFICATION DE LA TABLE > COMPILATION VIA UN SCRIPT (ca peut ête autant php que java que c++ suivant ce que tu sais) > TON FICHIER DE CONSTANTE

En tout cas c'est comme ca que j'interprete les dires de Manest

Version accès BD :

Fait un test tu verra bien ^^
PMEmail Poster
Top
Manest
Ecrit le : Jeudi 25 Janvier 2007 à 21h14
Quote Post


Ouf
*

Groupe : Membre
Messages : 503


QUOTE (the-gtm @ Mercredi 24 Janvier 2007 21h52)
Mon conseil c'est d'aller au plus simple, et avec ça de faire un jeu (pas un programme).
Ensuite quand le programme pose problème au jeu (trop lent, trop long à mettre à jour), il sera toujours temps de mettre les constantes à un meilleur endroit.

Ça dépend si tu te places du point de vue du game designer ou de celui du développeur. J'ai plus les réflexes de la seconde catégorie.

Pour ceux qui sont intéressé par mon problème d'informaticien la solution est p'tet ici. Pour les autres ça va juste vous filer un mal de crane wink.gif


--------------------
PMEmail PosterUsers Website
Top
Seren
Ecrit le : Jeudi 25 Janvier 2007 à 22h02
Quote Post


Kid
*

Groupe : Membre
Messages : 37


QUOTE (Manest @ Mercredi 24 Janvier 2007 14h34)

Seulement ce fichier ne peut plus être gérer par Excel directement...

Y aurait il un moyen de générer le fichier php directement sans passer par un script ou une implémentation manuelle ?



Au lieu d'utiliser Excel, tu utilises Open Office qui doit avoir une option d'export en CSV.

Ensuite un petit script qui relit le fichier CSV en utilisant fgetcsv().

Il y a toujours à executer un script mais ça parait plus simple que d'essayer de récupérer les infos depuis Excel.
PMEmail Poster
Top
the-gtm
Ecrit le : Jeudi 25 Janvier 2007 à 22h08
Quote Post


Pro
*

Groupe : Membre
Messages : 130


L'avantage de mettre les constantes en base de données, c'est que si tu fais l'interface qui va bien, un non programmeur peu les modifier tout seul. Ca permet de laisser un maitre de jeu faire des ajustements.
Pour moi ce genre de choses est utile que si tu as effectivement un maitre du jeu non informaticien. Si tu t'occupes tout seul du jeu, mets les constantes dans un fichier et pour les mettre à jour, réupload le sur le site.

Mets toi du point de vue des joueurs, qu'est ce qui les intéresse le plus : savoir que tu as fait un super framework ou avoir un jeu intéressant ? Quand tu auras répondu à cette question, tu sauras sur quoi te concentrer smile.gif

Après si le jeu a une vocation pédagogique (apprendre à développer), ou si ton but est de te faire plaisir, tu peux te lacher !
PMEmail Poster
Top
Seren
Ecrit le : Vendredi 26 Janvier 2007 à 17h31
Quote Post


Kid
*

Groupe : Membre
Messages : 37


Indépendamment des questions d'objectifs personnels, sur le forum "Programmer" je pose des questions de Programmation. Les questions plus orienté jeu (gameplay, difficulté, interactions,..) je les réserve pour les forums plus approprié.

Ensuite, juste réaliser quelque chose qui "marche" pour ensuite revoir une partie du design parce qu'on a pas pris en compte un élément au départ, c'est pas du tout ma façon de voir.

C'est justement à ça que sert la partie "reflexion" avant de coder.

Dans le cas présent, stocker d'une façon ou d'une autre les constantes, ça ne va pas changer tout le code, c'est plutôt assez mineur. Mais je préfère prendre de bonnes habitudes au départ pour m'éviter du boulot après.
PMEmail Poster
Top
« Sujets + anciens | Programmer | Sujets + récents »

Reply to this topicStart new topicStart Poll