JeuWeb - Crée ton jeu par navigateur
Gestion Des ressources - 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 : Gestion Des ressources (/showthread.php?tid=7632)

Pages : 1 2


Gestion Des ressources - killianr - 21-04-2016

Bonsoir a tous, je suis actuellement en pleine conception d'un jeu par navigateur et je me heurte à un petit problème et j'aurai voulu connaître les solutions qui existent, je ne cherche pas de l'aide pour du code mais juste les solutions  qui sont recommandés pour ce problème.


Je cherche le moyen le plus optimale pour gérer les ressources de chacun des joueur, car il faudrait que les ressources soit a jour quand le joueur est connecté mais aussi quand le joueur se fait attaquer ou qu'il se fait espionner et donc quand il n'est pas connecté, j'ai lu certains sujet du forum mais je ne suis pas sur de la solution la plus adaptés.


Pour information il y a 3 types de ressources qui sont attribués toutes les minutes (prod=60/h donc le joueur gagne 1 de ressources par minute).
Les ressources dépendent du niveau du bâtiment qui produit la ressource et de l'endroit ou la ville est situés.

Cordialement

PS: Si je n'est pas bien posé ma question n'hésitez pas a me le faire savoir.


RE: Gestion Des ressources - niahoo - 21-04-2016

Hello,

L'idée de base c'est de sauvegarder la date et heure à laquelle tu met à jour les ressources, dans un autre champ.

Comme ça, à chaque fois que tu y touches, tu sais d'où tu repart. Quand un joueur se fait attaque, tu commencer par calculer combien de ressources il a gagné depuis la dernière fois. Puis tu soustrais ton pillage, et tu sauvegardes les nouvelles ressources avec la nouvelle date/heure.


RE: Gestion Des ressources - Xenos - 21-04-2016

Salut,

ouep, la solution de niahoo est usuelle et suffisante pour des jeux.


Je ne sais pas si ce sera ton cas, mais sur Eclerd, il y a des "boucles" de production: un puits de pétrole consomme de l'électricité et produit du pétrole pendant qu'une centrale thermique consomme du pétrole et produit de l'électricité.
Soit il faut faire un calcul d'ensemble (PétroleProduit = DT * (productionPuit - consommationCentrale) avec DT le temps écoulé depuis le dernier calcul), soit il faut avoir des intervalles de temps assez courts (CRON journalier, voire horaire suivant les jeux).

Sur Eclerd, j'ai tenté la 1ere solution, mais elle m'a explosé dans les mains: les boucles étaient trop complexes (là, j'ai hyper-simplifié, mais avec 15 ressource et 6 corps de métiers... BOUM!). J'ai donc viré ces calculs, mais je n'ai pas tenu compte de la 2e condition (des intervalles courts), ce qui fait que re-BOUM, c'est la misère de ressources...

Pour faire simple, un joueur possède un puits (100kWatts/j = 200barils/j) et une centrale (100barils/j = 200kW/j). Il a 1000 barils et 1000kWatts en stock (on stocke l'énergie, c'est plus simple).
Le joueur ne vient pas pendant 2 semaines (15 jours) et ne se fait pas attaquer, et ne revient qu'après ces 2 semaines. La simulation fait produire le puits en 1er. Pendant ces 15 jours, le puits a consommé beaucoup d'électricité: 1500Watts, plus que les stocks du joueur. Donc, le puits va consommer les 1000Watts en stock, produire 2000 barils, et s'arrêter (stocks intermédiaires: 0Watt, 3000barils). La centrale produit. Elle a besoin de 1500 Barils (15 jours * 100barils/j) et elle produit donc 3000Watts.
Stocks finaux: 3000Watts, 1500 barils. Et un message d'erreur "Votre puits de pétrole n'a pas assez d'énergie pour fonctionner"...!
Stocks théoriques: 2500 Watts, 2500 barils

Et là encore, le cas est simple (avec une vingtaine de types de bâtiment, cela a fini en rupture de stock sur toutes les ressources).

Donc, attention à la durée entre deux simulations (suivant le jeu, cette limite varie car elle dépend du modèle mathématique du jeu).


RE: Gestion Des ressources - niahoo - 21-04-2016

C'est pour ça que je fais des warp de temps maintenant. J'avais ouvert un topic récemment, parce que je fonctionne avec des quantités discrètes (on ne produit pas 1,3 voiture !). Du coup je fais un warp jusqu'à la fin de la production qui finit le plus tôt et je boucle comme ça.

Pour des quantités continues on peut éventuellement warp jusqu'à épuisement des ressources nécessaires (ici l'électricité en premier lieu). Mais si tu as des prod en parallèle c'est plus chaud.


RE: Gestion Des ressources - Xenos - 21-04-2016

Pour les quantités discrètes, tu peux aussi avoir des quantités continues en BDD et discrètes à l'affichage. Voire indiquez l'avancement de la dernière voiture: 1.3 voiture en stock représente en fait 1 voiture terminée, et une autre avancée à 30%. Sur un jeu avec 100.000 voitures/jour, osef un peu mais sur un jeu où chaque voiture compte, savoir que tu as avancé 30% de la suivante peut-être une bonne information...


RE: Gestion Des ressources - niahoo - 21-04-2016

Oui mais si tu relis le topic tu verras que ça soulève d'autres problèmes.


RE: Gestion Des ressources - killianr - 21-04-2016

Merci beaucoup a vous deux pour vos réponses.
Cela ma beaucoup aidé.

Par rapport a ce que tu as dit Xenos au niveau des bâtiments qui ont besoin d'une alimentation pour eux même produire ce n'est pas le cas chez moi, chaque bâtiment fonctionne avec une population ils et ne demandent aucune autre ressource sachant que la population est mobilisés a la construction(ou a l’amélioration) et donc je n'est a m'occuper que des ressources qui sont produites, ou déduites quand il y a une attaque.

Donc comme vous l'avez dit je vais calculer les ressources du joueur quand il recharge ou avant qu'il se fasse espionner ou attaquer.


RE: Gestion Des ressources - killianr - 23-04-2016

Bonjour a tous,

Je voulais savoir si l'utilisation du timestamp est la meilleur option d'après vous?

Killian


RE: Gestion Des ressources - Xenos - 23-04-2016

Ca me semble adapté oui, puisque tu esquivera toute considération de timezone (c'est dingue comme les gens peuvent s'embrouiller inutilement avec ça... en tous cas, au taff, c'était presque drôle Smile ) et tu n'as normalement pas besoin d'une précision à la milli/micro-seconde.


RE: Gestion Des ressources - killianr - 27-04-2016

Bonjour,

Je voulais vous demander votre avis, sur les Updates car étant donné que a chaque fois que l'on actualise les ressources il y a 4 Updates 3 pour les ressources et 1 pour renseigner la date de la dernière actualisation des ressources.
Est-ce que n'est pas un peut trop et cela ne risque pas de causer des problème de serveur?