Matchmaking ennuyeux sans déséquilibre et files d'attente: un guide pratique

Le matchmaking est le composant principal de la plupart des jeux multijoueurs modernes. Une fois qu'un développeur le prend au sérieux, il s'avère que les nouveaux arrivants rencontrent régulièrement des professionnels au combat, et certains joueurs doivent attendre indéfiniment juste pour entrer dans le match. De plus, il est difficile de tester et d'analyser avant le lancement, car vous devez prendre en compte de nombreux facteurs. Comment les joueurs sont-ils répartis géographiquement? Combien de temps sont-ils prêts à faire la queue? Quel ping est optimal pour un jeu confortable? Ces facteurs et d'autres affectent la qualité du matchmaking.

image

Sous la coupe, nous allons d'abord discuter de la pratique générale de sélection des batailles dans les jeux multijoueurs, puis partager notre propre expérience dans l'organisation de matchmaking pour les robots de guerre.

Quels critères choisir?


Alors, qu'est-ce qui détermine un bon matchmaking? Bien sûr, cela dépend de la plate-forme et des caractéristiques de genre du jeu, mais, en règle générale, les développeurs sont guidés par les critères suivants:

  • temps d'attente court;
  • ping faible;
  • la différence minimale dans l'expérience, les compétences et les progrès des joueurs: ici l'expérience du jeu peut être prise en compte à la fois en général et pour une classe spécifique, si le jeu a une division en eux;
  • opposition à l'autre parti - groupes d'acteurs pré-assemblés visant à un travail coordonné;
  • début simultané du match pour tous les joueurs.

D'autres exigences sont possibles, par exemple:

  • choisir des joueurs qui parlent la même langue;
  • prendre en compte les résultats des derniers matchs du joueur, ainsi que le coefficient de conformité au classement: si un joueur a perdu les derniers matchs, il peut juste être hors de forme maintenant, et pendant un certain temps il devrait faciliter les adversaires;
  • faire du matchmaking en tenant compte de la composition des équipes: si une équipe manque, par exemple, un tank ou un guérisseur, chercher des adversaires une équipe de même composition;
  • rassembler les trolls, les livrées et les pinces afin qu'ils n'interfèrent pas avec les autres joueurs;
  • diversifier la composition des joueurs afin que les mêmes personnes ne se rencontrent pas trop souvent dans des matchs différents;
  • réunir les joueurs à l'aide du chat vocal.

Il est loin d'être toujours possible de satisfaire simultanément toutes ces exigences. De plus, un grand nombre d'exigences vont toujours à l'encontre de la volonté de réaliser un temps d'attente court. Même si le jeu est très réussi et que des centaines de personnes attendent le match chaque minute, il se peut qu'il ne reste pas assez de temps pour remplir certaines conditions. Par exemple, si vous voulez trouver une autre équipe australienne satisfaisante pour une équipe d'Australiens rivaux, le temps d'attente peut augmenter considérablement.

À cet égard, parmi toutes les exigences souhaitées, il est nécessaire de choisir les plus importantes pour un projet particulier. Un raccourcissement de cette liste entraînera une meilleure conformité aux exigences restantes et des temps d'attente plus courts.

De plus, lors du développement de jeux multijoueurs, il convient de rappeler que l'ajout de divers modes de jeu divise la base de joueurs en plusieurs files d'attente et conduit ainsi à une augmentation du temps d'attente, et donc à une détérioration de la qualité du matchmaking. Par conséquent, réfléchissez bien avant d'ajouter tel ou tel mode au jeu, et si cela vaut la peine de donner au joueur la possibilité de choisir entre eux.

Réduire le nombre d'exigences pour le matchmaking n'est pas le seul moyen de réduire le temps d'attente. Par exemple, vous pouvez implémenter le multijoueur sur le système Drop-In-Drop-Out, afin que les utilisateurs puissent rejoindre le jeu à tout moment et le quitter à tout moment. Si cela n'est pas possible, avec une courte durée de matchs, vous pouvez autoriser le joueur à jouer avec des bots dans le processus d'attente. Bien sûr, cela ne résoudra pas le problème des attentes, mais au moins cela nous permettra de passer le temps.

