FR EN ES PT
Naviguer dans les forums 
Trackers Ankama

[Twitch] Résumé : live « fusion et actualités dév » - 03/11/2020

Par [Ankama]WAKFU - COMMUNITY MANAGER - 03 Novembre 2020 - 17:00:00
AnkaTracker

Nous avons fait un live pour échanger avec vous sur la fusion des serveurs et quelques projets sur lesquels l’équipe dév travaille.

Début du live

Débrief sur la fusion

Avant de commencer avec le résumé sur la partie du live sur la fusion, n’hésitez pas à consulter notre thread sur les réseaux sociaux à ce propos : cliquez ici.

Pour rappel, nous avions déjà effectué des « fusions » (Amara, serveurs chinois, etc.). Pour autant, ces « fusions » étaient simplement un import basique de personnages. Depuis, le jeu a beaucoup évolué et ce n’était plus aussi simple.

Dans un premier temps, Eneval et Enio ont réfléchi à la meilleure manière de procéder pour fusionner les serveurs, ainsi qu’estimé le temps de production d’un tel outil de fusion (qui deviendra alors le Fusionator). Ce travail impliquait notamment de réfléchir point par point à tous les types de données sauvegardées du jeu : peut-on les transférer tel quel ? Doit-on faire des opérations dessus ?
  • Par exemple, dans le cas des récompenses (Shift + R en jeu), on stocke des ID de personnages pour les CDB par exemple. L’ID du personnage changeant pendant la fusion (pour éviter les collisions entre serveurs), il faut le remplacer par le nouveau ; un ensemble de récompenses à la fois, personnage par personnage.
  • L’ID de guilde change aussi. Il faut donc changer l’ID en adéquation au niveau du personnage, des bonus, des informations de HM, des rangs de guilde, etc.
  • Autre problématique : lors de la mise à jour 1.67, nous avions effectué des modifications sur la mécanique des HM car nous ne pouvions pas garder autant d’instance ouvertes, couplé au rafraichissement constant de l’écosystème en leur sein. Nous souhaitions par ailleurs aussi freiner les abus de certaines mécaniques. Les HM étaient au nombre de 150 par serveur, mais on fusionnait beaucoup plus de serveurs.

Le but était aussi d’optimiser le temps de fusion afin de ne pas avoir à couper les serveurs plusieurs semaines lors de l’opération.

Toutes ces problématiques et réflexions ont amené à la création du Fusionator, un outil permettant de configurer en quelques lignes l’exécution de millions de tâches en parallèle de la manière la plus optimisée et fluide possible. Cela a pris environ 3 mois pour arriver à un outil presque parfait, sans compter les autres mois en fil rouge pour toutes les tâches de migration plus individuelles (personnages, sacs de personnages, HS de personnages, guildes, HM, HDV, etc.) – au total, une cinquantaine de tâches.

Parmi les problématiques rencontrées, les compagnons ont longtemps été un souci. Les compagnons, dans un premier temps, utilisaient un serveur de récompenses (le même que celui en ligne) pour redonner les objets en trop. Le problème est que le serveur en question avait un peu de mal à suivre. 
À côté de ça, on explosait les bases de données « source » de fusion en termes de performance à cause du nombre de requêtes dessus et de leur lenteur, sans oublier les opérations derrière pour la conversion. 
Il a fallu modifier la migration pour utiliser les onglets de coffre de compte (et les injecter directement dans la base de destination) sans passer par le serveur de « coffre de compte » du serveur, ainsi qu’optimiser toutes les requêtes et les opérations de traitement 

En parallèle, tout du long, nous faisions nos propres tests et nos validations des migrations cas par cas. Mais au bout d'un moment, comme cela devenait compliqué de tout tester nous-mêmes, il a fallu impliquer les testeurs, et on leur a donc créé trois serveurs de test : deux sources, et un de fusion. On leur a aussi donné des « boutons magiques » (eh oui) pour lancer une fusion de leurs deux serveurs source vers leur serveur fusion. 
À partir de là, ils ont procédé à des tests sur l'ensemble des fonctionnalités et cas particuliers concernés par la fusion. Par exemple : si deux compagnons ont strictement la même xp, deux serveurs avec le nombre d'items, personnages au même pseudo, etc. Les testeurs nous on fait des retours sur tout ce qui était problématique - de nombreuses corrections ont suivi. Ils avaient plusieurs centaines de points de validation, et des dizaines de personnages de validation en ligne pour le jour de la fusion 

Dans l’ensemble, il a fallu synchroniser tout un tas d'équipes à Ankama (test, web, support, communication, etc.) pour le jour J afin que tout soit prêt. En parallèle, nous réalisions des tests « échelle réelle » afin de réduire le temps de fusion global au maximum. Au bout de deux semaines, on est passé de plusieurs jours à quelques heures pour l’opération.
Pour la suite, nous n’avions plus qu’à mettre en place le tout et attendre de voir ce que cela donnait.

Concernant l’état des serveurs après la fusion, nous surveillions quotidiennement les indicateurs. Au départ, nous avions peur pour le proxy, mais cela s’est bien passé. En termes de RAM pure et de CPU, les serveurs sont tranquilles.

Actualités dév 

  

Optimisations 


Nous avons noté l’impact plus important des soucis d’optimisation client dès la fusion et nous avons commencé à intensifier notre travail dessus.

