Attributi e segnali

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Attributi esistenti

La configurazione predefinita del matchmaking di Roblox utilizza segnali basati su attributi esistenti come la posizione del giocatore, il gruppo di età e la latenza.

Per utilizzare dati per il matchmaking che Roblox non include automaticamente nella sua configurazione predefinita, è necessario creare attributi personalizzati e segnali personalizzati.

AttributoTipoDescrizione
Latenza stimata del giocatoreNumericoLa latenza stimata di un giocatore in un server.
Ha amiciCategorialeSe un server ha un amico o un altro giocatore con lo stesso indirizzo IP del giocatore che si unisce.
Voce chat abilitataCategorialeSe un giocatore ha la chat vocale abilitata.
Età del giocatoreNumericoL'età del giocatore.
Tipo di dispositivo del giocatoreCategorialeIl tipo di dispositivo del giocatore. Può essere un dispositivo mobile, un computer, un tablet, una console o un dispositivo VR.
Lingua del giocatoreCategorialeLa lingua del giocatore.
Storia di gioco del giocatoreNumericoIl numero logaritmico in base 10 dei minuti che un giocatore ha giocato in un universo negli ultimi 28 giorni.
Occupazione del serverNumericoIl numero di giocatori in un server.
Gruppo di chat testuale del giocatoreCategorialeIl gruppo di chat testuale del giocatore dove possono chattare insieme.

Segnali esistenti

I seguenti sono segnali definiti da Roblox derivati dagli attributi di Roblox:

SegnaleDescrizione
EtàLa differenza tra l'età media dei giocatori nel server e l'età del giocatore che si unisce, con una differenza massima rilevante di 25.
Tipo di dispositivoIl rapporto di giocatori nel server con lo stesso tipo di dispositivo del giocatore che si unisce.
AmiciIl numero di persone nel server che sono amici del giocatore che si unisce o che condividono un indirizzo IP con il giocatore che si unisce. 1 se c'è un giocatore preferito, 0 altrimenti.
LatenzaIl delta ping del giocatore che si unisce per un server, che è il ping stimato sopra il ping più basso che il giocatore potrebbe raggiungere nel suo miglior datacenter raggiungibile, con un valore massimo rilevante di 100.
LinguaIl rapporto di giocatori nel server con la stessa lingua del giocatore che si unisce.
OccupazioneIl rapporto di giocatori nel server rispetto alla capacità del server.
Storia di giocoLa differenza tra la storia di gioco media nel server e la storia di gioco del giocatore che si unisce, con una differenza massima rilevante di 4.6.
Chat vocaleIl rapporto di giocatori nel server con la chat vocale abilitata.
Chat testualeIl rapporto di giocatori nel server che possono chattare con il giocatore che si unisce insieme.

Età

Un segnale numerico che confronta le età medie dei giocatori su un server con l'età del giocatore che si unisce. Questo segnale ha una differenza massima rilevante di 25. Il punteggio del segnale è inversamente correlato alla differenza di età, il che significa che le differenze di età più basse hanno punteggi più alti.

ageDifferenceSignalScore=1min(25,ageDifference)/25\text{ageDifferenceSignalScore} = 1 - \min(25, \text{ageDifference}) / 25

dove

ageDifference=avgServerAgejoiningPlayerAge\text{ageDifference} = |\text{avgServerAge} - \text{joiningPlayerAge}|

Tipo di dispositivo

Un segnale categoriale che misura il rapporto di giocatori sul server con lo stesso tipo di dispositivo del giocatore che si unisce. I tipi di dispositivo includono: Computer, dispositivo mobile, tablet, console e dispositivo VR.

deviceTypeSignalScore=# giocatori con lo stesso dispositivo del giocatore che si unisce/# giocatori sul server\text{deviceTypeSignalScore} = \text{\# giocatori con lo stesso dispositivo del giocatore che si unisce} / \text{\# giocatori sul server}

Amici

