La plupart des jeux en ligne forment des équipes arbitraires. Souvent, c'est jusqu'à l'utilisateur, et ils choisiront un serveur rapide avec une fente gratuite. Ce comportement produit des équipes injustes et des personnes qui arrêtent de rage. En suivant un statique du joueur (ou toute statique pouvant être recueillie) Comment Pouvez-vous choisir des équipes aussi justes que possible? p>
5 Réponses :
Un moyen de créer une liste de joueurs à la recherche de matchs à un moment donné, triés par classement des joueurs. Une fois que vous avez atteint assez de personnes pour commencer un nouveau match (ou peut-être, deux moins que les requis), les grouper en tant que tels: P>
etc. etc., etc. Jusqu'à ce que vos équipes soient remplies. P>
Si vous avez décidé de démarrer un nouveau match avec moins que le nécessaire, il est temps de laisser les joueurs à attendre que de nouvelles personnes rejoignent. Dès qu'une nouvelle personne se joint, vous voudrez les mettre sur l'équipe ouverte avec le meilleur score combiné. P>
Alternativement, si vous vouliez éviter les jeux qui combinaient des bons et des mauvais joueurs de la même équipe, vous pourriez diviser tout le monde en niveaux em> (groupes basés sur leur classement) et ne correspondant que des personnes dans la même niveau. Cela nécessiterait une nouvelle liste ouverte / triée pour chaque niveau supplémentaire. P>
jeu est 4v4 p>
A - 1000 pnts p>
B - 800 PNTS P>
C - 600 PNTS P>
D - 400 pnts p>
E - 200 pnts p>
F - 100 PNTS P>
blockQuote>
Dès que vous obtenez ces six, regroupez-les dans des équipes comme telles: p>
Équipe 1: A, F, D (Score combiné 1500) P>
Team 2: B, E, C (Score combiné 1600) P>
blockQuote>
Maintenant, nous attendons que deux autres joueurs rejoignent. P>
Premier, le joueur E vient avec 500 pnts. Il va à l'équipe 1, car ils ont un score combiné inférieur. P>
Ensuite, le joueur F est livré avec 800 pnts. Il va à l'équipe 2, car la seule équipe ouverte est partie. P>
Total des équipes: p>
Équipe 1: A, F, D, E (Score combiné 2000) P>
Équipe 2: B, E, C, F (Score combiné 2400) P>
blockQuote>
Notez que les équipes étaient réellement assez foires jusqu'à ce que les deux derniers arrivés. Pour être honnête, le moyen meilleur em> serait de créer uniquement le match lorsque vous avez suffisamment de joueurs pour la démarrer. Mais alors les temps d'attente peuvent être trop longs pour le joueur. P>
Ajustez combien vous avez besoin avant de former le match. Basse = moins de temps d'attente, plus d'injuste. Plus élevé = plus de temps d'attente, moins éventuellement injuste. P>
Si vous avez un écran de pré-jeu, BAYS offrirait également plus de temps aux personnes à discuter et à parler avec leurs coéquipiers pour attendre. P>
Mettre les meilleurs et les pires joueurs de l'équipe frustreront souvent les deux, car la combinaison de niveaux de compétence dans le jeu sera si grande que certains joueurs seront dominés par d'autres, même si le solde global de l'équipe est correct. Bien sûr, le pire joueur pourrait être sur l'équipe gagnante, mais leur expérience personnelle sera probablement terrible car le 2e meilleur joueur se bat contre eux et le joueur n ° 1 sera ennuyé de devoir supporter le pire joueur étant sur leur équipe.
L'un des systèmes les plus connus est maintenant est Microsoft's Algorithme Trueskill . p>
Les gens ont également tenté d'adapter le elo system pour le matchmaking de l'équipe, bien qu'il soit plus conçu pour Jumelage 1-V-1. P>
La recherche Microsoft est en fait l'une des meilleures divisions de recherche dans son domaine - le reste de la société ne convient pas toujours.
Il est difficile d'estimer la compétence d'un joueur d'un seul métrique et une telle méthode est sujette à l'abus. Cependant, si vous vous souciez que de mettre en œuvre quelque chose de simple qui fonctionnera bien, essayez ce qui suit: p>
Ceci a la chute évidente du cas où un joueur peut avoir un rapport de perte de victoire de 5-0 et une autre de 50 à 20, le premier a un pourcentage infini tandis que l'autre a un pourcentage plus raisonnable. Il est logique que le système correspondant de reconnaître cela et d'être beaucoup plus confiant que ce dernier joueur a réellement des compétences en raison de la consistance requise; Cependant, les deux joueurs les uns contre les autres seront probablement une bonne chose car le joueur 5-0 essaie probablement de travailler le système en jouant à des joueurs plus faibles, ce qui lui convient donc un joueur de manière constante. P>
Remarque, je parle d'expérience de ne jouant que des jeux de stratégie telles que Warcraft 3 où il s'agit du comportement typique de la tâche. Il me semble que le pourcentage de victoires sur les pertes est une excellente métrique pour correspondre aux joueurs. p>
Cela ne fonctionne pas si bien à moins que tous les matchs soient arrangés de manière aléatoire. Si j'ai un record de 1-2 aux échecs contre Gary Kasparov, c'est presque toujours beaucoup mieux que vous n'avez un record de 100-1 contre un enfant d'âge préscolaire. Mais votre algorithme vous classerait beaucoup plus haut que moi.
@Peter Rapport: par le libellé de la question, j'ai supposé que ce qu'il avait l'intention de faire correspondre la correspondance automatique ou «aléatoire» à mesure que vous l'appelez.
Mais une fois que vous avez commencé à attribuer des matchs en fonction du niveau de compétence, vous ne pouvez pas utiliser le% gagnant en tant que métrique utile. Gagner 50% des matchs contre un Pro n'est pas la même chose que gagner 50% des matchs contre un nouveaub.
Après ma réponse précédente, j'ai réalisé que si vous vouliez vraiment vous gêner, vous pouvez utiliser une idée très simple mais puissante: les chaînes de Markov. p>
L'idée intuitive derrière l'utilisation d'une chaîne de Markov va quelque chose comme ceci: p>
Cette idée a par exemple été utilisée avec succès pour implémenter l'algorithme de classement de la page de Google. Pour décrire comment vous pouvez l'utiliser, considérez ce qui suit: p>
Certaines mises en garde: il y a plusieurs problèmes lors de l'application directement, le plus gros problème sera une bande séparée (c'est-à-dire que votre chaîne de Markov ne sera pas irréductible et la méthode de puissance ne sera donc pas garantie de converger.) Lucky pour vous, Google a traité de tous ces problèmes et plus lors de la mise en œuvre de leur algorithme de classement de la page et de tout ce qui vous reste pour vous permettre de rechercher la manière dont ils contournent ces problèmes si vous êtes tellement enclin. P>
Match basé sur plusieurs attributs. J'ai mis en œuvre un Système de matchmaking simple en utilisant AWS CloudSearch (basé sur Apache Solr). Par exemple, la correspondance basée sur la combinaison des champs suivants est possible Il est maintenant possible d'exécuter des requêtes de multiples champs tels que ceux suivants. P> (and (or weapons:'GUN' weapons:'CANNON' weapons:'DRONE')(and last_login:['2013-05-25T00:00:00Z','2014-10-25T00:00:00Z'])(and points:[100, 200])(and elo_rating:[1000, 2000]))}
Ces statistiques du joueur sont-elles simples et scalaires? I.e. ont-ils un "niveau de compétence" spécifique ou ont-ils des compétences mappées sur plusieurs critères?
@Jamie Wong toutes les statistiques pouvant être rassemblées.