Formuła oceny
Serwery są oceniane za pomocą formuły sumy wagowej. Istnieją cztery części tej formuły:
- Atrybuty, które są danymi opisującymi graczy i serwery, takimi jak wiek gracza lub zajętość serwera.
- Sygnały, które przekształcają atrybuty w liczby pomiędzy 0 a 1.
- Wagi, które opisują względną ważność sygnałów.
- Wynik serwera serwerowy, który mierzy kompatybilność serwera z dołączającym graczem.
Dołączający gracz jest dopasowany do serwera z najwyższą wynikiem serwera.
Atrybuty
Atrybuty to dane opisujące graczy i serwery.Wartość atrybutu może być liczbą lub ciągiem znaków.Gdy wartość atrybutu jest ciągiem, nazywa się to atrybutem kategorii.Gdy wartość atrybutu jest liczbą, nazywa się to atrybutem liczbowym.
Aby uzyskać pełną listę wszystkich dostępnych atrybutów Roblox, zobacz istniejące atrybuty.Aby uzyskać więcej informacji o niestandardowych atrybutach, zobacz niestandardowe atrybuty.
Przykład: kategorialne i liczbowe atrybuty
Atrybuty kategoryczne |
---|
Ma przyjaciół jest atrybutem kategoricznym, ponieważ jego wartość to ciąg "true", gdy istnieje preferowany gracz na tym serwerze, a "false", gdy nie ma preferowanych graczy na tym serwerze. |
Język jest kategorijnym atrybutem, ponieważ jego wartość to ustawienie języka gracza, takie jak "Japoński". |
Atrybuty liczbowe |
Wiek jest atrybutem liczbowym, ponieważ jego wartość to wiek gracza. |
Zajętość jest atrybutem liczbowym, ponieważ jej wartość to liczba graczy obecnie na tym serwerze. |
sygnały
Sygnały przekształcają wartości atrybutów sygnałów w liczby pomiędzy 0 a 1, nazywane wynikami sygnałów.Wynik sygnału 1 przewiduje wysoką kompatybilność gracza, podczas gdy wynik sygnału 0 przewiduje niską kompatybilność gracza.W zależności od atrybutu transformacje mogą obejmować różne agregacje, porównania i normalizacje.
Aby uzyskać pełną listę istniejących sygnałów Roblox, zobacz Istniejące sygnały. Aby uzyskać więcej informacji o sygnałach niestandardowych, zobacz Niestandardowe sygnały.
Przykład: Dwa serwery z różnymi wynikami sygnału
Następująca tabela oblicza wyniki sygnału zajętości dla dwóch różnych serwerów z pojemnością dla 8 graczy:
Gracze na serwerze | Wynik zajętości | |
---|---|---|
Serwer A | 2 | 2/8 = 0.25 |
Serwer B | 6 | 6/8 = 0.75 |
Sygnał zajętości ocenia serwer B wyżej i uważa go za lepszy dopasowany do dołączającego gracza.
Wagi
Waga sygnału opisuje znaczenie sygnału względem innych sygnałów.Większa waga zwiększa wkład sygnału do wyniku serwera.Wartość po pomnożeniu wyniku sygnału przez jego wagę nazywa się sygnałem ważonym .
Sygnały nie mogą mieć ujemnych wag. Jeśli waga sygnału wynosi 0, sygnał ten nie jest brany pod uwagę przy ocenie wyników.
Przykład: ważenie wyniku zajętości
Następująca tabela oblicza wyniki sygnału obłożenia dla miejsca z pojemnością dla 8 graczy i wagą sygnału obłożenia wynoszącą 2:
Gracze na serwerze | Wynik zajętości | Waga wyniku zajętości > | |
---|---|---|---|
Serwer A | 2 | 2/8 = 0.25 | 0.25 * 2 = 0.5 |
Serwer B | 6 | 6/8 = 0.75 | 0.75 * 2 = 1.5 |
Przykład: Dwie konfiguracje z różną wagą
Różne wagi mogą również sprawić, że matchmaking wybierze różne serwery.Poniższa tabela oblicza wyniki serwera dwóch serwerów z różnymi konfiguracjami matchmakingowymi.Konfiguracja 2 ma wyższą wagę dla sygnału zajętości, a Serwer A ma przyjaciela w nim dołączającego gracza.
Przyjaciele | Zajętość | |||||
---|---|---|---|---|---|---|
Waga | Wynik | Waga > | Wynik > | Ogólny wynik > | ||
Konfiguracja 1 | Serwer A | 1 | 1 | 5 | 0.25 | 1 * 1 + 5 * 0.25 = 2.25 |
Serwer B | 1 | 0 | 5 | 0.75 | 1 * 0 + 5 * 0.75 = 3.75 | |
Konfiguracja 2 | Serwer A | 3 | 1 | 5 | 0.25 | 3 * 1 + 5 * 0.25 = 4.25 |
Serwer B | 3 | 0 | 5 | 0.75 | 3 * 0 + 5 * 0.75 = 3.75 |
Wynik serwera
Wynik serwera jest obliczany za pomocą następującej formuły ważonej sumy, która dodaje wyniki sygnałów ważonych serwera:
ServerScore= WeightedSignalScore_1 + WeightedSignalScore_2 + ... + WeightedSignalScore_n= Weight_1 * SignalScore_1 + Weight_2 * SignalScore_2 + ... + Weight_n * SignalScore_n
Konfiguracje matchmakingowe
Konfiguracja matchmakingowa to zestaw sygnałów i wag używanych do oceny serwerów miejsce.Domyślnie wszystkie serwery wszystkich miejsc są oceniane przez domyślną konfigurację Roblox, co oznacza, że nie musisz dostosowywać lub włączać żadnych ustawień, aby z niej korzystać.
Domyślna konfiguracja Robox obejmuje następujące sygnały i wagi:
Sygnał | Waga |
---|---|
Przyjaciele | 10 |
Opóźnienie | 3 |
Zajęcie | 2 |
Historia odtwarzania | 2 |
Wiek | 1 |
Język | 1 |
Czat głosowy | 1 |
Typ urządzenia | 0 |
W domyślnej konfiguracji Roblox waga sygnału przyjaciół jest większa niż suma wagi każdego innego sygnału.Oznacza to, że jeśli jest dostępny, dołączający gracz zawsze pasuje do serwerów z przyjaciółmi (lub graczami na tym samym adresie IP) w nich.
Sygnał typu urządzenia istnieje w domyślnej konfiguracji, ale ma wagę 0, więc nie wpływa na decyzje o dopasowaniu.Możesz dostosować tę wagę, gdy dostosujesz dopasowanie.
Aby uzyskać więcej informacji o każdym sygnale Roblox, zobacz Istniejące sygnały.
Zaawansowane koncepty
Następujące są bardziej zaawansowane koncepcje dotyczące procesu matchmakingowego.
Normalizacja
Normalizacja sygnałów normalizuje wartości atrybutów do liczb pomiędzy 0 a 1.Sygnały liczbowe mogą być normalizowane przez dowolną pozytywną liczbę, nazywaną czynnikiem normalizującym .Jeśli wartość normalizowana jest większa niż 1, jest ograniczona do 1.
Przykład: Projektowanie sygnału wieku
Sygnał Wiek mierzy różnicę między średnim wiekiem graczy na serwerze a wiekiem dołączającego gracza.
ageDifference = abs(avgServerAge - joiningPlayerAge)
Wszystkie serwery z różnicami wieku ponad 25 są uważane za równie niezgodne z graczem.Na przykład różnica wieku wynosząca 25 nie jest gorsza dla gracza niż różnica wieku wynosząca 26, więc obie wartości powinny zabrać wynik sygnału do 0.W tym przypadku 25 jest uważany za czynnik normalizujący.
normAgeDifference = min(1, abs(avgServerAge - joiningPlayerAge) / 25)
Wynik sygnału jest odwrotnie związany z różnicą wieku, co oznacza, że wynik sygnału jest wyższy, gdy różnica wieku jest mniejsza.
ageDifferenceSignalScore = 1 - normAgeDifference
Poniższa tabela pokazuje wyniki sygnału wieku z dwoma różnymi czynnikami normalizującymi:
Wiek | Normalizacja czynnika: 100 | Normalizacja czynnika: 25 |
---|---|---|
50 | 0.5 | 0 |
25 | 0.75 | 0 |
12 | 0.88 | 0.52 |
5 | 0.95 | 0.8 |
0 | 1 | 1 |
Sygnał z czynnikiem normalizującym 25 uważa, że różnice wieku 5-letniej i 12-letniej są dalej rozdzielone.Mniejsze czynniki normalizujące mają efekt zwiększenia lub zmniejszenia marginalnych wzrostów lub spadków różnicy wieku.
Wielkości wagi
Waga oznacza znaczenie sygnału względem innych sygnałów w konfiguracji.Względne wartości ciężarów określają znaczenie sygnału, a nie jego absolutne wartości.
Przykład: względna w stosunku do absolutnej wielkości
Tabela poniżej oblicza wyniki serwera dwóch serwerów z dwoma różnymi konfiguracjami matchmakingowymi.Konfiguracja 5 i Konfiguracja 6 mają wagi zajętości wyższe niż ich odpowiednie wagi przyjaciół.Serwer A ma przyjaciela dołączającego gracza w nim.
Przyjaciele | Zajętość | |||||
---|---|---|---|---|---|---|
Waga | Wynik | Waga > | Wynik > | Ogólny wynik > | ||
Konfiguracja 5 | Serwer A | 10,000 | 1 | 15,000 | 0.25 | 10,000 * 1 + 15,000 * 0.25 = 13,750 |
Serwer B | 10,000 | 0 | 15,000 | 0.75 | 10,000 * 0 + 15,000 * 0.75 = 11,250 | |
Konfiguracja 6 | Serwer A | 0.01 | 1 | 0.05 | 0.25 | 0.01 * 1 + 0.05 * 0.25 = 0.0225 |
Serwer B | 0.01 | 0 | 0.05 | 0.75 | 0.01 * 0 + 0.05 * 0.75 = 0.0375 |
Serwer A wygrywa z konfiguracją 5, podczas gdy serwer B wygrywa z konfiguracją 6.Dzieje się tak, ponieważ waga zajętości Konfiguracji 5 wynosi tylko 1,5x wagi jej przyjaciół, podczas gdy waga zajętości Konfiguracji 6 wynosi 5x wagi jej przyjaciół.
Pomimo różnic w absolutnych wartościach, Konfiguracja 6 priorytetuje zajętość nad przyjaciółmi więcej niż Konfiguracja 5.