Comment vivre mise à jour jeu navigateur attributs comme les 4 ressources dans le jeu Travian?

StackOverflow https://stackoverflow.com/questions/2081518

Question

Je voudrais faire un jeu basé sur le Web qui est Travian comme (ou Ikariam-like). Le jeu sera basé sur MySQL PHP &. Je me demande comment puis-je obtenir la mise à jour en direct des attributs de jeu.

Pour frontend, je peux obtenir à l'aide d'appels AJAX (extraire les dernières valeurs de base de données), ou la mise à jour même faux des valeurs (pas communiqué avec le serveur).

Pour backend, est-ce fait par une tâche cron PHP (qui passe toutes les quelques secondes)? Si oui, quelqu'un peut me donner quelques exemples de codes?

par ailleurs, je sais que ce serait un trouble si j'utilise IIS + FastCGI.

=== === Informations sur la version

  

PHP: 5.2.3

     

IIS: 6.0 avec FastCGI

     

OS: Windows Server 2003 R2 Standard

Était-ce utile?

La solution

La bonne réponse dépend de vos besoins.

Est-ce que tout le monde toujours obtenir des ressources au même rythme? Dans ce cas, une solution simple est de suivre combien de temps leur utilisateur existe, calculer le montant des ressources en fonction du taux qu'ils obtiennent, et soustraire le nombre de ressources qu'ils ont dépensé au total. Cela va être un peu un problème si le taux ne peut jamais changer, cependant, donc si vous utilisez cette solution, vous êtes un peu coincé avec le taux que vous choisissez à moins que vous réécrivez la manipulation entièrement (par exemple celui ci-dessous) .

Si elle varie la rapidité avec laquelle les gens peuvent obtenir des ressources, vous aurez besoin de mettre à jour les données périodiquement. Une tâche cron / tâche planifiée fonctionnerait bien pour faire ce que chacun soit mis à jour, mais dans certaines situations, il pourrait être préférable de mesurer simplement combien de temps il a été depuis que vous avez mis à jour les ressources de chaque utilisateur, puis les mettre à jour à chaque chargement de page qu'ils font alors connecté en multipliant le temps qu'ils ont été loin par le taux auquel ils gagnent des ressources - de cette façon, vous évitez la mise à jour jusqu'à ce que vous avez réellement besoin de la nouvelle valeur

.

Autres conseils

Pour une Travian comme la gestion des ressources dont vous avez besoin de garder une trace lorsque vous les ressources mis à jour des utilisateurs pour la dernière fois. Si vous lisez les valeurs des ressources (pour rafraîchir la page ou quelque chose), vous devez ajouter le montant des ressources acquises depuis la « dernière mise à jour le temps » (selon la quantité de champs de ressources et BONI l'utilisateur obtient) et d'envoyer cette valeur le navigateur. Vous pouvez également la laisser script de navigateur calculer ces montants.

Vous pourriez envisager la mise en cache tous les montants des ressources en quelque sorte, puisque ces valeurs sont nécessaires beaucoup , l'amélioration de la communication avec la base de données.

Si un utilisateur se termine la construction d'un champ de ressources, utilise le marché, construit une structure, etc., vous devez mettre à jour la quantité de ressources (et la « date de la dernière mise à jour »), parce que vous ne pouvez pas garder une trace sur ce genre d'événements simplement .

En calculant les ressources de la charge de base de données est réduite, puisque vous n'avez pas besoin d'écrire les nouvelles valeurs à chaque fois que l'utilisateur actualise la page du navigateur. Il est également plus précis puisque vous avez moins d'erreurs d'arrondi.

Pour conserver les ressources de plus en plus entre les pages que vous avez besoin d'une méthode rafraichit comme Frank agriculteur décrit. Il suffit de intégrer le montant des ressources et la « fréquence de gain » dans certains javascript et augmenter la quantité de ressources chaque « fréquence de gain » par un.

Vous pouvez également calculer les ressources à chaque fois une page ou le javascript demande. Vous auriez besoin de stocker la dernière fois mis à jour.

Il peut être un ancien poste mais il vient tout de suite dans Google voici donc une autre option qui est de savoir comment le jeu je développe le fait.

J'utilise un JavaScript côté client qui utilise une prise flash pour obtenir des mises à jour en direct à partir d'un serveur de jeu dédié en cours d'exécution sur l'hôte.

J'utilise le kit xmlsocket de http://devpro.it/xmlsocket/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top