2014-07-17 3 views
-1

Je me demande, quand vous voulez faire un jeu basé sur PHP, qui nécessite que le joueur attende quelque chose, par exemple: J'ai payé 100 pièces d'or à explorer, et toutes les 5 minutes je recevrai du butin. L'exploration se terminera dans 30 minutes par exemple. Je veux savoir, qui est le meilleur et pourquoi. Voici les options:Jeux basés sur PHP

  1. garder une trace de temps à partir de la commande d'exploration émis, puis à chaque fois que l'un joueur en particulier explorer ouvrir la page, tout calculer et afficher le résultat, puis le conserver dans la base de données. Effectuez un travail cron pour calculer l'exploration de chaque lecteur en cours d'exploration toutes les 5 minutes et mettez-le à jour dans la base de données.

  2. Faire une tâche cron toutes les 30 minutes pour calculer et mettre à jour tout pour chaque joueur, mais aussi permettre PLAYER spécifique à mettre à jour tout comme l'option 1.

option 3 est essentiellement combinaison des options 1 et 2 . Merci pour l'aide. Je ne suis pas sûr de la question de la performance, donc j'ai besoin de savoir des gens qui ont déjà de l'expérience dans ce domaine.

+0

Cela dépend beaucoup de ce que le jeu est censé faire d'autre. Si le joueur reçoit un email toutes les 5 minutes sur le butin qu'il a gagné, vous avez évidemment besoin d'une sorte de mise à jour régulière. Si les actions du joueur peuvent interagir les unes avec les autres, cela peut compliquer encore plus les choses. Vous êtes certainement sur la bonne voie en stockant les données d'une manière qui vous permet de calculer le nouvel état du jeu chaque fois que cela est nécessaire. Au-delà de cela, il est impossible de dire quand exactement vous avez besoin de rafraîchir votre état pour que votre jeu particulier fonctionne. – deceze

Répondre

0

Ce ne sont que quelques avis personnels, peut-être pas le meilleur choix. 2) est plus d'une approche générale pour le jeu multijoueur qui a une interaction avec le joueur, mais il met une pression constante sur le serveur, qui semble être trop tuer car je doute sérieusement que votre jeu aurait une interaction complexe entre les joueurs.

1) est probablement le chemin à parcourir à moins que votre calcul ne soit très complexe et longue. L'inconvénient potentiel est que vous aurez probablement du mal à gérer de nombreuses requêtes simultanées à mettre à jour. Mais d'après ce que vous décrivez, je ne pense pas que cela arrivera.

3) Ceci est difficile à commenter car je ne sais pas si votre temps de calcul dépend du temps écoulé depuis la dernière mise à jour. Si votre calcul est indépendant du temps, alors c'est une méthode horrible car vous passez du temps à mettre à jour des données dont personne ne pourrait avoir besoin ET vous êtes également ouvert au pic de trafic.

+0

Donc je suppose que je devrais m'en tenir à la 1ère méthode et calculer seulement tout pour un joueur quand ce joueur vérifie la page? – Vauvalon

+0

euh ... Je suppose que vous pourriez dire ça? Ma réponse était surtout de souligner quelques choses que je remarque en fonction de votre description. Vous devriez essayer d'analyser votre système lorsque vous le concevez et voir lequel est le meilleur pour vous. Je ne peux vraiment pas donner une suggestion exacte à moins de tout savoir sur votre système. Dans l'ensemble, je pense que [1] est le moyen le plus simple pour vous. –

Questions connexes