10-12-2014, 07:39 PM
(Modification du message : 10-12-2014, 07:42 PM par Thêta Tau Tau.)
Je suis confronté à ce problème pour les ressources en temps réel, les comptes à rebours, et l'indication des actions possibles ou pas sur l'interface en fonction du stock de ressources (en temps réel aussi, genre le bouton "améliorer le bâtiment" change de couleur à la seconde où le joueur a assez de ressources).
En première approximation, mon client demande la date au serveur (via websocket), comme ça j'ai la différence entre les deux, et je peux corriger la date côté client. C'est tout con et ça marche pas trop mal.
Après je suppose qu'on pourrait améliorer ça en prenant en compte le ping/lag, en vérifiant de temps en temps que la différence client/serveur n'a pas bougée etc. Mais bon pour l'instant j'ai pas envie de me casser la tête là dessus (s'il y a 0.5 secondes de décalage c'est pas un drame).
Je me suis pas encore trop penché sur le problème des timezones, mais dans tous les frameworks que j'ai essayé il y avait des fonctions pour les gérer (nativement ou via une extension). Du coup ça me semble pas trop dur de faire en sorte que chaque client ait l'heure dans son fuseau horaire.
Après ça peut toujours poser problèmes dans les communications entre joueurs, genre si un Français dit à un Québécois qu'il va se faire attaquer à 13h15 et qu'il a besoin d'aide, avec le système ou chacun voit l'heure dans sa timezone, le Québécois risque d'arriver après la bataille. Du coup indiquer l'heure du serveur à tout le monde me semble une option viable aussi, ou sinon indiquer les deux heures pour ceux qui sont pas dans le fuseau horaire du serveur.
En première approximation, mon client demande la date au serveur (via websocket), comme ça j'ai la différence entre les deux, et je peux corriger la date côté client. C'est tout con et ça marche pas trop mal.
Après je suppose qu'on pourrait améliorer ça en prenant en compte le ping/lag, en vérifiant de temps en temps que la différence client/serveur n'a pas bougée etc. Mais bon pour l'instant j'ai pas envie de me casser la tête là dessus (s'il y a 0.5 secondes de décalage c'est pas un drame).
Je me suis pas encore trop penché sur le problème des timezones, mais dans tous les frameworks que j'ai essayé il y avait des fonctions pour les gérer (nativement ou via une extension). Du coup ça me semble pas trop dur de faire en sorte que chaque client ait l'heure dans son fuseau horaire.
Après ça peut toujours poser problèmes dans les communications entre joueurs, genre si un Français dit à un Québécois qu'il va se faire attaquer à 13h15 et qu'il a besoin d'aide, avec le système ou chacun voit l'heure dans sa timezone, le Québécois risque d'arriver après la bataille. Du coup indiquer l'heure du serveur à tout le monde me semble une option viable aussi, ou sinon indiquer les deux heures pour ceux qui sont pas dans le fuseau horaire du serveur.