WOW SOD : Blizzard répond sur les problèmes de layer et l’Événement de la Lune de Sang

Loading

Article de Kami

WOW SOD : Blizzard répond sur les problèmes de layer et l’Événement de la Lune de Sang

Yo la guilde ! Le développeur Blizzard Tom Ellis a partagé des informations intéressantes sur Twitter concernant l’histoire du Sharding, du Layering et comment les problèmes de layering sont en cours de résolution. De nombreux joueurs ont partagé des expériences négatives avec le layering pendant l’événement Blood Moon à Stranglethorn Vale lors de la Saison de Découverte, espérons qu’une solution sera bientôt mise en place.

Résumé du texte

Tom Ellis, développeur chez Blizzard, a partagé des détails sur Twitter concernant les problèmes liés au sharding et au layering, notamment durant l’événement Blood Moon à Stranglethorn Vale dans la Saison de Découverte. Il explique que les joueurs ont rencontré des problèmes avec le layering, mais qu’une solution est en cours de développement.

Il a introduit le concept de sharding utilisé depuis l’extension Warlords of Draenor, permettant de gérer plusieurs copies d’une même zone pour réduire la surcharge sur les serveurs. Cependant, cette technologie a rendu le jeu moins cohésif en séparant les joueurs en différentes instances de la même zone.

Pour Classic WoW, le sharding n’était pas une option en raison du désir de rester fidèle à l’expérience originale. À la place, Blizzard a introduit le layering, une version améliorée du sharding, pour gérer la population de joueurs sans compromettre l’intégrité du jeu. Cependant, cela a créé des défis, notamment en termes de regroupement de joueurs et d’interactions PvP, car les joueurs pouvaient se retrouver séparés ou sur des layers différents.

Ellis a également abordé les problèmes spécifiques rencontrés lors de l’événement Blood Moon, où le layering a entraîné des problèmes de lag, des difficultés à former des groupes et des séparations de joueurs en plein combat. Des ajustements sont en cours pour améliorer l’expérience, notamment en optimisant le nombre de joueurs par zone et en assurant que les groupes ne soient pas séparés lors des changements de layer.

Le post réddit de Tom

Tom Ellis a dit :

Lien Attention, il n’y a pas d’annonce de changements dans ce texte, c’est juste des infos intéressantes si vous aimez ce genre de choses.

Donc, dans ce que nous appelons la « Mainline » (jeu moderne, dernière extension ou encore retail), nous utilisons une technologie appelée Sharding depuis Warlord of Draenor. Il fut un temps, un royaume exécutait une copie de chaque zone localement sur son propre matériel, si vous couriez après quelqu’un et qu’il traversait dans une autre zone, vous le suiviez, tout fonctionnait au même endroit, vous pouviez attirer des monstres à travers les zones, les quêtes d’escorte avaient des PNJ se déplaçant à travers les limites des zones.

Problème, à mesure que le matériel s’améliorait et que des améliorations de performance étaient réalisées, extension après extension, nous augmentions le plafond du nombre de joueurs connectés simultanément. Si tout le monde veut jouer sur le serveur « Tich », et que nous avons la capacité technique de réduire les temps d’attente, pourquoi pas ? Ah, mais le royaume n’exécutait toujours qu’une seule copie du monde, finalement le royaume a tellement de personnes dessus que si même un petit pourcentage d’entre eux se rassemble au même endroit, cela va être bien plus que ce que le cœur de CPU qui exécute cette zone peut gérer, voici venir le lag, vous pouvez multithreader à souhait, finalement vous allez avoir un goulot d’étranglement sur un seul thread qui limitera ce que vous pouvez faire.

Tout cela est devenu critique dans Warlords of Draenor lorsque, face à un lancement très réussi, les zones de départ de WoD étaient complètement incapables de gérer la charge qu’elles subissaient. Le regretté @kurtismcc (pas mort, juste parti de Blizzard…) a travaillé jour et nuit pendant trois jours (nous ne cautionnons plus ce genre de comportement !) et a créé la première version du sharding, cette nouvelle technologie nous permettait d’exécuter plusieurs copies du monde et de répartir les gens entre elles. Enfin, nous pouvions exécuter plusieurs copies de Draenor et gérer la charge entre elles.

