23-09-2009, 06:42 PM
Je me demande s’il ne faudrait pas faire un tuto une bonne fois pour toute avec ça, c'est toujours la même chose...^^
Déjà, ne parle pas de temps réel quand c'est un jeu par tour avec 1 tour = 1H.
Ensuite pour des raisons de performances évidentes, le cron n'est pas la bonne solution puisqu'il ira rafrech tout le monde y compris des inactifs.
Il reste donc la solution que d'autres ont déjà évoqué et qui me semble judicieuse:
Tu actualises que ce qui a besoin d'être actualiser. Pourquoi actualiser un joueur qui ne vient pas jouer (peu importe la raison)? Ça te fait des requêtes pour rien.
Donc lorsqu'un joueur se connecte ou fait F5 sur ta page jeu, tu vérifies le temps qui est passé depuis le dernier "tour" et tu regarde si ça fait X heure(s).
En conséquence de quoi, tu fais t'es calcule et ce X fois.
Pour calculer ce fameux X (nb d'heure écoulé [allant de 0 à l'infinie en théorie]), rien de plus simple: tu stock en bdd un timestamp et tu le compares au timestamp actuel lorsque le gars appel la page de jeu, ensuite c'est juste une soustraction avec des convertissions des unités (puisque timestamp est en seconde)...
Sachant qu'il y a 60 secondes par minute
60 minutes par heure
Et 3 600 secondes par heure, tu as tes diviseurs pour convertir
Bonne chance.
Déjà, ne parle pas de temps réel quand c'est un jeu par tour avec 1 tour = 1H.
Ensuite pour des raisons de performances évidentes, le cron n'est pas la bonne solution puisqu'il ira rafrech tout le monde y compris des inactifs.
Il reste donc la solution que d'autres ont déjà évoqué et qui me semble judicieuse:
Tu actualises que ce qui a besoin d'être actualiser. Pourquoi actualiser un joueur qui ne vient pas jouer (peu importe la raison)? Ça te fait des requêtes pour rien.
Donc lorsqu'un joueur se connecte ou fait F5 sur ta page jeu, tu vérifies le temps qui est passé depuis le dernier "tour" et tu regarde si ça fait X heure(s).
En conséquence de quoi, tu fais t'es calcule et ce X fois.
Pour calculer ce fameux X (nb d'heure écoulé [allant de 0 à l'infinie en théorie]), rien de plus simple: tu stock en bdd un timestamp et tu le compares au timestamp actuel lorsque le gars appel la page de jeu, ensuite c'est juste une soustraction avec des convertissions des unités (puisque timestamp est en seconde)...
Sachant qu'il y a 60 secondes par minute
60 minutes par heure
Et 3 600 secondes par heure, tu as tes diviseurs pour convertir
Bonne chance.
Dévotion, jeu multijoueur gratuit par navigateur de stratégie et de conquête
The Magic Institute, le jeu de magie médieval fantastique gratuit en ligne
Rapture Studio : créateur de divertissement pour tous
JePolitique.fr - débattons ensemble
JécrisLaConstitution.fr - ne laissons pas les Hommes aux pouvoirs écrire les règles du pouvoir
Je Deviens Citoyen (Association à but non lucratif)
The Magic Institute, le jeu de magie médieval fantastique gratuit en ligne
Rapture Studio : créateur de divertissement pour tous
JePolitique.fr - débattons ensemble
JécrisLaConstitution.fr - ne laissons pas les Hommes aux pouvoirs écrire les règles du pouvoir
Je Deviens Citoyen (Association à but non lucratif)