Gestion des événements dynamiques:

Quelques petites réflexions sur le sujet. Je vais commencer par gérer des événements associés à une zone. Il est évident que plus tard, certaines actions (causes) généreront des événements inter zone. Mais ceci est complexe, et lourd à mettre en place. Etant adepte de la théorie des petits pas, je commence par quelque chose que je vais pouvoir maîtriser et tester.

Le premier événement décrit débutera à l'arrivée d'un joueur dans la zone.

La question sous jacente est comment je décris l'arrivée dans une zone, et comme j'y réagis. J'ai des objets événements qui attendent pour démarrer un critère d'entrée. Pour la compréhesion, j'utiliserai le terme anglais event pour les événements dynamiques, et événements pour des choses qui arrivent dans le jeu. Dans une zone, un certain nombre d'événements seront déclencheurs: -- Arrivée d'un joueur dans la zone -- Destruction d'un NPC en particulier pourrait être déclencheur -- Un timer Chaque event a une condition de déclenchement basé sur un événement du jeu.

En terme de conception informatique, la solution va tourner sur un système d'abonnement. Un objet va contenir une liste d'événement éligible dans certaines localisations, et chaque event, choisira de s'abonner à un événement.

Lorsqu'un événement se produira, l'objet liste événements sera mis à jour, et déclenchera la fonction adéquate de l'event associé. En python, comme dans d'autres langages, il est possible de stocker une référence d'une fonction dans un tableau

ex: tabfunc={} tabfuncidZone1idTriggerNouveauJoueur=evt1.declenche et ensuite de déclencher en faisant: idZone1idTriggerNouveauJoueur() Cela me paraît pertinent pour les MasterEvent (event mâitre duquel découle X événements enfants). Ensuite la gestion du déclenchement des événements fils me paraît plus subtil à mettre en oeuvre. Une phase de réflexion est nécessaire à l'élaboration finale des événements.