JeuWeb - Crée ton jeu par navigateur
Définir les coûts des bâtiments - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Définir les coûts des bâtiments (/showthread.php?tid=2778)

Pages : 1 2


Définir les coûts des bâtiments - Arathor - 18-07-2008

Bonjour,
J'aimerais avoir vos avis pour définir les coûts des différents bâtiments dans un jeu. En effet, dans mon jeu je prévois une bonne trentaine de bâtiments différents, et je suppose qu'il y à des meilleurs solutions que celle à laquelle j'ai pensé, à savoir : enregistrer chaque ressource nécessaire et le nombre qu'il en faut dans un array (par exemple, le array "maison" contiendrait : bois => 25, briques => 10 et pièces => 100 (ce n'est qu'un exemple) ).
Sauf que je me vois mal faire trente arrays à la suite, juste pour vérifier que le joueur a assez de ressources pour construire UN bâtiment...
Donc voilà, connaissez-vous des techniques pratiquent pour réaliser ce genre de chose ? Je pense que ça pourrait en intéresser plus d'un.


RE: Définir les coûts des bâtiments - Cartman34 - 18-07-2008

Dans un de tes fichiers, tu dois avoir donné à un tableaux les prix de tes bâtiments pour chacun selon leur ID.
Quand tu dois afficher ce batiment et ses prix où vérifier ses prix, tu fais appelles à ton tableau multidimensionnel et POUR CHAQUE ressource, tu vérifies si le joueur possède une quantité suffisante.


RE: Définir les coûts des bâtiments - P0ulp0r - 18-07-2008

Bah moi personnellement j'enregistre chaque valeur en terme de ressources pour chaque batiments dans la BDD
Chaque tuple du batiment en question contient donc toutes les ressources qu'il a besoin.
Car je précise, il n'y a pas de niveau, donc s'il faut un systèmes de niveau pour les ressources d'un batiment, cela nécessite une fonction.


Mais je ne vois pas pourquoi tu fais un array. Ne serais pas plus simple de stocker la valeur des batiments dans une BDD ? Et ensuite prendre les valeurs de ressource du batiment avec un ID dont tu as besoin avec une requête.


RE: Définir les coûts des bâtiments - Argorate - 18-07-2008

Salut, deux solutions : inclure un fichier avec un tableau contenant toutes les valeurs qu'il te faut, ou utiliser la BDD.

Je suis justement de mes bâtimenentrain de faire la liste ts et leurs couts, je suis donc en plein dans le sujet. Personnellement j'ai environ 80 bâtiments. Je pense que si je faisais un fichier PHP avec un array, la page à inclure serait trop lourde, je préfère passer par une BDD, qui est plus manipulable et plus léger.

Toi qui n'en a que 30, il faut voir si tu as beaucoup d'information par bâtiments, personnellement j'ai 20 ressources différentes, mais si tu n'en a pas beaucoup, cela peut marcher. Sinon je te conseil d'utilisé la BDD Wink


RE: Définir les coûts des bâtiments - Cartman34 - 19-07-2008

P0ulp0r -> Les données persistantes n'ont pas à être stockées sur la BDD, tout simplement car ce sont des requêtes inutiles.
Cela va davantage créé de faille plus que ca ne va être pratique.
Je ne vois pas pourquoi la bdd enregistrerai ce genre d'information...

Argorate, un système par fichier serait beaucoup plus léger, ne crois pas qu'inclure un fichier est bien long pour PHP alors qu'on sait tous qu'une requête est assez lourde, ne serait-ce que pour tes connexions à la bdd. Avec ce système, vous allez consommer beaucoup plus de ressources m'enfin après vous faites toujours ce que vous voulez ^^ sans oublier que cela est MOINS maniable.
De plus, 80 bâtiments, t'as pas l'impression que c'est un peu difficile à gérer pour les joueurs? Il faut tout coordonner en plus !

EDIT: J'ai fait un peu de benchmark en testant " l'include " des données des tous les vaisseaux, défenses, bâtiments, technologie d'IGame.
PHP a exécuter en moyenne pour 100.000 tests, l'inclusion des mes 360lignes en 1663.15268 microsecondes.
Test effectué avec la fonction gettimeofday().