Avec Legion, cette technologie est devenue une fonctionnalité à part entière et chaque zone individuelle pouvait désormais exécuter un nombre illimité de copies, une fois un seuil de joueurs dans la zone atteint, nous lancions une autre copie, à répéter au besoin. Cela a rendu le jeu moins cohésif, mais cela signifiait que le plafond du royaume et la capacité de la zone étaient désormais totalement déconnectés, cela nous a également donné la possibilité d’avoir des valeurs spécifiques pour des zones spécifiques (toutes les zones ne sont pas égales en termes de coût CPU).

Bons moments. Maintenant, avec l’arrivée de Classic, nous avons à nouveau des problèmes.

Le lancement de Classic visait fortement le #NoChanges, ils voulaient que le jeu se sente aussi identique que possible au lancement original. Le Sharding était clairement exclu, mais il y avait aussi la forte croyance que le lancement allait être important (mais pas aussi important qu’il s’est avéré 😉 ) et que l’intérêt diminuerait assez rapidement à mesure que les gens obtenaient leur dose de nostalgie et passaient à autre chose. Dans ce monde, nous ne voulions pas avoir à lancer des centaines de royaumes avec les très petits plafonds de royaume que nous utilisions auparavant et ensuite avoir beaucoup de royaumes morts un mois plus tard. Nous devions donc trouver un moyen d’utiliser des plafonds de royaume de taille moderne mais sans écraser les zones avec les joueurs. Il y avait également deux autres problèmes techniques notables avec le Sharding qui devaient être résolus pour soutenir le comportement de Classic, les monstres ne peuvent pas se déplacer à travers les limites des zones dans un monde Shardé, chaque shard (copie d’une zone) peut fonctionner sur des centres de données complètement différents, donc bien que techniquement solvable, c’est très coûteux et compliqué d’essayer de faire fonctionner cela et enfin dans les situations PvP, il était très souhaité que traverser une limite de zone ne soit pas une échappatoire, les deux personnes devraient continuer à se poursuivre dans la nouvelle zone et dans un monde Shardé, elles pourraient se retrouver sur différents shards de destination.

Omar, une légende, a pris le sharding et a commencé à assembler les shards ensemble dans quelque chose qui est devenu connu sous le nom de Layers. Oui, un Layer est en fait juste du sharding avec beaucoup de ruban adhésif. En collant ces shards ensemble, il est devenu possible de faire circuler des messages et de gérer les déplacements des monstres entre les zones, les joueurs étaient assignés à un Layer spécifique donc si deux personnes étaient à Westfall et couraient vers Duskwood, ils resteraient sur la même couche et finiraient donc dans la même copie de Duskwood l’un que l’autre. Hourra, grand succès ! Cette technologie était nécessaire pour avoir une chance de gérer l’ouverture de la porte d’AQ, eugh, frisson. C’est toute une autre histoire.

Tout au long du lancement original de Classic, nous avons progressivement réduit le nombre maximum de layers car à l’origine nous avions promis que les Layers étaient temporaires, mais (mal)heureusement vous n’avez pas arrêté de jouer à Classic, ce n’était pas le feu de paille que certains avaient prédit. Vous avez vraiment, vraiment aimé Classic. Les serveurs avaient encore des tonnes de joueurs, donc tenir cette promesse était difficile et ce n’est que vers la toute fin de Classic que nous avons pu exécuter en single-layer, et même là, c’était un Layer très épicé.

À partir de TBC, nous avons dû embrasser le layering comme une chose permanente, les royaumes étaient tout simplement trop grands et la demande était trop élevée pour envisager de revenir à un seul layer.

