14-02-2011, 10:35 AM
(Modification du message : 15-02-2011, 12:43 AM par Sephi-Chan.)
Bonjour à tous !
Alors comme dis dans ma présentation, j'hésite encore à me lancer dans l'aventure d'un jeu par navigateur, car je suis confronté à un dilemme.
Quelques soit les prétentions du jeu, je voudrais que des scripts travaillent ma base de donnée de manière assez intense.
Admettons que mes joueurs déclenchent des évènements temporisés grâce à des timestamps, et que je gère une "pile" d'évènements dans une table (pour faire simple).
Les solutions :
- Exécuter des scripts lorsque les joueurs se connectent et naviguent...
Avantages :
* Facile à mettre en place
* Suffisant pour certains jeux, ne necessitant pas un rafraichissement trop important des
informations sur la base de donnée.
Inconvénients :
* Très difficile à maintenir... Le code devient vite un bric à brac infâme.
* Moins il y a de joueurs, plus leur navigation sera pollué par l'exécution de ces scripts.
* Ne permet pas d'implanter certains type d'évènements généré par l' "IA" du jeu à des
moments très précis.
- Lancer des exécutions régulières via cron
Avantages :
* Précis et efficace, permet de lancer des scripts de "mise à jour"
* Ne nécessite pas ou peu de précautions ou de programmation supplémentaire
Inconvénients :
* Nécessite un accès aux commandes du serveur, ou un hébergement suffisamment souple.
* Sur des scripts exécuté une seule fois par jour, grosse manipulation de la base de donnée.
* Ne peut pas exécuter de script de manière réactive, délai minimum d'une minute...
- Programmer un Daemon qui tourne en tache de fond sur le serveur
Avantages :
* Exécutions de script "à la demande", et surtout "au besoin". permet de lancer des scripts
de manière réactive en fonction d'évènements PJ ou PNJ sans délai.
* Pas de grosse mise à jour quotidienne, mais un rafraichissement permanent de la base
de donnée.
* Pas de pollution de la navigation des utilisateurs par des scripts opportuniste.
Inconvénients :
* Nécessite un accès poussé au serveur (dédié).
* Nécessite un surplus de programmation.
Voila très globalement mon raisonnement pour dégrossir ma réflexion, et étant donné que le jeu que je désirerais coder (si je m'y lance) serait rythmé par de nombreuses interventions de l'IA et une gestion dynamique des ressources / prix je pense qu'un Daemon serait la solution.
Bien sur, j'avais de prime abord pensé à un Daemon en dur, peu importe le langage (C, C++, java...) mais en me renseignant j'ai trouvé quelques topics suggérant qu'un Daemon php pouvait être tout à fait performant si l'on prenait certaines précautions pour éviter les fuites mémoires.
Je voudrais donc vos suggestions et avis à ce sujet, pensez vous qu'un Daemon en php puisse être une bonne façon d'appréhender un jeu php par navigateur?
Quels en sont les limites d'après vous?
Merci à vous !
Alors comme dis dans ma présentation, j'hésite encore à me lancer dans l'aventure d'un jeu par navigateur, car je suis confronté à un dilemme.
Quelques soit les prétentions du jeu, je voudrais que des scripts travaillent ma base de donnée de manière assez intense.
Admettons que mes joueurs déclenchent des évènements temporisés grâce à des timestamps, et que je gère une "pile" d'évènements dans une table (pour faire simple).
Les solutions :
- Exécuter des scripts lorsque les joueurs se connectent et naviguent...
Avantages :
* Facile à mettre en place
* Suffisant pour certains jeux, ne necessitant pas un rafraichissement trop important des
informations sur la base de donnée.
Inconvénients :
* Très difficile à maintenir... Le code devient vite un bric à brac infâme.
* Moins il y a de joueurs, plus leur navigation sera pollué par l'exécution de ces scripts.
* Ne permet pas d'implanter certains type d'évènements généré par l' "IA" du jeu à des
moments très précis.
- Lancer des exécutions régulières via cron
Avantages :
* Précis et efficace, permet de lancer des scripts de "mise à jour"
* Ne nécessite pas ou peu de précautions ou de programmation supplémentaire
Inconvénients :
* Nécessite un accès aux commandes du serveur, ou un hébergement suffisamment souple.
* Sur des scripts exécuté une seule fois par jour, grosse manipulation de la base de donnée.
* Ne peut pas exécuter de script de manière réactive, délai minimum d'une minute...
- Programmer un Daemon qui tourne en tache de fond sur le serveur
Avantages :
* Exécutions de script "à la demande", et surtout "au besoin". permet de lancer des scripts
de manière réactive en fonction d'évènements PJ ou PNJ sans délai.
* Pas de grosse mise à jour quotidienne, mais un rafraichissement permanent de la base
de donnée.
* Pas de pollution de la navigation des utilisateurs par des scripts opportuniste.
Inconvénients :
* Nécessite un accès poussé au serveur (dédié).
* Nécessite un surplus de programmation.
Voila très globalement mon raisonnement pour dégrossir ma réflexion, et étant donné que le jeu que je désirerais coder (si je m'y lance) serait rythmé par de nombreuses interventions de l'IA et une gestion dynamique des ressources / prix je pense qu'un Daemon serait la solution.
Bien sur, j'avais de prime abord pensé à un Daemon en dur, peu importe le langage (C, C++, java...) mais en me renseignant j'ai trouvé quelques topics suggérant qu'un Daemon php pouvait être tout à fait performant si l'on prenait certaines précautions pour éviter les fuites mémoires.
Je voudrais donc vos suggestions et avis à ce sujet, pensez vous qu'un Daemon en php puisse être une bonne façon d'appréhender un jeu php par navigateur?
Quels en sont les limites d'après vous?
Merci à vous !