La formula di valutazione
I server vengono valutati utilizzando una formula di somma ponderata. Ci sono quattro parti di questa formula:
- Attributi , che sono dati che descrivono giocatori e server, come l'età del giocatore o l'occupazione del server.
- Segnali, che trasformano gli attributi in numeri tra 0 e 1.
- Pesi , che descrivono l'importanza relativa dei segnali.
- Il punteggio del server che misura la compatibilità del Servercon il Giocatoreche si unisce.
Il giocatore di connessione viene abbinato al server con il punteggio server più alto.
Attributi
Gli attributi sono dati che descrivono giocatori e server.Il valore di un attributo può essere un numero o una Stringa.Quando il valore di un attributo è una Stringa, si chiama attributo categorico.Quando il valore di un attributo è un numero, si chiama attributo numerico.
Per una lista completa di tutti gli attributi Roblox disponibili, vedi Attributi esistenti.Per ulteriori informazioni sugli attributi personalizzati, vedi Attributi personalizzati.
Esempio: attributi categorici e numerici
Attributi categorici |
---|
Ha amici è un attributo categorico perché il suo valore è la stringa "true" quando c'è un giocatore preferito su questo Server, e "false" quando non ci sono giocatori preferiti su questo Server. |
Linguaggio è un attributo categorico perché il suo valore è la Configurazionedel linguaggio del Giocatore, come "Giapponese". |
Attributi numerici |
Età è un attributo numerico perché il suo valore è l'età del Giocatore. |
L'occupazione è un attributo numerico perché il suo valore è il numero di giocatori attualmente su questo Server. |
Segnali
I segnali trasformano i valori degli attributi in numeri tra 0 e 1, chiamati punteggi dei segnali.Un punteggio del segnale di 1 predice alta compatibilità del giocatore, mentre un punteggio del segnale di 0 predice bassa compatibilità del giocatore.A seconda dell'attributo, le trasformazioni possono includere diverse aggregazioni, comparazioni e normalizzazioni.
Per una lista completa dei segnali esistenti di Roblox, vedi Segnali esistenti. Per ulteriori informazioni sui segnali personalizzati, vedi Segnali personalizzati.
Esempio: Due server con punteggi di segnale diversi
La seguente tabella calcola i punteggi del segnale di occupazione per due diversi server con capacità per 8 giocatori:
Giocatori nel server | Punteggio di occupazione | |
---|---|---|
Server A | 2 | 2/8 = 0.25 |
Server B | 6 | 6/8 = 0.75 |
Il segnale di occupazione valuta il Server B più alto e lo considera una migliore aderenza per il Giocatoreche si unisce.
Peso
Il peso di un segnale descrive l'importanza di quel segnale rispetto ad altri segnali.Un peso più elevato aumenta il contributo del segnale al punteggio del server.Il valore dopo aver moltiplicato un punteggio del segnale con il suo peso è chiamato un segnale ponderato .
I segnali non possono avere pesi negativi. Se il peso di un segnale è 0, quel segnale non viene considerato per la valutazione.
Esempio: Ponderare il punteggio di occupazione
La seguente tabella calcola i punteggi del segnale di occupazione ponderati per un luogo con capacità per 8 giocatori e un peso del segnale di occupazione di 2:
Giocatori nel server | Punteggio di occupazione | Punteggio di occupazione pesata | |
---|---|---|---|
Server A | 2 | 2/8 = 0.25 | 0.25 * 2 = 0.5 |
Server B | 6 | 6/8 = 0.75 | 0.75 * 2 = 1.5 |
Esempio: due configurazioni con pesi diversi
Pesi diversi possono anche far sì che il matchmaking scelga diversi server.La seguente tabella calcola i punteggi del server di due server con diverse configurazioni di matchmaking.La configurazione 2 ha un peso maggiore per il suo segnale di occupazione e il Server A ha un amico del giocatore che si unisce in esso.
Amici | Occupazione | |||||
---|---|---|---|---|---|---|
Peso | Punteggio > | Peso > | Punteggio > | Punteggio totale > | ||
Configurazione1 | Server A | 1 | 1 | 5 | 0.25 | 1 * 1 + 5 * 0.25 = 2.25 |
Server B | 1 | 0 | 5 | 0.75 | 1 * 0 + 5 * 0.75 = 3.75 | |
Configurazione 2 | Server A | 3 | 1 | 5 | 0.25 | 3 * 1 + 5 * 0.25 = 4.25 |
Server B | 3 | 0 | 5 | 0.75 | 3 * 0 + 5 * 0.75 = 3.75 |
Punteggio server
Il punteggio del server viene calcolato dalla seguente formula di somma ponderata, che somma i punteggi dei segnali pesati del Server:
ServerScore= WeightedSignalScore_1 + WeightedSignalScore_2 + ... + WeightedSignalScore_n= Weight_1 * SignalScore_1 + Weight_2 * SignalScore_2 + ... + Weight_n * SignalScore_n
Configurazioni di matchmaking
Una configurazione di matchmaking è il set di segnali e pesi utilizzati per valutare i server di un Posto.Per impostazione predefinita, tutti i server di tutti i luoghi sono valutati dalla configurazione predefinita di Roblox, il che significa che non è necessario personalizzare o abilitare alcuna impostazione per utilizzarlo.
La configurazione predefinita di Robox include i seguenti segnali e pesi:
Segnale | Peso |
---|---|
Amici | 10 |
Latenza | 3 |
Occupazione | 2 |
Storia del gioco | 2 |
Età | 1 |
Lingua | 1 |
Chat vocale | 1 |
Tipo dispositivo | 0 |
Nella configurazione predefinita di Roblox, il peso del segnale Amici è maggiore della somma dei pesi di ogni altro segnale.Questo significa che, se disponibile, il giocatore di connessione è sempre abbinato ai server con amici (o giocatori sullo stesso indirizzo IP) in essi.
Il segnale del tipo di dispositivo esiste nella configurazione predefinita ma ha un peso di 0, quindi non influisce sulle decisioni di matchmaking.Puoi regolare questo peso quando personalizzi il matchmaking .
Per maggiori informazioni su ciascun segnale Roblox, vedi Segnali esistenti.
Concetti avanzati
I seguenti sono concetti più avanzati sul processo di matchmaking.
Normalizzazione
I segnali normalizzano i valori degli attributi a essere numeri tra 0 e 1.I segnali numerici possono essere normalizzati da qualsiasi numero positivo, chiamato il fattore di normalizzazione .Se il valore normalizzato è maggiore di 1, viene limitato a 1.
Esempio: progettazione del segnale Età
Il segnale Età misura la differenza tra l'età media dei giocatori nel server e l'età del Giocatoreche si unisce.
ageDifference = abs(avgServerAge - joiningPlayerAge)
I server con differenze d'età oltre 25 sono tutti considerati ugualmente incompatibili con il Giocatore.Ad esempio, una differenza d'età di 25 non è peggiore per un giocatore rispetto a una differenza d'età di 26, quindi entrambi i valori dovrebbero portare il segnale a 0.In questo caso, 25 è considerato il fattore normalizzante.
normAgeDifference = min(1, abs(avgServerAge - joiningPlayerAge) / 25)
Il punteggio del segnale è inversamente correlato alla differenza d'età, in modo che il punteggio del segnale sia più alto quando la differenza d'età è più piccola.
ageDifferenceSignalScore = 1 - normAgeDifference
La seguente tabella mostra i punteggi del segnale Età con due diversi fattori di normalizzazione:
Età | Fattore di normalizzazione: 100 | Fattore di normalizzazione: 25 |
---|---|---|
50 | 0.5 | 0 |
25 | 0.75 | 0 |
12 | 0.88 | 0.52 |
5 | 0.95 | 0.8 |
0 | 1 | 1 |
Il segnale con un fattore normalizzante di 25 considera le differenze di età di 5 anni e 12 anni più distanti.I fattori normalizzanti più piccoli hanno l'effetto di amplificare aumenti o diminuzioni marginali nella differenza di età.
Magnitudini di peso
Un peso indica l'importanza di un segnale rispetto ad altri segnali in una configurazione.Le magnitudini relative dei pesi determinano l'importanza del segnale, non le loro magnitudini assolute.
Esempio: Relative vs magnitude assoluta
La tabella seguente calcola i punteggi del server di due server con due diverse configurazioni di matchmaking.Configurazione 5 e Configurazione 6 hanno pesi di occupazione più alti rispetto ai rispettivi pesi degli amici.Il server A ha un amico del giocatore che si unisce in esso.
Amici | Occupazione | |||||
---|---|---|---|---|---|---|
Peso | Punteggio > | Peso > | Punteggio > | Punteggio totale > | ||
Configurazione 5 | Server A | 10,000 | 1 | 15,000 | 0.25 | 10,000 * 1 + 15,000 * 0.25 = 13,750 |
Server B | 10,000 | 0 | 15,000 | 0.75 | 10,000 * 0 + 15,000 * 0.75 = 11,250 | |
Configurazione 6 | Server A | 0.01 | 1 | 0.05 | 0.25 | 0.01 * 1 + 0.05 * 0.25 = 0.0225 |
Server B | 0.01 | 0 | 0.05 | 0.75 | 0.01 * 0 + 0.05 * 0.75 = 0.0375 |
Il server A vince con la configurazione 5 mentre il server B vince con la configurazione 6.Questo perché il peso dell'Occupazione di Configurazione 5 è solo 1,5x il peso dei suoi Amici, mentre il peso dell'Occupazione di Configurazione 6 è 5x il peso dei suoi Amici.
Nonostante le differenze nelle magnitudini assolute, la configurazione 6 priorizza l'occupazione sui amici più della configurazione 5.