Maintenant, souvenez-vous à quoi le Layering était destiné, essayer de faire une copie semi-permanente du monde dans laquelle vous vivriez pendant la durée de cette semaine ? Eh bien, les gens ne jouaient pas au jeu de cette manière. L’Asmonlayer est né, le meta-gaming signifiait que si l’Alliance bloquait Blackrock sur la couche 1, alors l’Horde essaierait d’aller sur la couche 2 à la place. Le jeu a évolué autour de l’existence des Layers et alors que les Layers étaient autrefois imaginés comme étant largement invisibles au jeu quotidien, ils sont devenus très présents dans la stratégie du jeu de Classic.

Ok, histoire terminée, qu’est-ce qui se passe maintenant et pourquoi le Layering est-il soudainement un sujet brûlant dans SoD ?

Le Layering est plus rigide que le Sharding. Nous créons dynamiquement des layers en fonction de la charge, et historiquement nous n’avons pas fusionné les layers lorsque la charge diminuait, il était important à une époque que le monde se sente plein aux heures de pointe et vide hors pointe, comme c’était le cas à l’époque. Mais, comme beaucoup de nos premières hypothèses, cela ne correspondait pas à ce que les gens voulaient vraiment. Ils voulaient voir d’autres personnes (choquant dans un MMO je sais) ils voulaient pouvoir former des groupes aléatoires avec des étrangers, ils voulaient assez de personnes pour que le monde se sente peuplé quelle que soit l’heure. Avec SoD, nous avons pour la première fois activé la technologie qui fusionne les layers à mesure que la charge diminue afin d’essayer de garder chaque layer significativement peuplé, ce changement a été principalement réussi, il a certains comportements que nous aimerions changer (vous déplacer plusieurs fois, potentiellement diviser des groupes, etc.). Mais en conséquence, vous vous voyez maintenant « layerer » plus souvent, normalement c’était une chose facultative, si vous rejoigniez un groupe avec quelqu’un sur un autre layer, vous vous attendiez à bouger, maintenant pour la première fois dans Classic vous pourriez être déplacé aléatoirement sans avertissement.

Le plus gros problème auquel nous nous heurtons en ce moment est que certaines hypothèses de code précoce pour le layering posent maintenant de très gros problèmes, toutes les zones d’un layer ont le même nombre de joueurs qui peuvent être dans la zone. Nous ne pouvons pas dire par exemple, 500 personnes à Ashenvale, 1000 personnes à Orgrimmar, elles utilisent toutes la même valeur. C’est un cauchemar lorsque les zones se comportent très différemment en fonction de ce que les joueurs font dans cette zone (l’inactivité est moins coûteuse en CPU qu’une énorme bataille PvP). Le Layering est également très coûteux d’un point de vue matériel, rappelez-vous si tout le serveur va à STV pendant Bloodmoon, nous lançons entièrement des layers pour gérer l’excès de STV, donc nous pouvons exécuter 16 copies vides de chaque autre zone juste parce que nous avons besoin de 16 STV, dégoûtant. Il y a aussi une foule de fonctionnalités que les zones ne peuvent pas avoir dans un monde Layered que le Sharding Mainline peut faire, le mainline peut faire des zones Warmode qui équilibrent la faction 50/50 par exemple, et nous pouvons avoir différents objectifs pour la population basée sur PvE vs PvP.

Donc en ce moment, le PvP mondial et le layering posent problème et sont difficiles à équilibrer. Comme toujours, nous travaillons dessus et de bonnes choses viendront. Lundi, nous allons plonger dans les rapports de personnes se séparant alors qu’elles étaient déjà sur un Layer ensemble (ce n’est pas prévu, le layering devrait se produire uniquement lors des changements de groupe) et l’équipe Classic a déjà mentionné qu’elle travaillait sur un changement pour garder les groupes ensemble en cas de changement de layer dû à une charge excessive.

Le bébé vient de se réveiller donc je vais arrêter de bavarder ici et retourner à #DadThings, bon dimanche ! Tom Ellis a dit : Lien Layering Partie 2 : Conflit Design & Ingénierie !

