La formule de score
Les serveurs sont notés en utilisant une formule de somme pondérée. Il y a quatre parties à cette formule :
- Attributes , qui sont des données qui décrivent les joueurs et les serveurs, comme l'âge du joueur ou l'occupation du serveur.
- Signaux , qui transforment les attributs en nombres entre 0 et 1.
- Poids , qui décrivent l'importance relative des signaux.
- Le score du serveur, qui mesure la compatibilité du serveur avec le joueur rejoignant.
Le joueur rejoignant correspond au serveur avec le score du serveur le plus élevé.
Attributs
Les attributs sont des données qui décrivent les joueurs et les serveurs.La valeur d'un attribut peut être un nombre ou une chaîne.Lorsque la valeur d'un attribut est une chaîne, cela s'appelle un attribut catégoriel.Lorsque la valeur d'un attribut est un nombre, cela s'appelle un attribut numérique.
Pour une liste complète de tous les attributs Roblox disponibles, voir attributs existants.Pour plus d'informations sur les attributs personnalisés, voir attributs personnalisés .
Exemple : Attributes catégorielles et numériques
Attributs catégoriels |
---|
A des amis est une caractéristique catégorielle car sa valeur est la chaîne "true" lorsqu'il y a un joueur préféré sur ce serveur, et "false" lorsqu'il n'y a pas de joueurs préférés sur ce serveur. |
Langue est un attribut catégoriel car sa valeur est la paramètrede langue du joueur, comme « Japonais ». |
Attributs numériques |
L'âge est un attribut numérique car sa valeur est l'âge du joueur. |
L'occupation est un attribut numérique car sa valeur est le nombre de joueurs actuellement sur ce serveur. |
Signaux
Les signaux transforment les valeurs d'attribut en nombres entre 0 et 1, appelés scores de signal.Un score de signal de 1 prédit une compatibilité élevée du joueur, tandis qu'un score de signal de 0 prédit une compatibilité faible du joueur.Selon l'attribut, les transformations peuvent inclure différentes agrégations, comparaisons et normalisations.
Pour une liste complète des signaux Roblox existants, voir signaux existants. Pour plus d'informations sur les signaux personnalisés, voir signaux personnalisés .
Exemple : Deux serveurs avec des scores de signal différents
La table suivante calcule les scores du signal d'occupation pour deux serveurs différents avec une capacité de 8 joueurs :
Joueurs sur le serveur | Score d'occupation | |
---|---|---|
Serveur A | 2 | 2/8 = 0.25 |
Serveur B | 6 | 6/8 = 0.75 |
Le signal d'occupation note le serveur B plus haut et le considère comme une meilleure correspondance pour le joueur rejoignant.
Poids
Le poids d'un signal décrit l'importance de ce signal par rapport à d'autres signaux.Un poids plus élevé augmente la contribution du signal au score du serveur.La valeur après avoir multiplié un score de signal par son poids s'appelle un signal pondéré .
Les signaux ne peuvent pas avoir de poids négatifs. Si le poids d'un signal est de 0, ce signal n'est pas pris en compte pour le classement.
Exemple : Pondérer le score d'occupation
La table suivante calcule des scores de signal d'occupation pondérés pour un endroit avec une capacité de 8 joueurs et un poids du signal d'occupation de 2 :
Joueurs sur le serveur | Score d'occupation pondéré | Score d'occupation pondérée | |
---|---|---|---|
Serveur A | 2 | 2/8 = 0.25 | 0.25 * 2 = 0.5 |
Serveur B | 6 | 6/8 = 0.75 | 0.75 * 2 = 1.5 |
Exemple : Deux configurations avec des poids différents
Différents poids peuvent également faire en sorte que le matchmaking choisisse différents serveurs.La table suivante calcule les scores du serveur de deux serveurs avec différentes configurations de matchmaking.La configuration 2 a un poids plus élevé pour son signal d'occupation, et le serveur A a un ami du joueur rejoignant dedans.
Amis | Occupation | |||||
---|---|---|---|---|---|---|
Poids | Score > | Poids > | Score > | Total du score > | ||
Config 1 | Serveur A | 1 | 1 | 5 | 0.25 | 1 * 1 + 5 * 0.25 = 2.25 |
Serveur B | 1 | 0 | 5 | 0.75 | 1 * 0 + 5 * 0.75 = 3.75 | |
Config 2 | Serveur A | 3 | 1 | 5 | 0.25 | 3 * 1 + 5 * 0.25 = 4.25 |
Serveur B | 3 | 0 | 5 | 0.75 | 3 * 0 + 5 * 0.75 = 3.75 |
Score du serveur
Le score du serveur est calculé par la formule de somme pondérée suivante, qui additionne les scores de signal pondérés du serveur :
ServerScore= WeightedSignalScore_1 + WeightedSignalScore_2 + ... + WeightedSignalScore_n= Weight_1 * SignalScore_1 + Weight_2 * SignalScore_2 + ... + Weight_n * SignalScore_n
Configurations de matchmaking
Une configuration de matchmaking est le ensemble de signaux et de poids utilisés pour évaluer les serveurs d'un emplacement.Par défaut, tous les serveurs de tous les endroits sont notés par la configuration par défaut de Roblox, ce qui signifie que vous n'avez pas besoin de personnaliser ou d'activer aucune réglage pour l'utiliser.
La configuration par défaut de Robox inclut les signaux et les poids suivants :
Signaleur | Poids |
---|---|
Amis | 10 |
Délai | 3 |
Réoccupation | 2 |
Historique des jeux | 2 |
Âge | 1 |
Langue | 1 |
chatde voix | 1 |
Type d'appareil | 0 |
Dans la configuration par défaut de Roblox, le poids du signal des amis est supérieur à la somme des poids de tous les autres signaux.Cela signifie que, s'il est disponible, le joueur de raccord est toujours associé aux serveurs avec des amis (ou des joueurs sur la même adresse IP) dedans.
Le signal de type d'appareil existe dans la configuration par défaut, mais a un poids de 0, donc il n'a pas d'incidence sur les décisions de matchmaking.Vous pouvez ajuster ce poids lorsque vous personnalisez le matchmaking.
Pour plus d'informations sur chaque signal Roblox, voir signaux existants.
Notions avancées
Les concepts suivants sont plus avancés sur le processus de matchmaking.
Normalisation
Les signaux normalisent les valeurs d'attribut à être des nombres entre 0 et 1.Les signaux numériques peuvent être normalisés par tout nombre positif, appelé le facteur de normalisation **** .Si la valeur normalisée est supérieure à 1, elle est ramenée à 1.
Exemple : Concevoir le signal de l'âge
Le signal Âge mesure la différence entre l'âge moyen des joueurs dans le serveur et l'âge du joueur rejoignant.
ageDifference = abs(avgServerAge - joiningPlayerAge)
Les serveurs avec des différences d'âge au-delà de 25 sont tous considérés comme incompatibles avec le joueur de manière égale.Par exemple, une différence d'âge de 25 n'est pas pire pour un joueur qu'une différence d'âge de 26, donc les deux valeurs devraient prendre le score du signal à 0.Dans ce cas, 25 est considéré comme le facteur normalisant.
normAgeDifference = min(1, abs(avgServerAge - joiningPlayerAge) / 25)
Le score du signal est inversément lié à la différence d'âge, ce qui signifie que le score du signal est plus élevé lorsque la différence d'âge est plus petite.
ageDifferenceSignalScore = 1 - normAgeDifference
Le tableau suivant montre les scores du signal d'âge avec deux facteurs de normalisation différents :
Âge | Facteur de normalisation : 100 | Facteur de normalisation : 25 |
---|---|---|
50 | 0.5 | 0 |
25 | 0.75 | 0 |
12 | 0.88 | 0.52 |
5 | 0.95 | 0.8 |
0 | 1 | 1 |
Le signal avec un facteur de normalisation de 25 estime que les différences d'âge de 5 et 12 ans sont plus éloignées.Les facteurs de normalisation plus petits ont l'effet d'amplifier les augmentations ou les diminutions marginales de la différence d'âge.
Magnitudes de poids
Un poids indique l'importance d'un signal par rapport à d'autres signaux dans une configuration.Les magnitudes relatives des poids déterminent l'importance du signal, pas leurs magnitudes absolues.
Exemple : Relative vs magnitude absolue
Le tableau ci-dessous calcule les scores du serveur de deux serveurs avec deux configurations de matchmaking différentes.La configuration 5 et la configuration 6 ont des poids d'occupation plus élevés que leurs poids respectifs d'amis.Le serveur A a un ami du joueur rejoignant dedans.
Amis | Occupation | |||||
---|---|---|---|---|---|---|
Poids | Score > | Poids > | Score > | Total du score > | ||
Config 5 | Serveur A | 10,000 | 1 | 15,000 | 0.25 | 10,000 * 1 + 15,000 * 0.25 = 13,750 |
Serveur B | 10,000 | 0 | 15,000 | 0.75 | 10,000 * 0 + 15,000 * 0.75 = 11,250 | |
Config 6 | Serveur A | 0.01 | 1 | 0.05 | 0.25 | 0.01 * 1 + 0.05 * 0.25 = 0.0225 |
Serveur B | 0.01 | 0 | 0.05 | 0.75 | 0.01 * 0 + 0.05 * 0.75 = 0.0375 |
Le serveur A gagne avec la configuration 5 alors que le serveur B gagne avec la configuration 6.C'est parce que le poids d'occupation de la configuration 5 est seulement de 1,5x son poids d'amis, alors que le poids d'occupation de la configuration 6 est de 5x son poids d'amis.
Malgré des différences de magnitude absolue, la configuration 6 priorise l'occupation sur les amis plus que la configuration 5 ne le fait.