Publicité

Defiance – Le Planificateur d’Evènement Dynamique

Toujours dans une optique de transparence bienvenue entre l’équipe de développement du jeu et les joueurs, un de ces développeurs, McSauce, prend la plume (enfin, le clavier) sur le forum officiel afin de nous expliquer comment fonctionne le Planificateur d’Evènement Dynamique, qui permet de gérer l’ordonnancement de tous les événements (retombées d’arche, urgences, assauts, …) dans le monde ouvert et comment il a été modifié pour la grosse mise à jour, Silicon Valley. Il est toujours intéressant d’avoir des informations sur la mécanique interne de notre jeu.

Voici la traduction de son message.

224600_2014-08-01_00006 - Copy

Bonjour tout le monde, je suis un ingénieur travaillant sur Defiance et j’ai participé à la refonte du Planificateur d’Evènement Dynamique arrivant avec l’ajout de la carte Silicon Valley. Nous avons fait quelques changements significatifs sur la façon dont les événements sont choisis et placés, et allons vous donner quelques détails sur leur fonctionnement interne. Ces changements nous donneront un bien meilleur contrôle sur la manière dont sont planifiés ces événements et permettront une apparition plus systématique de quelques événements rares.

Pour commencer, quelques soucis avec l’ancien gestionnaire d'événement que nous voulions corriger :

  • Donner plus de poids à l’apparition aléatoire d'événement dans des zones particulières
    • Avec l’impossibilité de conserver en mémoire les événements passés, nous n’avions aucune possibilité de garantir que tous les événements se produiront.
    • Cela est particulièrement regrettable si vous avez un contrat pour cet événement et qu’il n'apparaît pas.
  • Aucun ordre de priorité pour les gros événements par rapport aux plus petits
    • Avant qu’un événement puisse démarrer, il doit s’assurer que la zone est vide de tout autre événement en cours (voici pourquoi cela produisait des blocages jusqu'ici).
    • Cela signifie que la surface occupée par une retombée d’arche mineure peut empêcher l’apparition d’un événement majeure dans sa zone de collision.
  • Pas de file d’attente
    • Si un événement veut s’exécuter, mais qu’il est bloqué par un autre en cours d’exécution, nous relançons les dés afin de tenter de trouver un événement qui pourra entrer dans la zone.
  • Pas de concept d’apparition minimum/maximum sur la carte
    • Quand nous faisons apparaître un assaut, nous voulons en faire apparaître un second afin de désengorger le premier.

 

Avec le nouveau Planificateur d’Evènement Dynamique, nous nous sommes occupés de ces problèmes :

  • Les types d'événement sont groupés dans des niveaux basés sur leur priorité
    • Les retombées d’arche majeures et les assauts sont dans le haut de la pile, puis ce sont les sièges et les retombées d’arches instanciées majeures, puis les retombées d’arche mineures/retombées d’arche instanciées mineures, et enfin les urgences dans le niveau le plus bas.
    • Chaque groupe de niveau possède un niveau minimum et maximum pour ses apparitions concurrentes.
    • Chaque type d'événements a également un niveau minimum et maximum pour ses apparitions concurrentes.
    • Les événements appartenant aux groupes de niveau inférieurs ne seront pas mis en file d’attente tant que des événements des groupes de niveau supérieurs sont en file d’attente ou en cours d’exécution dans une zone donnée.
    • Les événements appartenant aux groupes de niveau supérieurs attendent que les événements des niveaux inférieurs se terminent et s'enchaînent à la suite.
  • Ordre aléatoire dans les types d'événements, ainsi les événements actuellement rares auront plus de chance d'apparaître
    • Lorsque le planificateur démarre, il réordonne de façon aléatoire les événements d’un type particulier.
    • Les événements sont sélectionnés en partant du premier de la pile, puis le suivant, ainsi de suite.
    • Si nous ne pouvons pas mettre en file d'attente un événement, il est laissé à sa position dans la liste et nous essayons le suivant.
    • Si un événement est mis en file d’attente, il est placé à la fin de la liste ainsi les événements qui le précèdent ont une chance de s’exécuter avant d’être remis en file d’attente.
  • File d’attente
    • Les événements sont placés dans la liste d’attente de leur groupe de niveau lorsqu'ils veulent être ré exécutés.
    • Dès que sa zone d’apparition est libre, l'événement en haut de la file d’attente est exécuté.
    • Si l'événement est bloqué par un événement inoccupé d'un niveau inférieur, il essayera de finir l'événement de niveau inférieur pour qu'il puisse commencer.
    • Un événement ne sera pas mis en file d’attente si un événement d’un groupe de niveau supérieur bloque sa zone d’apparition.

 

Quelques différences que vous pourrez remarquer :

  • Une retombée d’arche peut s'enchaîner avec une autre, plusieurs fois de suite, avant une période d’attente afin que la zone soit libre pour un assaut.
  • Les sièges peuvent apparaître plus souvent et avec un timing moins prévisible.
  • Enfin, il y a bien de nouveau l’assaut au Mont Tam !


Découvrez nos derniers aperçus :




Jeux du moment

>> Liste complète <<