JeuWeb - Crée ton jeu par navigateur
[SQL] Ressource - 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 : [SQL] Ressource (/showthread.php?tid=3684)

Pages : 1 2


RE: [SQL] Ressource - Allwise - 17-02-2009

Pour mon jeu j'aurai aussi des données qui évoluent avec le temps. J'ai commencé à y réfléchir, et je pense que les cron sont bien si les tâches qu'on a besoin de lancer sont légères et doivent l'être une fois de temps en temps.

La solution que tu as adoptée Keke ma parait pas mal, sauf que d'un point de vue logique, les tâches qui tournent "en fond" n'ont pas à être traitées dans les requêtes des joueurs. Même si tu dis que ça n'impacte pas les perfs du jeu, cette solution n'est pas viable s'il y a beaucoup de taches à lancer, et ce régulièrement. Mais dans ce cas là, on se rapprocherait d'un jeu realtime, pour lequel il faudrait un vrai serveur, donc le besoin n'est pas le même et la solution non plus.

Pour l'instant, j'ai juste besoin de régénérer la santé de mes joueurs régulièrement. Et aussi d'afficher une liste des persos connectés, avec leur santé.
Je vais donc travailler avec une vue dans ma base qui affichera les infos telles qu'elles devraient l'être, et je les mettrai à jour lorsqu'une action modifie la santé : un combat, une guérison, ou que sais-je...
Parce que je me vois mal lancer 30 updates toutes les minutes, et inclure ce traitement dans la requête d'un internaute.

Si jamais mes besoins en terme de tâches de fond devenaient plus importantes, je me tournerai vers une autre solution, de type serveur, qui ressemblerait à la boucle infinie en PHP. S'il ne s'agit que de faire des requêtes dans la base de données, je pense que PHP peut suffire, même s'il est loin d'être adapté à ce genre de choses.


RE: [SQL] Ressource - keke - 17-02-2009

Coucou AllWise.

Mon système est opérationnel pour des taches journalières ou tout du moins à instant précis.
Dans le cas de la récupération de santé, je pense que tu peux faire un système un peu mieux. L'information concernant la santé de ton personnage n'est pas une information utile en temps réelle. Tu t'en sers lors d'un combat, lorsque ton perso se prend une boule de feu, s'empoisonne, tombe dans un piège etc...

Perdre ou gagner des points de vie dans ton système peut-il se résumer ainsi ?
- Actions ponctuelles entrainant une chute ou une augmentation de vie.
- Toutes les minutes regains d'une partie de la vie du joueur.

Si oui, alors faudra que je fasse un texte sur le Wiki pour expliciter des méthodes simples et pratique d'éviter le Update toutes les minutes.
Ce qui se passe pour la vie peut aussi être utilisé pour la mana, la stamina ... et les ressources tels qu'on les présente dans les jeux les plus basiques (chaque jour +100 en bois).

Kéké.


RE: [SQL] Ressource - Allwise - 17-02-2009

Oui, il se résume ainsi, c'est pourquoi j'ai envisagé une solution qui ne requiert pas une mise à jour toutes les minutes, mais seulement lorsqu'une action qui modifie la stat en question est lancée.
Comme dit dans mon précédent message, dans ma vue, j'ai un champ calculé qui me donne la valeur de la stat, à jour. Un simple champ basé sur la valeur effective de la stat + le nombre de minutes écoulées depuis la dernière mise à jour multiplié par le nombre de points récupérés par minutes ( si ça dépasse la valeur maximum admise, c'est bien entendue celle-ci qui est retournée ).
Par contre, ce système ne permet pas, a priori, de gérer divers effets actifs qui influenceraient la stat concernée : régénération plus lente, aucune régénération... à moins d'utiliser des procédures stockées.


RE: [SQL] Ressource - alexkidd - 26-02-2009

Bonjour,
Pour ce qui est de la génération des ressources, je connais un cron sympa www.onlinecron.com
si cela peut aider....
Tchao