Wzór punktacji
Serwery są oceniane za pomocą formuły sumy ważonej. W tej formule są cztery części:
- Atrybuty, które są danymi opisującymi graczy i serwery, takimi jak wiek gracza czy obciążenie serwera.
- Sygnaly, które przekształcają atrybuty w liczby między 0 a 1.
- Wagi, które opisują względne znaczenie sygnałów.
- Punktacja serwera, która mierzy zgodność serwera z dołączającym graczem.
Dołączający gracz jest dopasowywany do serwera z najwyższą punktacją serwera.
Atrybuty
Atrybuty to dane, które opisują graczy i serwery. Wartość atrybutu może być liczbą lub ciągiem znaków. Gdy wartość atrybutu jest ciągiem znaków, nazywa się to atrybutem kategorycznym. Gdy wartość atrybutu jest liczbą, nazywa się atrybutem numerycznym.
Aby zobaczyć pełną listę dostępnych atrybutów Roblox, zobacz Istniejące atrybuty. Aby uzyskać więcej informacji o atrybutach niestandardowych, zobacz Atrybuty niestandardowe.
Przykład: Atrybuty kategoryczne i numeryczne
| Atrybuty kategoryczne |
|---|
| Posiada przyjaciół jest atrybutem kategorycznym, ponieważ jego wartość to ciąg "true", gdy na tym serwerze jest preferowany gracz, oraz "false", gdy nie ma preferowanych graczy na tym serwerze. |
| Język jest atrybutem kategorycznym, ponieważ jego wartość to ustawienie językowe gracza, takie jak "japoński". |
| Atrybuty numeryczne |
| Wiek jest atrybutem numerycznym, ponieważ jego wartość to wiek gracza. |
| Obciążenie jest atrybutem numerycznym, ponieważ jego wartość to liczba graczy aktualnie na tym serwerze. |
Sygnaly
Sygnaly przekształcają wartości atrybutów w liczby od 0 do 1, zwane punktacjami sygnałów. Punktacja sygnału wynosząca 1 przewiduje wysoką zgodność gracza, podczas gdy punktacja sygnału wynosząca 0 przewiduje niską zgodność gracza. W zależności od atrybutu, transformacje mogą obejmować różne agregacje, porównania i normalizacje.
Aby zobaczyć pełną listę istniejących sygnałów Roblox, zobacz Istniejące sygnały. Aby uzyskać więcej informacji o sygnałach niestandardowych, zobacz Sygnały niestandardowe.
Przykład: Dwa serwery z różnymi punktacjami sygnałów
Poniższa tabela oblicza punktacje sygnałów obciążenia dla dwóch różnych serwerów z pojemnością dla 8 graczy:
| Gracze na serwerze | Punktacja obciążenia | |
|---|---|---|
| Serwer A | 2 | 2/8 = 0.25 |
| Serwer B | 6 | 6/8 = 0.75 |
Punktacja sygnałów obciążenia ocenia Serwer B wyżej i uznaje go za lepsze dopasowanie dla dołączającego gracza.
Wagi
Waga sygnału opisuje znaczenie tego sygnału w stosunku do innych sygnałów. Wyższa waga zwiększa wkład sygnału w punktacji serwera. Wartość po pomnożeniu punktacji sygnału przez jego wagę nazywa się ważonym sygnałem.
Sygnały nie mogą mieć wag ujemnych. Jeśli waga sygnału jest równa 0, ten sygnał nie jest brany pod uwagę przy punktacji.
Przykład: Ważenie punktacji obciążenia
Poniższa tabela oblicza ważone punktacje sygnałów obciążenia dla miejsca z pojemnością dla 8 graczy i wagą sygnału obciążenia równą 2:
| Gracze na serwerze | Punktacja obciążenia | Ważona punktacja obciążenia | |
|---|---|---|---|
| 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óżnymi wagami
Różne wagi również mogą spowodować, że system dopasowywania wybierze różne serwery. Poniższa tabela oblicza punktacje serwera dla dwóch serwerów z różnymi konfiguracjami dopasowywania. Konfiguracja 2 ma wyższą wagę dla swojego sygnału obciążenia, a Serwer A ma przyjaciela dołączającego gracza.
| Przyjaciele | Obciążenie | |||||
|---|---|---|---|---|---|---|
| Waga | Punktacja | Waga | Punktacja | Całkowita punktacja | ||
| 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 | |
Punktacja serwera
Punktacja serwera obliczana jest za pomocą następującej formuły sumy ważonej, która sumuje ważone punktacje sygnałów serwera:
Konfiguracje dopasowywania
Konfiguracja dopasowywania to zestaw sygnałów i wag używanych do oceniania serwerów w danym miejscu. Domyślnie wszystkie serwery we wszystkich miejscach są oceniane przez domyślną konfigurację Roblox, co oznacza, że nie musisz dostosowywać ani włączać żadnych ustawień, aby jej używać.
Domyślna konfiguracja Roblox obejmuje następujące sygnały i wagi:
| Sygnał | Waga |
|---|---|
| Przyjaciele | 15 |
| Opóźnienie | 3 |
| Czat tekstowy | 3 |
| Obciążenie | 2 |
| Historia gry | 2 |
| Język | 2 |
| Wiek | 1 |
| Czat głosowy | 1 |
| Typ urządzenia | 0 |
W domyślnej konfiguracji Roblox waga sygnału Przyjaciele jest większa niż suma wag każdego innego sygnału. Oznacza to, że jeśli to możliwe, dołączający gracz zawsze jest dopasowywany do serwerów z przyjaciółmi (lub graczami na tym samym adresie IP).
Sygnał Typ urządzenia istnieje w domyślnej konfiguracji, ale ma wagę równą 0, więc nie wpływa na decyzje dotyczące dopasowywania. Możesz dostosować tę wagę, gdy dostosowujesz dopasowywanie.
Aby uzyskać więcej informacji o każdym sygnale Roblox, zobacz Istniejące sygnały.
Zaawansowane pojęcia
Poniżej znajdują się bardziej zaawansowane koncepcje dotyczące procesu dopasowywania.
Normalizacja
Sygnały normalizują wartości atrybutów, aby były liczbami między 0 a 1. Sygnały numeryczne mogą być normalizowane przez dowolną dodatnią liczbę, nazywaną czynnikiem normalizującym. Jeśli wartość znormalizowana przekracza 1, jest ograniczana do 1.
Przykład: Projektowanie sygnału wieku
Sygnał wieku mierzy różnicę między średnim wiekiem graczy na serwerze a wiekiem dołączającego gracza.
Serwery z różnicami wieku większymi niż 25 są uważane za równo niekompatybilne z graczem. Na przykład różnica wieku 25 nie jest gorsza dla gracza niż różnica wieku 26, więc obie wartości powinny mieć punktację sygnału równą 0. W tym przypadku 25 jest uważane za czynnik normalizujący.
Punktacja sygnału jest odwrotnie proporcjonalna do różnicy wieku, co oznacza, że punktacja sygnału jest wyższa, gdy różnica wieku jest mniejsza.
Poniższa tabela pokazuje punktacje sygnału wieku przy dwóch różnych czynnikach normalizujących:
| Wiek | Czynnik normalizujący: 100 | Czynnik normalizujący: 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 równym 25 uznaje różnice wieku 5 lat i 12 lat za bardziej odległe. Mniejsze czynniki normalizujące mają na celu wzmocnienie marginalnych wzrostów lub spadków różnicy wieku.
Magnituda wag
Waga wskazuje na znaczenie sygnału w stosunku do innych sygnałów w konfiguracji. Względne magnitudy wag decydują o znaczeniu sygnału, a nie ich absolutne magnitudy.
Przykład: Względna vs absolutna magnituda
Tabela poniżej oblicza punktacje serwera dwóch serwerów z dwoma różnymi konfiguracjami dopasowywania. Konfiguracja 5 i Konfiguracja 6 mają wagi obciążenia większe niż ich odpowiednie wagi przyjaciół. Serwer A ma przyjaciela dołączającego gracza.
| Przyjaciele | Obciążenie | |||||
|---|---|---|---|---|---|---|
| Waga | Punktacja | Waga | Punktacja | Całkowita punktacja | ||
| 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 w Konfiguracji 5, podczas gdy Serwer B wygrywa w Konfiguracji 6. Dzieje się tak, ponieważ waga obciążenia w Konfiguracji 5 jest tylko 1,5 razy większa niż waga przyjaciół, podczas gdy waga obciążenia w Konfiguracji 6 jest 5 razy większa niż waga przyjaciół.
Mimo różnic w absolutnych magnitudach, Konfiguracja 6 bardziej priorytetuje obciążenie nad przyjaciółmi niż Konfiguracja 5.