Nouvelle gestion des évènements
Bonsoir !
Je suppose que le titre de la news laisse plutôt pensif... En effet, je ne suis pas certain que tout le monde voit d'entrée ce que sont les « évènements »
Si vous affichez la page d'accueil, vous pourrez voir tout en bas une section appelée « Évènements en cours ». Eh bien toutes les lignes qui peuvent y être affichées sont des évènements. Il s'agit donc des attaques, constructions, réparations, espionnages, etc.
Finalement, c'est assez logique.
Eh bien pour que les attaques soient faites ou pour qu'après avoir construit des tanks vous les retrouviez dans votre garage, il y a un système de gestion des évènements qui est en place. Ce système vient de subir un changement radical (c'est même le plus gros changement qu'a subi le jeu depuis sa sortie le 1er juin 2007 !).
Je vais commencer par vous présenter le système tel qu'il était auparavant. Puis vous en saurez plus sur ce qu'il est devenu ce soir. Enfin, j'expliquerais pourquoi avoir opéré un tel changement.
Ainsi, on peut disposer de ce qu'on appelle une « table » qui regroupera tous les évènements en cours. Cette table sera appelée simplement la table des évènements.
L'ancien système était tel qu'à chaque affichage de page, le serveur vérifiait d'abord s'il y avait des évènements terminés dans cette table (en utilisant l'heure de réalisation et en la comparant à l'heure actuelle). Si l'heure de réalisation est passée, alors il faut faire ce qu'indique l'évènement (souvenez-vous dans l'exemple : lancer l'attaque contre moi et donc envoyer les rapports notamment), puis le supprimer de la table des évènements en cours.
Une fois cette vérification terminée, alors le serveur vous affiche votre page que vous attendiez depuis quelques centièmes de secondes (qui peuvent devenir des secondes dans les pires cas).
En fait, pour parer à une attente systématiquement trop longue les évènements ne sont pas traités à chaque affichage mais à condition que certaines contraintes soient réalisées (notamment il y a un temps minimum entre deux vérifications), et heureusement pour le serveur qui gère la table des évènements, vous pouvez me croire
On peut représenter ceci par un schéma qui sera, je l'espère, le plus clair possible (cliquez pour agrandir) :

Là aussi, un petit schéma résume bien ce qui se fait :

(on constate qu'il est bien plus simple que le premier !)
Cependant, ce système est en cours de test, et il n'est pas garantit qu'il puisse rester définitivement. Donc si vous constatez des évènements qui ne se font plus (par exemple : une construction qui reste plus longtemps qu'elle ne devrait), merci de nous le signaler dans le forum prévu pour les bugs.
- ralentissement à l'affichage,
- problème de concurrence : si deux joueurs affichent une page en même temps et vérifient la condition nécessaire à l'exécution des évènements, alors il y a des doubles évènements (typiquement : les doubles attaques),
- la dépendance du système dans les visiteurs : s'il n'y a personne, les évènements ne sont plus réalisés...
Les apports du nouveau système sont donc évidents : il règle tous les problèmes qu'il y avait. En effet, ceux-ci avaient en commun d'être causés par le fait que c'étaient les joueurs qui réalisaient les évènements.
J'espère avoir été assez clair dans mes explications (sinon, n'hésitez pas à demander plus de précisions). On reparlera du principe plus tard. J'ai volontairement évité les détails techniques (sinon la news aurait été environ 10 fois plus longue
).
Bonne soirée, et bon jeu.
!! Attention, news technique !!
Je suppose que le titre de la news laisse plutôt pensif... En effet, je ne suis pas certain que tout le monde voit d'entrée ce que sont les « évènements »

