Actualités

Journal des développeurs : Comment ont été réparés les plantages de la version 0.25

Commandants !

L'une des questions les plus fréquemment posées sur Discord et les forums est de savoir ce que nous faisons au sujet des problèmes critiques qui interfèrent sérieusement avec le gameplay - comme les plantages du jeu. Après le déploiement de la mise à jour 0.25, nous avons reçu un grand nombre de rapports concernant des plantages, ce qui a débouché sur une grande enquête et sur des solutions déployées dans les récents correctifs. Dans cet article, nous allons vous en dire plus sur ces problèmes, ainsi que sur le processus qui a mené à leur correction.

scr1

Sur les plantages en général

Les plantages, en général, sont l'un des plus sérieux problèmes que peut rencontrer un jeu, ce qui rend indispensable leur correction. Le problème avec les plantages est, cependant, qu'ils peuvent se produire pour des raisons très variées. Pour identifier les causes, il faut recueillir une grande quantité de données, car ces plantages n'arrivent généralement pas du côté développeur et n'apparaissent pas lors de nos tests internes (si cela avait été le cas, on n'aurait pas sorti la mise à jour). Ces données sont collectées via le système automatisé de rapports de plantage, dont les invites apparaissent lors d'un plantage - il est extrêmement important et essentiel de trouver la solution à ces problèmes.

Les informations collectées à l'aide de ce système se répartissent en plusieurs catégories, chacune étant gérée par une équipe différente. Mais abordons des exemples spécifiques.

img1

Nombre relatif de plantages sur les systèmes 32 bits

img2

Nombre relatif de plantages sur les systèmes 64 bits

Ces graphiques montrent les changements du nombre de plantages sur le client russe entre les deux mises à jour majeures - Caribbean Crisis et Black Sea Incursion - en fonction du type de système d'exploitation du joueur. Remarquez que la quantité de plantages pour les systèmes 32 bits a diminué avec l'introduction de la mise à jour Black Sea Incursion, tandis que le nombre de plantages pour les systèmes 64 bits a augmenté. Les couleurs représentent chaque mise à jour spécifique.

Laissez-nous digresser un peu et parlons d'abord des systèmes 32 bits.

L'optimisation du jeu pour les systèmes 32 bits peut sembler être mineur pour les marchés occidentaux, mais plus on se dirige vers l'Est, plus cela devient pertinent en raison du niveau général du matériel employé. Le problème avec les systèmes 32 bits est, cependant, leur mémoire, qui est limitée à 2 Go. En d'autres termes, si le jeu essaie d'utiliser plus de 2 Go de mémoire, il plantera. En réalité, le plantage se produira beaucoup plus tôt en raison de la fragmentation de la mémoire - même entre 1,5 et 1,6 Go, il n'y a plus assez de mémoire libre pour le jeu.

Une grande majorité des crashs des systèmes 32 bits est liée au manque de mémoire et, pour améliorer la situation, nous travaillons dur pour optimiser le client en réduisant ses besoins en mémoire et l'effet de fragmentation. Dans tous les cas, nous recommandons vivement de passer à un système 64 bits, car les systèmes 32 bits sont intrinsèquement moins stables avec de grosses applications comme Armored Warfare en raison des restrictions susmentionnées. De plus, les constructeurs de matériel arrêtent progressivement de prendre en charge les systèmes 32 bits en général - Nvidia, par exemple, a déjà annoncé l'arrêt de la mise à jour des pilotes pour les systèmes 32 bits.

Mais revenons aux graphiques ci-dessus. Vous pouvez voir que le dernier correctif a fortement réduit le nombre de plantages. Nous continuons de surveiller la situation pour nous assurer que le nombre de plantages ne dépasse pas les limites acceptables.

Correction des plantages

Pour en savoir plus sur les accidents qui ont perturbé le jeu depuis la mise à jour 0.25, nous avons contacté deux développeurs parmi les mieux placés pour nous donner des réponses - le leader de l'équipe Client du jeu, Aleksei Petranovsky, et le programmeur principal des mécaniques de jeu, Marat Radchenko.

Prenons pour modèle une situation où un joueur subit un plantage pendant une bataille, et le jeu envoie le rapport de plantage. Évidemment, ce joueur a envie de repartir au combat aussi rapidement que possible, et relance le client de suite, sans fournir des détails supplémentaires dans la section Commentaires du rapport de plantage. Ce n'est pas grave. La partie la plus importante est de permettre l'envoi du rapport, en appuyant sur le bouton Envoyer dans la fenêtre de rapport d'incident.

Ces rapports ainsi soumis sont ensuite accumulés dans une corbeille virtuelle, et ils sont ensuite triés et envoyés aux différentes équipes. Pour comprendre comment fonctionne le tri, vous devez savoir ce qui suit :

  • Le client appelle plusieurs éléments appelés “fonctions”
  • Quand on recueille un rapport, une liste de ces fonctions appelées est transmise aux développeurs.
  • Selon cette liste, un identifiant qui décrit le problème survenu est généré. À partir de ce moment, tous les problèmes de ce type (avec des interactions de fonctions similaires au moment du crash) reçoivent cet identifiant. Quand le développeur à qui le problème est affecté parcourt les rapports envoyés par les joueurs, il peut les identifier en utilisant cet identifiant. Cela lui permet d'identifier le nombre de ces problèmes qui sont actuellement en cours.

scr3

Ce graphique montre les plantages les plus typiques qui se produisent pour diverses raisons, classés par fréquence d'apparition. Certains d'entre eux sont connectés les uns aux autres (même si les raisons qui les causent sont légèrement différentes) et on peut les séparer en plusieurs groupes :

Le Groupe 1 est constitué des problèmes de plantage 1 et 3 (selon le graphique). Ceux-ci ont été causés par des problèmes de code réseau ancien, qui ont par la suite causé un crash du client. Ces problèmes ont été résolus avec les correctifs les plus récents et ont été pris en charge par l'équipe qui gère les mécaniques de batailles et les systèmes serveurs. Par conséquent, le nombre de plantages sur le serveur actif a été diminué de 30 %.

Le Groupe 2 est constitué des problèmes de plantage 2 (selon le graphique). Le plantage est causé par une situation lors de laquelle DirectX, à un moment, “perd” sa connexion avec le GPU, causant la fermeture du client. Ce plantage peut avoir des raisons multiples – problèmes avec la carte graphique, problèmes de drivers, surchauffe GPU ou problèmes avec le système de rendu du jeu. Nous ne pouvons malheureusement traiter que le dernier cas et, même dans ce cas, trouver une solution à ce type particulier de plantage, en se basant seulement sur les rapports, est très difficile car nous devons trouver un moyen de reproduire le problème de notre côté. La résolution de ce problème est l'une des tâches prioritaires de l'équipe chargée du client.

Le Groupe 3 est constitué des problèmes de plantage 4, 5 et 7 (selon le graphique). Il s'agit des plantages survenant lors du chargement de l'écran de bataille. Lors du chargement d'une bataille, le jeu d'instructions principal est occupé à charger des ressources, des utilisations et des instructions supplémentaires pour mettre à jour l'écran, mais certaines parties du jeu ne s'attendaient pas à être traitées par un jeu d'instructions séparé. Ce problème a été géré par l'équipe Interface Utilisateur, et a été résolu dans le dernier correctif.

Le Groupe 4 est constitué des problèmes de plantage 6 (selon le graphique). Ironiquement, ce plantage est causé par un système utilisé pour surveiller les plantages du jeu (ce système s'appelle Watch Dog). Il surveille les processus du jeu en cours d'exécution et, s'ils ne répondent pas dans un certain laps de temps, il provoque un plantage artificiel et intentionnel. Ces plantages ne sont en fait que les symptômes d'un autre problème, et ne sont pas le problème lui-même – ils sont nécessaires pour relayer l'information sur les composants non-réactifs du jeu, afin que nous puissions l'analyser. Cette non-réactivité peut avoir plusieurs raisons – surcharge processeur, surcharge disque, mémoire insuffisante ou bug du jeu. Ces problèmes sont également gérés par l'équipe chargée du client.

Comme vous pouvez le voir, vos commentaires et vos rapports de plantage nous aident à déterminer quels plantages sont les plus nombreux, et cela nous permet de leur accorder la plus haute priorité. Cela ne signifie pas pour autant que nous ne travaillons pas sur d'autres problèmes - nous effectuons cela parallèlement aux travaux de prévention de plantages mentionnés ci-dessus.

Il est très important de noter que, pour les plantages rares, l'envoi d'un rapport d'accident est ce qu'il y a de plus important - aidez-nous en les envoyant, car cela accélère le processus de réparation. Compter sur les autres joueurs pour envoyer le rapport de plantage est quelque chose qui nous handicape fortement, alors s'il vous plaît, ne vous comportez pas ainsi. Chaque plantage doit être signalé et chaque rapport sera examiné, chaque morceau de données compte.

Bien sûr, vous pouvez également signaler tout problème à nos formidables équipiers du service d'assistance, qui les notent et nous les transmettent dans leurs rapports périodiques.

À bientôt sur le champ de bataille !

Vers le haut

Rejoignez l'action