Titre dramatique, pas de conflit réel ici. Alors, quel est le problème avec l’augmentation des grognements autour du layering dans la Saison de Découverte. Parce que nous n’avons réellement rien changé, Classic, TBC et Wrath ont tous utilisé la même technologie.

L’équipe Classic essaie d’ajouter du contenu à Classic qui « semble » appartenir à Classic. L’une de ces choses est le PvP mondial. Tarren Mill contre Southshore par exemple est iconique, il a passé une grande partie de Vanilla à être effectivement un champ de bataille PvP extérieur permanent. Ainsi, ils ont créé l’événement Ashenvale, et maintenant l’événement STV Bloodmoon pour essayer d’ajouter un peu plus de piquant et de carotte à ce comportement, globalement quand cela fonctionne, les gens apprécient, bonnes choses. Mais pourquoi cela a-t-il été si problématique d’un point de vue layering ?

Trois problèmes auxquels les joueurs sont confrontés :

  1. Lag.
  2. Incapacité à se regrouper sur la même couche.
  3. Être retiré d’une couche sur laquelle vous étiez en plein combat.

Abordons chacun de ces points, commençons par le lag. Le lag dont nous parlons ici est un lag dans la simulation elle-même, c’est-à-dire que vous appuyez sur des boutons mais le jeu met beaucoup de temps à reconnaître ces pressions. Ce lag est causé principalement par un manque de CPU disponible, il y a quelques threads uniques qui ne peuvent fonctionner que sur un seul cœur et si ce cœur est à 100%, il ne peut pas aller plus vite, s’il y a plus de travail qu’il ne peut en gérer en un tick de serveur, ce tick normalement de 50ms va prendre 500ms et vous allez commencer à remarquer des retards sur les choses.

Toutes sortes de choses contribuent à ce lag, les joueurs se déplaçant, les joueurs lançant des capacités, les monstres apparaissant, etc., tout cela prend du temps CPU à calculer, la principale chose que nous pouvons faire pour contrôler le lag est généralement d’équilibrer le nombre de joueurs dans une zone parce que les joueurs sont de loin la chose la plus coûteuse pour le serveur à gérer. La pire chose pour le serveur est beaucoup de joueurs les uns sur les autres en train de se battre, parce que alors chaque Explosion Arcanique doit être calculée contre des centaines de joueurs, sont-ils en ligne de vue, ont-ils des résistances, des boucliers, combien de dégâts prennent-ils, sont-ils à portée de l’AoE… tout ce que le serveur doit comprendre.

Donc, se battre en PvE en groupe est coûteux, le PvP est vraiment coûteux. Mais nous venons de créer du contenu qui fait exactement la chose que le serveur gère le pire ! Argh ! Ce n’est pas un échec du design, Blizzard n’est pas dirigé par l’ingénierie en ce qui concerne le gameplay, en général, c’est le travail de l’ingénierie de permettre au Design de faire tout ce qui rend le jeu le plus amusant (il y a des limites bien sûr, les ressources ne sont pas infinies). Donc, lorsque Ashenvale a commencé à rencontrer des problèmes de lag, le premier recours a été de réduire les objectifs de joueurs pour les zones (rappelez-vous dans le Layering, les zones partagent toutes le même plafond, donc cela signifiait que nous avions moins de joueurs dans toutes les zones). Moins de joueurs, moins de travail pour le serveur, moins de lag. Tout au long de la phase 1, nous avons pu affiner ces nombres pour en trouver un qui permettait d’avoir autant de joueurs que possible dans la zone sans qu’elle s’effondre (un peu de lag dans les combats massifs en PvP est honnêtement attendu car les joueurs veulent voir la mer d’ennemis).

