La formule de scoring
Les serveurs sont notés à l'aide d'une formule de somme pondérée. Il y a quatre parties à cette formule :
- Attributs, qui sont des données décrivant les joueurs et les serveurs, telles que l'âge du joueur ou l'occupation du serveur.
- Signaux, qui transforment les attributs en nombres compris 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 qui rejoint.
Le joueur qui rejoint est associé au serveur avec le score de serveur le plus élevé.
Attributs
Les attributs sont des données décrivant 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, on parle d'attribut catégorique. Lorsque la valeur d'un attribut est un nombre, on parle d'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 : Attributs catégoriques et numériques
| Attributs catégoriques |
|---|
| A des amis est un attribut catégorique 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égorique car sa valeur est le paramètre de langue du joueur, tel que "Japonais". |
| Attributs numériques |
| Âge est un attribut numérique car sa valeur est l'âge du joueur. |
| Occupation est un attribut numérique car sa valeur est le nombre de joueurs actuellement dans ce serveur. |
Signaux
Les signaux transforment les valeurs des attributs en nombres compris entre 0 et 1, appelés scores de signal. Un score de signal de 1 prédit une haute compatibilité avec le joueur, tandis qu'un score de signal de 0 prédit une faible compatibilité avec le 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
Le tableau suivant calcule les scores de signal d'Occupation pour deux serveurs différents avec une capacité de 8 joueurs :
| Joueurs dans le serveur | Score d'occupation | |
|---|---|---|
| Serveur A | 2 | 2/8 = 0.25 |
| Serveur B | 6 | 6/8 = 0.75 |
Le score de signal d'Occupation note le Serveur B plus haut et le considère comme un meilleur choix pour le joueur qui rejoint.
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 obtenue après avoir multiplié le score d'un signal par son poids est appelée un signal pondéré.
Les signaux ne peuvent pas avoir de poids négatifs. Si le poids d'un signal est 0, ce signal n'est pas pris en compte pour le scoring.
Exemple : Pondération du score d'occupation
Le tableau suivant calcule les scores de signal d'Occupation pondérés pour un endroit ayant une capacité de 8 joueurs et un poids de signal d'Occupation de 2 :
| Joueurs dans le serveur | Score d'occupation | Score d'occupation pondéré | |
|---|---|---|---|
| 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 amener le matchmaking à choisir différents serveurs. Le tableau suivant calcule les scores de 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 qui rejoint.
| Amis | Occupation | |||||
|---|---|---|---|---|---|---|
| Poids | Score | Poids | Score | Score total | ||
| 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 somme les scores de signal pondérés d'un serveur :
Configurations de matchmaking
Une configuration de matchmaking est l'ensemble des signaux et poids utilisés pour noter les serveurs d'un endroit. 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 des paramètres pour l'utiliser.
La configuration par défaut de Roblox comprend les signaux et poids suivants :
| Signal | Poids |
|---|---|
| Amis | 15 |
| Latence | 3 |
| Chat Textuel | 3 |
| Occupation | 2 |
| Historique de jeu | 2 |
| Langue | 2 |
| Âge | 1 |
| Chat Vocal | 1 |
| Type d'appareil | 0 |
Dans la configuration par défaut de Roblox, le poids du signal Amis est supérieur à la somme des poids de tous les autres signaux. Cela signifie que, si disponible, le joueur qui rejoint est toujours associé à des serveurs avec des amis (ou des joueurs sur la même adresse IP) dans ceux-ci.
Le signal Type d'appareil existe dans la configuration par défaut mais a un poids de 0, donc il n'affecte pas 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.
Concepts avancés
Voici des concepts plus avancés concernant le processus de matchmaking.
Normalisation
Les signaux normalisent les valeurs des attributs pour être des nombres compris entre 0 et 1. Les signaux numériques peuvent être normalisés par n'importe quel nombre positif, appelé le facteur de normalisation. Si la valeur normalisée est supérieure à 1, elle est limitée à 1.
Exemple : Conception du signal Âge
Le signal Âge mesure la différence entre l'âge moyen des joueurs dans le serveur et l'âge du joueur qui rejoint.
Les serveurs avec des différences d'âge supérieures à 25 sont tous considérés comme également incompatibles avec le joueur. 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 doivent amener le score de signal à 0. Dans ce cas, 25 est considéré comme le facteur de normalisation.
Le score de signal est inversement lié à la différence d'âge, ce qui signifie que le score de signal est plus élevé lorsque la différence d'âge est plus petite.
Le tableau suivant montre les scores du signal Â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 considère les différences d'âge de 5 ans et de 12 ans comme plus éloignées. Des facteurs de normalisation plus petits ont pour effet d'amplifier les augmentations ou diminutions marginales de la différence d'âge.
Magnitudes des 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 des signaux, et non leurs magnitudes absolues.
Exemple : Magnitude relative vs magnitude absolue
Le tableau ci-dessous calcule les scores des serveurs 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 d'Amis respectifs. Le Serveur A a un ami du joueur qui rejoint.
| Amis | Occupation | |||||
|---|---|---|---|---|---|---|
| Poids | Score | Poids | Score | Score total | ||
| 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 tandis que le Serveur B gagne avec la Configuration 6. Cela est dû au fait que le poids d'Occupation de la Configuration 5 n'est que 1,5 fois son poids d'Amis, tandis que le poids d'Occupation de la Configuration 6 est 5 fois son poids d'Amis.
Malgré les différences de magnitudes absolues, la Configuration 6 privilégie l'Occupation par rapport aux Amis plus que la Configuration 5.