Un giocatore preferito è un giocatore che è amico del giocatore che si unisce o che condivide lo stesso indirizzo IP del giocatore che si unisce. Il segnale Amici è un segnale categoriale con un punteggio di 1 quando c'è un giocatore preferito nel server e un punteggio di 0 quando non ci sono giocatori preferiti nel server.

friendsSignalScore=hasFriends ? 1:0\text{friendsSignalScore} = \text{hasFriends} \ {?} \ 1 : 0

Il segnale Amici può anche essere considerato un segnale numerico con un valore massimo rilevante di 1.

friendsSignalScore=min(# giocatori preferiti nel server,1)/1\text{friendsSignalScore} = \min(\text{\# giocatori preferiti nel server}, 1) / 1

Lingua

Un segnale categoriale che misura il rapporto di giocatori nel server che condividono la stessa impostazione della lingua del giocatore che si unisce.

languageSignalScore=# giocatori con la stessa impostazione della lingua del giocatore che si unisce/# giocatori sul server\text{languageSignalScore} = \text{\# giocatori con la stessa impostazione della lingua del giocatore che si unisce} / \text{\# giocatori sul server}

Latenza

Un segnale numerico che misura il delta ping del giocatore che si unisce in millisecondi se dovesse giocare su un server, che è il ping stimato sopra il ping più basso che il giocatore potrebbe raggiungere nel suo miglior datacenter raggiungibile. Questo segnale ha un valore massimo rilevante di 100 millisecondi. Il punteggio del segnale è inversamente correlato al delta ping, il che significa che valori di delta ping più bassi hanno punteggi più alti.

latencySignalScore=1min(100,deltaPingMs)/100\text{latencySignalScore} = 1 - \min(100, \text{deltaPingMs}) / 100

Occupazione

Un segnale numerico che misura il rapporto di giocatori sul server rispetto alla capacità del server.

occupancySignalScore=# giocatori nel server/serverCapacity\text{occupancySignalScore} = \text{\# giocatori nel server} / \text{serverCapacity}

Storia di gioco

Il valore dell'attributo Storia di gioco è il numero logaritmico in base 10 dei minuti che un giocatore ha giocato in un universo negli ultimi 28 giorni. Questo segnale numerico confronta il valore medio logaritmico in base 10 della Storia di gioco dei giocatori nel server con il valore della Storia di gioco del giocatore che si unisce. Questo segnale ha una differenza massima rilevante di 4.6. Il punteggio del segnale è inversamente correlato alla differenza di storia di gioco, il che significa che differenze di storia di gioco più basse hanno punteggi più alti.

playHistorySignalScore=1min(4.6,playHistoryDifference/4.6)\text{playHistorySignalScore} = 1 - \min(4.6, \text{playHistoryDifference} / 4.6), dove

playHistoryDifference=avgServerPlayHistoryjoiningPlayerPlayHistory\text{playHistoryDifference} = |\text{avgServerPlayHistory} - \text{joiningPlayerPlayHistory}|

Chat vocale

Un giocatore può avere la chat vocale abilitata o disabilitata. Il segnale Chat vocale è un segnale categoriale che misura il rapporto di giocatori con la stessa impostazione della chat vocale del giocatore che si unisce rispetto al numero di giocatori nel server.

Se un luogo ha la chat vocale disabilitata, il peso del segnale Chat vocale è 0.

voiceChatSignalScore=# giocatori con la stessa impostazione della chat vocale del giocatore che si unisce/# giocatori sul server\text{voiceChatSignalScore} = \text{\# giocatori con la stessa impostazione della chat vocale del giocatore che si unisce} / \text{\# giocatori sul server}

Chat testuale

Un segnale categoriale che misura il rapporto di giocatori nel server che possono chattare con il giocatore che si unisce insieme in comune.

textChatSignalScore=# giocatori possono chattare con il giocatore che si unisce in comune /# giocatori sul server\text{textChatSignalScore} = \text{\# giocatori possono chattare con il giocatore che si unisce in comune } / \text{\# giocatori sul server}

Attributi personalizzati

Gli attributi personalizzati danno accesso ai segnali personalizzati ai dati del giocatore e del server. Per ulteriori informazioni su come creare i tuoi attributi personalizzati, vedere Crea un attributo personalizzato. Per ulteriori informazioni sugli attributi esistenti di Roblox, vedere Attributi esistenti.

AttributoCaratteristiche
GiocatorePersistente

Dati personalizzati del giocatore che persistono nei data store, come il livello o il punteggio di un giocatore all'interno del gioco

Gestito utilizzando le API DataStore
ServerNon persistente e dura solo finché il server è attivo

Dati specifici del server come il livello del server o la modalità di gioco

Gestito utilizzando l'API MatchmakingService
Esempio di attributo del giocatore
local DataStoreService = game:GetService("DataStoreService")
local eloStore = DataStoreService:GetDataStore("PlayerElo")
function onMatchEnded(players: {Player}, winners: {Player}, losers: {Player})
for _, player in players do
local updatedElo = CalculateUpdatedElo(player, winners, losers)
local success, errorMessage = pcall(function()
eloStore:SetAsync(player.UserId, updatedElo)
end)
end
end
Esempio di attributo del server
local MatchmakingService = game:GetService("MatchmakingService")
local RunService = game:GetService("RunService")
if RunService:IsStudio() then
-- Imposta gli attributi iniziali e lo schema per il test
MatchmakingService:InitializeServerAttributesForStudio({
Level = "Avanzato",
Elo = 123.456,
TrainingMode = true
})
end
-- Recupera l'attributo Livello
local currentLevel, errorMessage = MatchmakingService:GetServerAttribute("Level")
if errorMessage then
warn(errorMessage)
else
print("Livello attuale: " .. currentLevel)
end
-- Aggiorna il valore dell'attributo Livello a Avanzato
local success, errorMessage = MatchmakingService:SetServerAttribute("Level", "Avanzato")
if not success then
warn("Impossibile aggiornare l'attributo del server [Livello] a [Avanzato] a causa di errore: " .. errorMessage)
else
print("Impostato con successo [Livello] a [Avanzato]")
end

Segnali personalizzati

I segnali personalizzati sono creati e definiti da te e possono essere numerici o categoriali:

  • I segnali numerici sono numeri. Confrontano la differenza tra l'attributo del giocatore che si unisce e il valore aggregato del server, con differenze maggiori che abbassano o aumentano il punteggio. Ad esempio, più il livello di abilità di un giocatore è vicino al livello di abilità medio del server, più alto è il punteggio del segnale numerico. Questo punteggio viene quindi moltiplicato per il peso del segnale.
  • I segnali categoriali sono stringhe o booleani. Si basano su quanto sia comune l'attributo del giocatore che si unisce rispetto agli altri giocatori nel server. Ad esempio, se una percentuale elevata dei giocatori all'interno di un server ha la stessa lingua preferita del giocatore che si unisce, il punteggio aumenta. Anche questo punteggio viene moltiplicato per il peso del segnale.

Per ulteriori informazioni su come creare i tuoi segnali personalizzati, vedere Crea un segnale personalizzato. Per ulteriori informazioni sui segnali esistenti di Roblox, vedere Segnali esistenti.

Giocatore numerico

Giocatore che si unisce

Minimizza la differenza tra l'attributo medio del giocatore del server e l'attributo del giocatore che si unisce. Differenze superiori a 1000 restituiscono un punteggio del segnale di 0.

Formula del giocatore che si unisce per il segnale numerico del giocatore
local diff = math.abs(server_{aggregation_function}_{attribute_name} - joining_player_{attribute_name})
local score = 1 - math.min(diff / max_relevant_difference, 1)
return score
Esempio del giocatore che si unisce per il segnale numerico del giocatore
local server_average_Elo = 2000
local joining_player_Elo = 1000
local max_relevant_difference = 1500
local diff = math.abs(server_average_Elo - joining_player_Elo)
local score = 1 - math.min(diff / max_relevant_difference, 1)
return score
Valore costante

Minimizza la differenza tra l'attributo medio del giocatore del server e un valore costante di 500. Differenze superiori a 1000 restituiscono un punteggio del segnale di 0.

Formula del valore costante per il segnale numerico del giocatore
local diff = math.abs(server_sum_{attribute_name} + joining_player_{attribute_name} - constant_value)
local score = 1 - math.min(diff / max_relevant_difference, 1)
return score
Esempio del valore costante per il segnale numerico del giocatore
local server_sum_PowerLevel = 4500
local joining_player_PowerLevel = 9901
local max_relevant_difference = 1500
local constant_value = 5000
local diff = math.abs(server_sum_PowerLevel + joining_player_PowerLevel - constant_value)
local score = 1 - math.min(diff / max_relevant_difference, 1)

Giocatore categoriale

Clustering

Massimizza il rapporto di giocatori nel server che hanno lo stesso attributo dell'attributo del giocatore che si unisce.

Formula di clustering per il segnale categoriale del giocatore
local score = num_players_same_{attribute_name} / occupancy
return score
Esempio di clustering per il segnale categoriale del giocatore
local num_players_same_Guild = 15
local occupancy = 19
local score = num_players_same_Guild / occupancy
return score
Diversificazione

Massimizza il rapporto di giocatori nel server che hanno un attributo diverso dall'attributo del giocatore che si unisce.

Formula di diversificazione per il segnale categoriale del giocatore
local score = num_players_same_{attribute_name} / occupancy
return 1 - score
Esempio di diversificazione per il segnale categoriale del giocatore
local num_players_same_RpgClass = 15
local occupancy = 19
local score = num_players_same_RpgClass / occupancy
return score

Server numerico

Giocatore che si unisce

Minimizza la differenza tra l'attributo del server e l'attributo del giocatore che si unisce. Differenze superiori a 1000 restituiscono un punteggio del segnale di 0.

Formula del giocatore che si unisce per il segnale numerico del server
local diff = math.abs(server_{attribute_name} - joining_player_{attribute_name})
local score = 1 - math.min(diff / max_relevant_difference, 1)
return score
Esempio del giocatore che si unisce per il segnale numerico del server
local server_Level = 4500
local joining_player_Level = 9000
local max_relevant_difference = 1500
local diff = math.abs(server_Level - joining_player_Level)
local score = 1 - math.min(diff / max_relevant_difference, 1)
Valore costante

Minimizza la differenza tra il valore dell'attributo del server e un valore costante. Differenze superiori a questo valore costante restituiscono un punteggio del segnale di 0.

Formula del valore costante per il segnale numerico del server
local diff = math.abs(server_{attribute_name} - constant_value)
local score = math.min(diff / max_relevant_difference, 1)
return score
Esempio del valore costante per il segnale numerico del server
local server_GameTime = 500
local max_relevant_difference = 1000
local constant_value = 1000
local diff = math.abs(server_GameTime - constant_value)
local score = math.min(diff / max_relevant_difference, 1)

Server categoriale

Confronta con il giocatore che si unisce

Il punteggio è 1 quando il valore dell'attributo del server (ad esempio, Modalità di gioco) è uguale al valore dell'attributo del giocatore (ad esempio, Modalità di gioco preferita). Altrimenti, il punteggio del segnale è 0.

Formula del giocatore che si unisce per il segnale categoriale del server
if server_{attribute_name} == joining_player_{attribute_name} then
return 1
else
return 0
end
Esempio del giocatore che si unisce per il segnale categoriale del server
local server_GameMode = "Survival"
local joining_player_GameMode = "Survival"
if server_GameMode == joining_player_GameMode then
return 1
else
return 0
end
Confronta con valore costante

Il punteggio è 1 quando il valore dell'attributo del server è uguale a un valore costante di vero. Altrimenti, il punteggio del segnale è 0.

Formula del valore costante per il segnale categoriale del server
if server_{attribute_name} == constant_value then
return 1
else
return 0
end
Esempio del valore costante per il segnale categoriale del server
local server_GameNotStarted = true
if server_GameNotStarted == true then
return 1
else
return 0
end
© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.