Comment évaluer la conformité aux critères sélectionnés?


Nous avons donc un certain nombre de joueurs que nous devons allouer aux matchs. Comment faire mieux? Lequel est préférable: le même niveau de compétences ou un ping faible? Comment équilibrer ces exigences pour que les parties jouent les unes contre les autres?

Pour comparaison, nous avons besoin d'une certaine métrique. D'une manière ou d'une autre, tous ces critères doivent converger en un seul paramètre, par la valeur la plus élevée dont le système peut effectuer une recherche. Ensuite, nous l'appellerons le score du match.

Afin d'obtenir la valeur de cette évaluation, vous devez d'abord calculer les indicateurs individuels. Considérez une combinaison de facteurs:

  • Équipes ayant le même niveau de compétence. C'est le critère le plus évident dans le matchmaking. Pour chaque jeu, la méthode de calcul de ce paramètre est individuelle. L'une des plus simples: prendre le niveau moyen d'expérience par équipe et le comparer avec la même valeur pour une autre équipe. Plus la différence est grande, plus la correspondance est mauvaise et plus l'indicateur souhaité est bas.
  • Joueurs avec le même niveau de compétence. Même si les deux équipes sont parfaitement équilibrées, mais composées par exemple de deux professionnels et d'un débutant, l'indicateur moyen des compétences des équipes sera le même, mais un bon match ne fonctionnera toujours pas. Par conséquent, nous introduisons un autre paramètre non pas pour l'équipe dans son ensemble, mais pour chaque joueur individuellement, ou la variance du niveau de compétences au sein de l'équipe.
  • Fête. Idéalement, un groupe qui joue ensemble depuis longtemps devrait s'opposer à un autre du même groupe, et non contre trois joueurs distincts. C'est facile à calculer: si une équipe joue depuis longtemps, nous avons un indicateur égal à 100%. Si une équipe de trois joue contre deux amis et un joueur au hasard, nous obtenons 60%. Si aucun des joueurs n'avait joué auparavant, la valeur serait de 0%.
  • Ping adversaires. Pour chaque utilisateur, nous vérifions le ping avec les trois joueurs de l'équipe adverse. Plus le ping est élevé, plus le score est bas.
  • Variabilité des adversaires. Dans le but de répondre à des exigences de priorité plus élevée, le système de matchmaking peut souvent opposer les mêmes équipes avec les taux de match les plus élevés. Par conséquent, afin que les joueurs ne s'ennuient pas constamment à jouer avec des visages familiers, il vaut la peine de garder une trace du nombre de fois qu'ils se rencontrent dans les matchs.


Un exemple de match dans lequel les équipes ont un indicateur à 100% pour une fête, un bon indicateur de la compétence moyenne dans l'équipe, mais une faible corrélation dans les compétences des joueurs individuels: dans l'équipe bleue, ils diffèrent considérablement

Comment prendre en compte l'ambiguïté des critères?


Donc, pour chacun des critères, nous avons un score de 0% (très mauvaise coïncidence) à 100% (meilleur), mais au final nous n'avons besoin que d'un seul chiffre. Pour cela, nous utiliserons la valeur moyenne pondérée. Ensuite, nous pouvons définir la priorité d'importance pour chaque critère.

Lors du calcul de l'estimation, il convient de se demander si nous voulons obtenir une dépendance linéaire des paramètres. Par exemple, l'amélioration du ping de 210 ms à 200 ms vaut-elle la peine de 110 ms à 100 ms? Les deux options sont améliorées de 10 ms, mais la valeur ping elle-même est deux fois plus différente.

Fait intéressant, dans le cas de certains critères, il est plus facile d'obtenir une différence de performance significative que dans le cas d'autres. Donc, pour gagner 0% en termes de niveau de compétence, il faut collecter trois joueurs professionnels et trois débutants dans le match, ce qui est extrêmement rare. Cependant, obtenir 0% par le critère de la partie est beaucoup plus facile, car pour cela, vous devez avoir une équipe longtemps assemblée contre trois joueurs uniques. Cet aspect mérite également d'être examiné.


