17-02-2009, 05:23 PM
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.
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.