Bon, les gens ne parviennent pas à se regrouper ensemble et lors de la formation d’un raid, les gens sont séparés comme des fous dans différentes couches, pourquoi ? Le système de layer a quelques valeurs, l’une de ces valeurs est le nombre « Cible » de personnes que nous voulons dans une zone donnée, une autre est le nombre « Max » que nous voulons dans une zone. Rappelez-vous, lorsque vous vous connectez pour la première fois dans une semaine, vous êtes assigné à une couche spécifique, c’est votre couche pour la semaine. Lorsque vous vous regroupez, vous pouvez passer à une autre couche mais en dehors de ce groupe, vous devriez revenir à votre couche assignée à l’origine. Une fois qu’une zone atteint sa valeur « Cible », nous commençons à ignorer cette réservation de couche, essentiellement si vous étiez assigné à la couche 1 pour la semaine et que vous voyagez à STV et que le jeu trouve que la couche 1 est au-dessus de sa valeur Cible, nous vous mettrons plutôt sur un STV moins peuplé (et couche, puisque zones=couches dans Classic). Cela peut être la première façon pour laquelle vous avez du mal à vous regrouper avec des amis.

Mais, vous êtes malin, alors vous formez un groupe ou un raid avec la personne avec laquelle vous essayez de jouer. À ce moment-là, nous ignorons la valeur Cible pour la zone parce que vous voulez vraiment jouer ensemble. Vous vous retrouvez tous les deux sur la même Couche, hourra !

Tout le monde fait la même chose. Uh-uh, maintenant nous avons beaucoup de gens dans le même STV, nous allons commencer à laguer si nous ne pouvons pas garder la population sous contrôle, mais tout le monde continue d’attirer plus de gens via des groupes. Une nouvelle valeur prend effet ici, « Max ». Lorsque nous dépassons la valeur Max pour une zone, nous nous fichons de savoir si vous avez une réservation de couche, et nous nous fichons de savoir si vous êtes dans un groupe avec quelqu’un. La copie de cette zone est pleine, nous ne pouvons pas continuer à envoyer des gens là-bas ou elle va s’effondrer.

C’est l’un des gros problèmes auxquels vous êtes confrontés en ce moment à STV. Puisque tout le monde forme des groupes de 5 personnes et qu’en général une personne arrive avant les autres, cela se heurte à la valeur Max pour la zone et n’autorise pas le reste de votre groupe à venir dans la même copie de la zone. Pensez-y, si la zone peut gérer 500 personnes, et les autorise toutes à entrer puis chacune invite 4 autres personnes, ah zut, nous allons planter. Donc, nous devons avoir une limite stricte quelque part.

Être changé de couche de manière inattendue après que vous soyez tous parvenus à vous regrouper. C’est le premier que je considérerais comme un bug et non juste une mauvaise expérience utilisateur (un peu de mauvaise UX lorsque l’alternative est la mort du serveur est OK). Basé sur ce que nous savons actuellement, si 5 personnes sont toutes ensemble dans la zone dans un groupe, elles ne devraient pas être séparées après ce point, mais les gens rapportent juste cela, donc c’est l’un des points que nous devons examiner et comprendre ce qui se passe. Maintenant, la bonne nouvelle est que Classic travaille déjà sur un changement qui gardera les groupes ensemble (donc même si vous changez de couches, vous tous changez de couches ensemble) ce qui atténuera ce problème mais il y a toujours un comportement ici qui n’est pas attendu que nous devons mieux comprendre.

Voilà, c’est suffisant pour une plongée profonde un dimanche. Le TL;DR ? Les groupes sont difficiles pour le système de layering à gérer, et une fois qu’une zone est pleine, l’expérience utilisateur à ce moment est grossière. Comme l’équipe Classic l’a déjà mentionné, des changements arrivent pour aider à améliorer cela, et de mon côté, j’ai réfléchi aux valeurs Cible & Max pour essayer de trouver le juste milieu entre le Lag et les Groupes.

Comme toujours, si vous trouvez ce genre de chose fascinant, envisagez une carrière en Design ou en Ingénierie ! Les jeux sont amusants et des bêtes incroyablement complexes à travailler mais très gratifiantes.


Tuto comment utiliser son twitch prime.

Trouve des groupes avec qui jouer sur notre discord !

Ou plus simplement pour faire avancer le site  Kami-labs.fr abonne toi à ma chaine YouTube ! Merci <3

youtube kami

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *