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 della 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 la matchmaking che Roblox non include automaticamente nella sua configurazione predefinita, devi creare attributi personalizzati e segnali personalizzati.

AttributoTipoDescrizione
Latenza Stimata del GiocatoreNumericoLa latenza stimata di un giocatore in un server.
Ha AmiciCategoricoSe un server ha un amico o un altro giocatore con lo stesso indirizzo IP del giocatore che si unisce.
Chat vocale abilitataCategoricoSe un giocatore ha abilitato la chat vocale.
Età del GiocatoreNumericoL'età del giocatore.
Tipo di Dispositivo del GiocatoreCategoricoIl tipo di dispositivo del giocatore. Può essere un dispositivo mobile, un computer, un tablet, una console o un dispositivo VR.
Lingua del GiocatoreCategoricoLa lingua del giocatore.
Storia di Gioco del GiocatoreNumericoIl numero di minuti (in logaritmo base 10) che un giocatore ha giocato in un universo nei 28 giorni scorsi.
Occupazione del ServerNumericoIl numero di giocatori in un server.
Gruppo Chat di Testo del GiocatoreCategoricoIl gruppo chat di testo 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 con il giocatore che si unisce o che condividono un indirizzo IP con il giocatore che si unisce. 1 se c'è un giocatore preferito, 0 altrimenti.
LatenzaLa latenza stimata del giocatore per un server, con un valore massimo rilevante di 250.
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 di TestoIl 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à inferiori 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 categorico che misura il rapporto di giocatori nel 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 nel server\text{deviceTypeSignalScore} = \text{\# giocatori con lo stesso dispositivo del giocatore che si unisce} / \text{\# giocatori nel 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 categorico 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 categorico 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 nel server\text{languageSignalScore} = \text{\# giocatori con la stessa impostazione della lingua del giocatore che si unisce} / \text{\# giocatori nel server}

Latenza

Un segnale numerico che misura il tempo di ping stimato in millisecondi del giocatore che si unisce se giocasse su un server. Questo segnale ha un valore massimo rilevante di 250 millisecondi. Il punteggio del segnale è inversamente correlato al ping, il che significa che valori di ping inferiori hanno punteggi più alti.

latencySignalScore=1min(250,estimatedPingMs)/250\text{latencySignalScore} = 1 - \min(250, \text{estimatedPingMs}) / 250

Occupazione

Un segnale numerico che misura il rapporto di giocatori nel 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 di minuti che un giocatore ha giocato in un universo nei 28 giorni scorsi. Questo segnale numerico confronta il valore medio logaritmico 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 inferiori 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 categorico 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 della Chat Vocale è 0.

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

Chat di Testo

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

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

Attributi personalizzati

Gli attributi personalizzati consentono ai segnali personalizzati di accedere ai dati dei giocatori 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 negli archivi dati, 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 di Livello
local currentLevel, errorMessage = MatchmakingService:GetServerAttribute("Level")
if errorMessage then
warn(errorMessage)
else
print("Livello attuale: " .. currentLevel)
end
-- Aggiorna il valore dell'attributo di Livello a Avanzato
local success, errorMessage = MatchmakingService:SetServerAttribute("Level", "Avanzato")
if not success then
warn("Impossibile aggiornare l'attributo del server [Level] a [Avanzato] a causa di errore: " .. errorMessage)
else
print("Impostato correttamente [Level] a [Avanzato]")
end

Segnali personalizzati

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

  • 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 si avvicina al livello di abilità medio del server, più alto sarà il punteggio del segnale numerico. Questo punteggio viene quindi moltiplicato per il peso del segnale.
  • I segnali categorici 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.

Numerico del Giocatore

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 di 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 di 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)

Categoriale del Giocatore

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 categorico del giocatore

local score = num_players_same_{attribute_name} / occupancy
return score
Esempio di clustering per il segnale categorico 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 categorico del giocatore

local score = num_players_same_{attribute_name} / occupancy
return 1 - score
Esempio di diversificazione per il segnale categorico del giocatore

local num_players_same_RpgClass = 15
local occupancy = 19
local score = num_players_same_RpgClass / occupancy
return score

Numerico del Server

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 di 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 di 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)

Categoriale del Server

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 categorico del server

if server_{attribute_name} == joining_player_{attribute_name} then
return 1
else
return 0
end
Esempio di giocatore che si unisce per il segnale categorico 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 un 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 categorico del server

if server_{attribute_name} == constant_value then
return 1
else
return 0
end
Esempio di valore costante per il segnale categorico 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.