Nous avons utilisé jprofiler (un outil pour analyser l’utilisation de la mémoire, du CPU, etc.). De là, nous avons identifié des problèmes « principaux » et des problèmes moins impactant.
Puisque nous souhaitions proposer une passe d’optimisation avant la mise à jour de Décembre, il a fallu rapidement estimer et planifier des corrections pour les problèmes les plus gourmands en ressources :
  • Le thread réseau consommait bien trop à notre goût (gain de plus de 40% de sa consommation).
  • Certains logs arrivant beaucoup pouvaient causer des ralentissements du disque et donc du jeu - difficile à estimer, mais coûteux.
  • Les traductions pesaient trop lourd dans le client et nous devons les charger entièrement d'un coup (réduction de moitié), en plus de subir un léger « leak » entraînant une surconsommation permanente mais non croissante.
  • Les déplacements des autres personnages sont calculés par le client afin de soulager le réseau et d'éviter des problèmes notamment liés à la latence entre le lancement du déplacement par l'autre, et sa réception par le client. Le pathfinding étant très gourmand par nature, il était aussi effectué d'une manière pouvant causer des ralentissements d'affichage. Le gain estimé, pour une trentaine de personnages aux alentours, équivaut à environ 10% du CPU dédié à l'affichage. Mais on n'a pas pu le faire à cause des bugs.
  • Certaines données sont gourmandes à charger au démarrage du client et en jeu. Nous avons cherché des solutions pour les réduire, toutefois, les deadlines pour proposer cela avant Décembre nous ont rattrapé, et nous n'avons pas pu aller aussi profondément que voulu à ce propos.

Tous ces points devraient réduire la consommation en RAM, les écrans noirs, limiter les micro-freezes du client, etc.

Résumé des optimisations en cours :
  • Modifications sur la façon dont sont traités les messages réseau du client afin de soulager le thread réseau ;
  • Filtrage des traductions afin d'économiser de la RAM (~30Mo de RAM) ;
  • Correction d'un log arrivant très régulièrement afin de soulager le disque et le traitement par le client de certaines choses ;
  • Modification de la mécanique de chargement des textures afin de soulager le thread graphique (peut grandement soulager le client notamment en termes de micro-freezes).

Ces optimisations sont par ailleurs disponibles avec la mise à jour du client Bêta. Vous pouvez donc d’ores et déjà les tester et nous faire vos retours. Plus d’informations à ce propos : cliquez ici.
  

Chat global 


Nous comptons développer des chats globaux afin de permettre aux joueurs de communiquer avec l’intégralité des joueurs présents.
Nous travaillons sur la mise en place de deux chats globaux : un dédié au recrutement, un autre dédié au commerce. Ces chats seront par ailleurs restreints afin d’éviter le flood par exemple.
  

Sélection des personnages


Nous souhaiterions apporter des modifications à l’interface de sélection des personnages.

À première vue, ces modifications se présenteraient sous forme « mail » (comme disent les dévs). En résumé, la liste des personnages et leurs détails (pseudo, niveau, nation etc.) se trouverait sur la gauche, et l’aperçu du personnage se trouverait sur la droite.
Pour le moment, nous n’avons pas de prototype à montrer, mais nous comptons bien redynamiser l’interface de sélection des personnages.

Giveaway

Nous avons fait gagner un costume Twitch lors du live.

FAQ

Nous avons répondu aux questions des joueurs en live.

Fin du live

N’hésitez pas à consulter la rediffusion du live en compagnie d’Enio et Zorel : cliquez ici.

Et rendez-vous jeudi 05/11 à 17h pour parler des refontes des classes smile

Bon jeu à tous !
Première intervention Ankama

En réponse à  Rotelia

Salut,

Il est bien question de remplacer les actuels "Commerce" et "Recrutement" par des canaux globaux.

Ceux actuels ("locaux") ont vocation à disparaître au profit des globaux. 

[Enio].

Voir le message dans son contexte
Réactions 10
Score : 40

Thank you for the summary! As much as I would like to watch AnkamaLive, I don't speak French. Google translated this page for me, and I'm excited for the optimisations you're planning to make the game run more smoothly!

3 0
Score : 9685

Les deux chats globaux. C'est un OUI de ma part.

4 0
Score : 12848

Si j'ai bien compris les chats globaux sont lié surtout au recrutement et au commerce, une suppression des canaux recrutement et commerce déjà existant est il prévu ?

J'en profite j'ai une autre question zorel a évoqué le fait que le live serait aussi en podcast, mais il s'agit que ce soit dispo après le live ou pendant, une version audio d'un live twitch en somme.

Et deuxième question quelqu'un aurait un lien vers les podcast le seul trouvé mène vers un podcast d'il y a 7 ans lol.

0 0
Score : 24991
À priori non. Ça ne serait pas la même catégorie de chats. Ils parlent de contraintes. Si on est limités à 1 message sur ce genre de canal toutes les 10 minutes, les canaux classiques ne perdent pas de leur utilité.
0 0
Score : 1660

C'est super intéressant des discussions comme ça, on apprend tellement de détail ! A refaire si possible kiss

0 0
Score : 76

Ah bah enfin les chat globaux smile Ca c'est le genre de truc qui attirera d'avantage les joueurs sur le jeu smile

1 -2