Si vous affichez la page d'accueil, vous pourrez voir tout en bas une section appelée « Évènements en cours ». Eh bien toutes les lignes qui peuvent y être affichées sont des évènements. Il s'agit donc des attaques, constructions, réparations, espionnages, etc.
Finalement, c'est assez logique.
Eh bien pour que les attaques soient faites ou pour qu'après avoir construit des tanks vous les retrouviez dans votre garage, il y a un système de gestion des évènements qui est en place. Ce système vient de subir un changement radical (c'est même le plus gros changement qu'a subi le jeu depuis sa sortie le 1er juin 2007 !).
Je vais commencer par vous présenter le système tel qu'il était auparavant. Puis vous en saurez plus sur ce qu'il est devenu ce soir. Enfin, j'expliquerais pourquoi avoir opéré un tel changement.
L'ancien système
Les évènements, lorsqu'ils sont lancés, sont stockés dans ce qu'on appelle une base de données. Donc si vous lancez une attaque sur moi à 12h00, quelque part est écrit tout ce qui concerne cette attaque. L'information la plus importante, c'est l'heure à laquelle cette attaque doit avoir lieu. En effet, une attaque lancée n'est réellement réalisée que plus tard (30 minutes par exemple).Ainsi, on peut disposer de ce qu'on appelle une « table » qui regroupera tous les évènements en cours. Cette table sera appelée simplement la table des évènements.
L'ancien système était tel qu'à chaque affichage de page, le serveur vérifiait d'abord s'il y avait des évènements terminés dans cette table (en utilisant l'heure de réalisation et en la comparant à l'heure actuelle). Si l'heure de réalisation est passée, alors il faut faire ce qu'indique l'évènement (souvenez-vous dans l'exemple : lancer l'attaque contre moi et donc envoyer les rapports notamment), puis le supprimer de la table des évènements en cours.
Une fois cette vérification terminée, alors le serveur vous affiche votre page que vous attendiez depuis quelques centièmes de secondes (qui peuvent devenir des secondes dans les pires cas).
En fait, pour parer à une attente systématiquement trop longue les évènements ne sont pas traités à chaque affichage mais à condition que certaines contraintes soient réalisées (notamment il y a un temps minimum entre deux vérifications), et heureusement pour le serveur qui gère la table des évènements, vous pouvez me croire

On peut représenter ceci par un schéma qui sera, je l'espère, le plus clair possible (cliquez pour agrandir) :

Le nouveau système
Le nouveau système est différent de l'ancien dans le mode d'exécution des évènements. Leur stockage passe toujours par une table des évènements mais contrairement à ce qui faisait, il n'y a plus de vérification des évènements à l'affichage des pages. C'est en fait un petit programme qui tourne sur le serveur qui s'en charge. Ce programme est en parallèle avec celui qui est chargé de vous renvoyer les pages que vous souhaitez afficher. Ainsi, la gestion des évènements est désormais totalement indépendante des visiteurs, et c'est une très bonne chose comme vous le verrez un peu plus bas !Là aussi, un petit schéma résume bien ce qui se fait :

(on constate qu'il est bien plus simple que le premier !)
Cependant, ce système est en cours de test, et il n'est pas garantit qu'il puisse rester définitivement. Donc si vous constatez des évènements qui ne se font plus (par exemple : une construction qui reste plus longtemps qu'elle ne devrait), merci de nous le signaler dans le forum prévu pour les bugs.
Pourquoi changer et quels sont les apports ?
L'ancien système avait plusieurs défauts :- ralentissement à l'affichage,
- problème de concurrence : si deux joueurs affichent une page en même temps et vérifient la condition nécessaire à l'exécution des évènements, alors il y a des doubles évènements (typiquement : les doubles attaques),
- la dépendance du système dans les visiteurs : s'il n'y a personne, les évènements ne sont plus réalisés...
Les apports du nouveau système sont donc évidents : il règle tous les problèmes qu'il y avait. En effet, ceux-ci avaient en commun d'être causés par le fait que c'étaient les joueurs qui réalisaient les évènements.
J'espère avoir été assez clair dans mes explications (sinon, n'hésitez pas à demander plus de précisions). On reparlera du principe plus tard. J'ai volontairement évité les détails techniques (sinon la news aurait été environ 10 fois plus longue
).Bonne soirée, et bon jeu.
Commentaires (12)