Un exemple de la façon dont les équipes peuvent être composées en fonction du niveau de compétence. Vert et jaune montrent le ping entre les joueurs

Maintenant, sur la base des valeurs des indicateurs de chacune des exigences, nous pouvons calculer le score final.

Ce nombre étant le critère dominant, l'algorithme produit certaines préférences. Si l'échange de deux joueurs augmente le paramètre d'évaluation d'un match de 5%, mais le réduit de 10% dans un autre match, le système ne le fera pas, car en général le résultat va empirer. Cependant, dans certains cas, cela peut être négligé. Ainsi, il peut être approprié d'améliorer un indicateur de 50% (ce qui est très mauvais) à 55% en réduisant l'autre de 90% à 80% (ce qui est encore assez bon). Cela peut être réalisé, par exemple, en calculant la racine carrée de tous les indicateurs de l'évaluation jusqu'au stade de la moyenne. Ainsi, l'amélioration des mauvais matchs devient relativement plus importante que les bons.

Comment cela se produit-il dans les robots de guerre?


Puisque nous parlons d'un jeu mobile où tout devrait se produire rapidement, la principale priorité est le faible temps d'attente avant d'entrer dans la bataille. Pour cela, le système de matchmaking doit être aussi simple que possible. Pour le moment, le matchmaker War Robots ne prend en compte que le classement de sélection des joueurs (MMR) et essaie de se concentrer sur les parties, mais comme elles ne sont pas répandues dans le jeu, ce critère est secondaire: si vous ne pouvez pas faire correspondre des parties de même force, le système essaie de se combiner les uns avec les autres. quelques parties ou ne se concentre pas du tout sur ce critère. Et si un joueur quitte la bataille, à sa place, il en prendra un autre qui répond aux critères, mais seulement au tout début du match.

Le classement de la sélection des joueurs dépend du nombre de victoires / défaites et de la place dans l'équipe, et selon le résultat du match, il peut augmenter ou diminuer. Selon cette note, les joueurs sont regroupés en ligues et divisions. À l'intérieur de la division, le matchmaker recherche des joueurs avec le score de notation le plus proche possible, élargissant progressivement la plage de recherche et couvrant également les prochaines divisions. Il convient de noter que le matchmaker essaie d'empêcher les joueurs des ligues inférieures qui sous-estiment intentionnellement leur classement en les suivant selon des schémas de comportement caractéristiques: généralement, le nombre de défaites est supérieur au nombre moyen de batailles de ligue par jour.


Organigramme de correspondance des robots de guerre simplifiés

Le système fonctionnait mal. Le critère principal était la puissance des robots et des armes, et à partir des résultats des matchs, seuls les cinq derniers ont été pris en compte. Le système était plus vulnérable à la manipulation. Les joueurs expérimentés pourraient être dans la même bataille avec les nouveaux arrivants, s'ils changeaient simplement leurs armes pour des armes plus faibles, ou vice versa, un nouveau venu au robot de premier niveau pourrait installer la 12e arme et finir dans une bataille avec des professionnels, sans avoir le temps de développer les compétences du jeu. À cet égard, le système de notation basé sur l'expérience réelle des victoires et des défaites s'est avéré être beaucoup plus honnête, bien qu'il n'ait pas été possible d'y arriver tout de suite: une réorganisation complète du processus de matchmaking est une étape radicale.Par conséquent, au début, on a tout de même tenté de simplement définir le système avec des conditions supplémentaires.

Les travaux d'optimisation et d'amélioration du jumelage dans War Robots se poursuivent. Peut-être qu'à l'avenir, il sera possible de combiner l'ancienne et la nouvelle approche pour trouver des matchs, mais n'oubliez pas que toute amélioration de la qualité du matchmaking entraîne une augmentation du temps d'attente. Par conséquent, le développement d'une telle solution ne sera conseillé que s'il n'affecte pas de manière significative les performances du système.

Source: https://habr.com/ru/post/fr475548/


All Articles