RE: Définir les coûts des bâtiments - Arathor - 19-07-2008

Interessant tout ça.
Donc finalement, le mieux est d'enregistrer toutes les données de chaque batiment dans un fichier sous forme de tableau que j'inclurai dans la page ou je dois traiter la construction du bâtiment.
Puisque ça semble en fin de comté plus rapide, je vais faire comme cela.
Merci beaucoup pour votre aide :respect:


RE: Définir les coûts des bâtiments - Argorate - 19-07-2008

IGstaff a écrit :Argorate, un système par fichier serait beaucoup plus léger, ne crois pas qu'inclure un fichier est bien long pour PHP alors qu'on sait tous qu'une requête est assez lourde, ne serait-ce que pour tes connexions à la bdd. Avec ce système, vous allez consommer beaucoup plus de ressources m'enfin après vous faites toujours ce que vous voulez ^^ sans oublier que cela est MOINS maniable.
De plus, 80 bâtiments, t'as pas l'impression que c'est un peu difficile à gérer pour les joueurs? Il faut tout coordonner en plus !

EDIT: J'ai fait un peu de benchmark en testant " l'include " des données des tous les vaisseaux, défenses, bâtiments, technologie d'IGame.
PHP a exécuter en moyenne pour 100.000 tests, l'inclusion des mes 360lignes en 1663.15268 microsecondes.
Test effectué avec la fonction gettimeofday().

Je pense qu'inclure un fichier de plusieurs MO sera moins rapide qu'une simple requête.
Ensuite je ne vois pas pourquoi tu dis que c'est moins maniable, c'est tout le contraire !
Avec SQL tu peux modeler le tout en quelques secondes. Exemple : Tu veux que tout les bâtiments qui cout du bois, cout +10en bois, en une petite requête c'est exécuté, alors que tu dois tout te taper a la main quand c'est dans un fichier... C'est très loin d'être "maniable" comme tu dis.

Je n'ai pas encore testé, et je le ferai le jour venu, mais je pense que la conection à la BDD sera moins longue qu'une inclusion d'information qui me servira n’a rien. Inclure toutes les données alors qu'il nous en faut qu'une, c'est une perte de temps. Mais apres tout plein de gens aime perdre leur temps Smile

PS: en quoi 80 bâtiments c'est dur a gérer pour les joueurs? Ce n’est pas eux qui doivent se taper de mettre tout ça en BDD Big Grin


RE: Définir les coûts des bâtiments - Lanwin - 19-07-2008

Un système de fichiers, ça s'optimise aussi... Je suis aussi un adepte de la BDD, mais quand c'est pour des infos qui ne changent pas (ou très très rarement), je n'en vois pas la peine...

Personnellement j'ai mon dossier "_batiments", et dedans un fichier php pour chaque bâtiment : caserne.php, hutte.php, etc.. comme ça j'inclue que ce dont j'ai besoin, pas plus, pas moins. Couplé à un fichier general.php, qui lui regroupe suivant différentes fonctions les bâtiments qui ont besoin de bois, de pierre, etc, etc, je trouve ça plus pratique. Vu que je suis pas censé rajouter un bâtiment tous les 4 jours, c'est bon. Et si j'ai besoin d'en rajouter un, je lui mets son fichier php correspondant, et je le rajoute dans les fonctions dont il dépend. Rien de plus, rien de moins.

Amicalement,


RE: Définir les coûts des bâtiments - Lanwin - 19-07-2008

Donc en gros tu as un dédoublement des informations? Bizarre pour un monsieur "du genre à éviter d'avoir les informations à 50 endroits" ^^ (ironie inside hein Tongue)

Pourquoi 8h? Pourquoi pas 24, voir même 30*24? Penses-tu que tes batiments verront leurs caractéristiques changer toutes les 8h? ^^

Amicalement,


RE: Définir les coûts des bâtiments - Lanwin - 19-07-2008

D'accord, dans ce cas, pourquoi passer par la BDD si c'est pour qu'au final, ça finisse dans des fichiers qui seront inclus?