คุณลักษณะและสัญญาณ

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

คุณลักษณะที่มีอยู่

การกำหนดค่าการจับคู่ของ Roblox เริ่มต้นใช้สัญญาณที่อิงจากคุณลักษณะที่มีอยู่ เช่น ตำแหน่งของผู้เล่น กลุ่มอายุ และความหน่วงเวลา

ในการใช้ข้อมูลสำหรับการจับคู่ที่ Roblox ไม่ได้รวมไว้ในค่าคอนฟิกเริ่มต้น คุณจำเป็นต้องสร้าง คุณลักษณะเฉพาะ และ สัญญาณเฉพาะ

คุณลักษณะประเภทคำอธิบาย
ความหน่วงเวลาของผู้เล่นที่คาดการณ์ตัวเลขความหน่วงเวลาที่คาดการณ์ของผู้เล่นในเซิร์ฟเวอร์
มีเพื่อนหมวดหมู่เซิร์ฟเวอร์มีเพื่อนหรือผู้เล่นคนอื่นที่อยู่ในที่อยู่ IP เดียวกับผู้เล่นที่เข้าร่วมหรือไม่
เปิดใช้การแชทด้วยเสียงหมวดหมู่ผู้เล่นเปิดใช้การแชทด้วยเสียงหรือไม่
อายุผู้เล่นตัวเลขอายุของผู้เล่น
ประเภทอุปกรณ์ผู้เล่นหมวดหมู่ประเภทอุปกรณ์ของผู้เล่น สามารถเป็นอุปกรณ์มือถือ คอมพิวเตอร์ แท็บเล็ต คอนโซล หรืออุปกรณ์ VR
ภาษาผู้เล่นหมวดหมู่ภาษาของผู้เล่น
ประวัติการเล่นของผู้เล่นตัวเลขจำนวน log-10 ของนาทีที่ผู้เล่นได้เล่นในจักรวาลในช่วง 28 วันที่ผ่านมา
การเข้าคิวของเซิร์ฟเวอร์ตัวเลขจำนวนผู้เล่นในเซิร์ฟเวอร์
กลุ่มแชทข้อความของผู้เล่นหมวดหมู่กลุ่มแชทข้อความของผู้เล่นที่พวกเขาสามารถแชทข้อความด้วยกันได้

สัญญาณที่มีอยู่

ต่อไปนี้คือสัญญาณที่กำหนดโดย Roblox ซึ่งได้แก่ตามคุณลักษณะของ Roblox:

สัญญาณคำอธิบาย
อายุความแตกต่างระหว่างอายุเฉลี่ยของผู้เล่นในเซิร์ฟเวอร์กับอายุของผู้เล่นที่เข้าร่วม โดยมีความแตกต่างที่มีความสำคัญสูงสุดคือ 25
ประเภทอุปกรณ์อัตราส่วนของผู้เล่นในเซิร์ฟเวอร์ที่มีประเภทอุปกรณ์เดียวกันกับผู้เล่นที่เข้าร่วม
เพื่อนจำนวนคนในเซิร์ฟเวอร์ที่เป็นเพื่อนกับผู้เล่นที่เข้าร่วมหรือที่มีที่อยู่ IP ร่วมกันกับผู้เล่นที่เข้าร่วม 1 หากมีผู้เล่นที่พึงประสงค์ 0 ถ้าไม่มี
ความหน่วงเวลาความหน่วงเวลาโดยประมาณของผู้เล่นสำหรับเซิร์ฟเวอร์ โดยมีค่าที่เกี่ยวข้องสูงสุดเท่ากับ 250
ภาษาอัตราส่วนของผู้เล่นในเซิร์ฟเวอร์ที่มีภาษาที่เหมือนกันกับผู้เล่นที่เข้าร่วม
การเข้าคิวอัตราส่วนของผู้เล่นในเซิร์ฟเวอร์เมื่อเปรียบเทียบกับขีดความสามารถของเซิร์ฟเวอร์
ประวัติการเล่นความแตกต่างระหว่างประวัติการเล่นเฉลี่ยในเซิร์ฟเวอร์กับประวัติการเล่นของผู้เล่นที่เข้าร่วม โดยมีความแตกต่างที่มีความสำคัญสูงสุดคือ 4.6
แชทด้วยเสียงอัตราส่วนของผู้เล่นในเซิร์ฟเวอร์ที่เปิดใช้การแชทด้วยเสียง
แชทข้อความอัตราส่วนของผู้เล่นในเซิร์ฟเวอร์ที่สามารถแชทข้อความกับผู้เล่นที่เข้าร่วมได้

อายุ

สัญญาณตัวเลขที่เปรียบเทียบอายุเฉลี่ยของผู้เล่นในเซิร์ฟเวอร์กับอายุของผู้เล่นที่เข้าร่วม โดยมีความแตกต่างที่สัมพันธ์สูงสุดคือ 25 คะแนนสัญญาณนี้มีความสัมพันธ์ในทางกลับกันกับความแตกต่างของอายุ โดยความแตกต่างที่น้อยกว่าจะมีคะแนนที่สูงกว่า

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

โดยที่

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

ประเภทอุปกรณ์

สัญญาณหมวดหมู่ที่วัดอัตราส่วนของผู้เล่นในเซิร์ฟเวอร์ที่มีประเภทอุปกรณ์เดียวกันกับผู้เล่นที่เข้าร่วม ประเภทอุปกรณ์รวมถึง: คอมพิวเตอร์ อุปกรณ์มือถือ แท็บเล็ต คอนโซล และอุปกรณ์ VR

deviceTypeSignalScore=# players with same device as joining player/# players on the server\text{deviceTypeSignalScore} = \text{\# players with same device as joining player} / \text{\# players on the server}

เพื่อน

ผู้เล่นที่พึงประสงค์คือผู้เล่นที่เป็นเพื่อนกับผู้เล่นที่เข้าร่วมหรือมีที่อยู่ IP ร่วมกันกับผู้เล่นที่เข้าร่วม สัญญาณเพื่อนเป็นสัญญาณหมวดหมู่ที่มีคะแนน 1 เมื่อมีผู้เล่นที่พึงประสงค์ในเซิร์ฟเวอร์และคะแนน 0 เมื่อไม่มีผู้เล่นที่พึงประสงค์ในเซิร์ฟเวอร์

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

สัญญาณเพื่อนยังสามารถพิจารณาเป็นสัญญาณตัวเลขที่มีค่าที่เกี่ยวข้องสูงสุดเท่ากับ 1

friendsSignalScore=min(# preferred players in server,1)/1\text{friendsSignalScore} = \min(\text{\# preferred players in server}, 1) / 1

ภาษา

สัญญาณหมวดหมู่ที่วัดอัตราส่วนของผู้เล่นในเซิร์ฟเวอร์ที่มีการตั้งค่าภาษาเดียวกันกับผู้เล่นที่เข้าร่วม

languageSignalScore=# players with same language setting as joining player/# players on the server\text{languageSignalScore} = \text{\# players with same language setting as joining player} / \text{\# players on the server}

ความหน่วงเวลา

สัญญาณตัวเลขที่วัดเวลาหน่วงด้วยการประมาณในมิลลิวินาทีของผู้เล่นที่เข้าร่วมหากพวกเขาเล่นในเซิร์ฟเวอร์ สัญญาณนี้มีค่าที่เกี่ยวข้องสูงสุดเท่ากับ 250 มิลลิวินาที คะแนนสัญญาณนี้มีความสัมพันธ์ในทางกลับกันกับ ping หมายถึงค่า ping ที่ต่ำกว่าจะมีคะแนนที่สูงกว่า

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

การเข้าคิว

สัญญาณตัวเลขที่วัดอัตราส่วนของผู้เล่นในเซิร์ฟเวอร์เมื่อเปรียบเทียบกับขีดความสามารถของเซิร์ฟเวอร์

occupancySignalScore=# players in server/serverCapacity\text{occupancySignalScore} = \text{\# players in server} / \text{serverCapacity}

ประวัติการเล่น

ค่าอัตราค่าใช้จ่ายการเล่นคือจำนวน log-10 ของนาทีที่ผู้เล่นได้เล่นในจักรวาลในช่วง 28 วันที่ผ่านมา สัญญาณตัวเลขนี้เปรียบเทียบค่าใช้จ่ายการเล่นเฉลี่ย log-10 ของผู้เล่นในเซิร์ฟเวอร์กับค่าประวัติการเล่นของผู้เล่นที่เข้าร่วม โดยสัญญาณนี้มีความแตกต่างที่สำคัญสูงสุด 4.6 คะแนนสัญญาณนี้มีความสัมพันธ์ในทางกลับกันกับความแตกต่างของประวัติการเล่น โดยความแตกต่างที่น้อยกว่าจะมีคะแนนที่สูงกว่า

playHistorySignalScore=1min(4.6,playHistoryDifference/4.6)\text{playHistorySignalScore} = 1 - \min(4.6, \text{playHistoryDifference} / 4.6) โดยที่

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

การแชทด้วยเสียง

ผู้เล่นสามารถเปิดหรือปิดการแชทด้วยเสียง สัญญาณการแชทด้วยเสียงเป็นสัญญาณหมวดหมู่ที่วัดอัตราส่วนของผู้เล่นที่มีการตั้งค่าการแชทด้วยเสียงเดียวกันกับผู้เล่นที่เข้าร่วมต่อจำนวนผู้เล่นในเซิร์ฟเวอร์

หากสถานที่ปิดการแชทด้วยเสียง น้ำหนักของสัญญาณการแชทด้วยเสียงจะเป็น 0

voiceChatSignalScore=# players with same voice chat setting as joining player/# players on the server\text{voiceChatSignalScore} = \text{\# players with same voice chat setting as joining player} / \text{\# players on the server}

แชทข้อความ

สัญญาณหมวดหมู่ที่วัดอัตราส่วนของผู้เล่นในเซิร์ฟเวอร์ที่สามารถแชทข้อความกับผู้เล่นที่เข้าร่วมได้ร่วมกัน

textChatSignalScore=# players can text with the joining player in common /# players on the server\text{textChatSignalScore} = \text{\# players can text with the joining player in common } / \text{\# players on the server}

คุณลักษณะเฉพาะ

คุณลักษณะเฉพาะช่วยให้สัญญาณเฉพาะเข้าถึงข้อมูลผู้เล่นและเซิร์ฟเวอร์ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างคุณลักษณะเฉพาะของคุณเอง โปรดดูที่ สร้างคุณลักษณะเฉพาะ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคุณลักษณะของ Roblox ที่มีอยู่ โปรดดูที่ คุณลักษณะที่มีอยู่.

คุณลักษณะลักษณะเฉพาะ
ผู้เล่นถาวร

ข้อมูลผู้เล่นที่กำหนดเองที่ยังคงอยู่ในที่จัดเก็บข้อมูล เช่น ระดับหรือคะแนนของผู้เล่นภายในเกม

จัดการโดยใช้ API DataStore
เซิร์ฟเวอร์ไม่ถาวรและอยู่ได้ในช่วงเวลาที่เซิร์ฟเวอร์ทำงาน

ข้อมูลเฉพาะเซิร์ฟเวอร์ เช่น ระดับเซิร์ฟเวอร์หรือโหมดเกม

จัดการโดยใช้ API MatchmakingService
ตัวอย่างคุณลักษณะของผู้เล่น

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
ตัวอย่างคุณลักษณะของเซิร์ฟเวอร์

local MatchmakingService = game:GetService("MatchmakingService")
local RunService = game:GetService("RunService")
if RunService:IsStudio() then
-- ตั้งค่าอัตราส่วนเริ่มต้นและโครงสร้างสำหรับการทดสอบ
MatchmakingService:InitializeServerAttributesForStudio({
Level = "ขั้นสูง",
Elo = 123.456,
TrainingMode = true
})
end
-- ดึงค่าคุณลักษณะระดับ
local currentLevel, errorMessage = MatchmakingService:GetServerAttribute("Level")
if errorMessage then
warn(errorMessage)
else
print("ระดับปัจจุบัน: " .. currentLevel)
end
-- ปรับค่าอัตราส่วนระดับเป็นขั้นสูง
local success, errorMessage = MatchmakingService:SetServerAttribute("Level", "ขั้นสูง")
if not success then
warn("ไม่สามารถปรับอัตราส่วนของเซิร์ฟเวอร์ [Level] เป็น [ขั้นสูง] ได้เนื่องจากข้อผิดพลาด: " .. errorMessage)
else
print("ตั้งค่า [Level] เป็น [ขั้นสูง] สำเร็จ")
end

สัญญาณเฉพาะ

สัญญาณเฉพาะที่คุณสร้างและกำหนดสามารถเป็นตัวเลขหรือหมวดหมู่:

  • สัญญาณตัวเลขเป็นตัวเลข เปรียบเทียบความแตกต่างระหว่างคุณลักษณะของผู้เล่นที่เข้าร่วมและค่ารวมของเซิร์ฟเวอร์ โดยความแตกต่างที่มากขึ้นจะลดคะแนนลงหรือเพิ่มคะแนนขึ้น ตัวอย่างเช่น ยิ่งระดับทักษะของผู้เล่นใกล้เคียงกับระดับทักษะเฉลี่ยของเซิร์ฟเวอร์มากเท่าใด คะแนนของสัญญาณตัวเลขก็จะสูงขึ้น คะแนนนี้จะถูกคูณด้วยน้ำหนักของสัญญาณ
  • สัญญาณหมวดหมู่เป็นสตริงหรือตรรกะ พวกเขาขึ้นอยู่กับความสมบูรณ์ว่าคุณลักษณะของผู้เล่นที่เข้าร่วมเป็นที่นิยมเมื่อเปรียบเทียบกับผู้เล่นคนอื่นในเซิร์ฟเวอร์ ตัวอย่างเช่น หากเปอร์เซ็นต์สูงของผู้เล่นในเซิร์ฟเวอร์มีภาษาที่ชื่นชอบเหมือนผู้เล่นที่เข้าร่วม คะแนนก็จะเพิ่มขึ้น คะแนนนี้จะถูกคูณด้วยน้ำหนักของสัญญาณเช่นกัน

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างสัญญาณเฉพาะของคุณเอง โปรดดูที่ สร้างสัญญาณเฉพาะ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสัญญาณ Roblox ที่มีอยู่ โปรดดูที่ สัญญาณที่มีอยู่.

ตัวเลขของผู้เล่น

ผู้เล่นที่เข้าร่วม

ลดความแตกต่างระหว่างอัตราส่วนเฉลี่ยของผู้เล่นในเซิร์ฟเวอร์กับคุณลักษณะของผู้เล่นที่เข้าร่วม ความแตกต่างที่เกิน 1000 จะส่งคืนคะแนนสัญญาณเป็น 0

สูตรผู้เล่นที่เข้าร่วมสำหรับสัญญาณตัวเลขของผู้เล่น

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
ตัวอย่างผู้เล่นที่เข้าร่วมสำหรับสัญญาณตัวเลขของผู้เล่น

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
ค่าคงที่

ลดความแตกต่างระหว่างอัตราส่วนเฉลี่ยของผู้เล่นในเซิร์ฟเวอร์กับค่าคงที่ 500 ความแตกต่างที่เกิน 1000 จะส่งคืนคะแนนสัญญาณเป็น 0

สูตรค่าคงที่สำหรับสัญญาณตัวเลขของผู้เล่น

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
ตัวอย่างค่าคงที่สำหรับสัญญาณตัวเลขของผู้เล่น

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)

หมวดหมู่ของผู้เล่น

การจัดกลุ่ม

เพิ่มอัตราส่วนของผู้เล่นในเซิร์ฟเวอร์ที่มีคุณลักษณะเดียวกันกับคุณลักษณะของผู้เล่นที่เข้าร่วม

สูตรการจัดกลุ่มสำหรับสัญญาณหมวดหมู่ของผู้เล่น

local score = num_players_same_{attribute_name} / occupancy
return score
ตัวอย่างการจัดกลุ่มสำหรับสัญญาณหมวดหมู่ของผู้เล่น

local num_players_same_Guild = 15
local occupancy = 19
local score = num_players_same_Guild / occupancy
return score
การกระจาย

เพิ่มอัตราส่วนของผู้เล่นในเซิร์ฟเวอร์ที่มีคุณลักษณะที่แตกต่างจากคุณลักษณะของผู้เล่นที่เข้าร่วม

สูตรการกระจายสำหรับสัญญาณหมวดหมู่ของผู้เล่น

local score = num_players_same_{attribute_name} / occupancy
return 1 - score
ตัวอย่างการกระจายสำหรับสัญญาณหมวดหมู่ของผู้เล่น

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

ตัวเลขของเซิร์ฟเวอร์

ผู้เล่นที่เข้าร่วม

ลดความแตกต่างระหว่างคุณลักษณะของเซิร์ฟเวอร์กับคุณลักษณะของผู้เล่นที่เข้าร่วม ความแตกต่างที่เกิน 1000 จะส่งคืนคะแนนสัญญาณเป็น 0

สูตรผู้เล่นที่เข้าร่วมสำหรับสัญญาณตัวเลขของเซิร์ฟเวอร์

local diff = math.abs(server_{attribute_name} - joining_player_{attribute_name})
local score = 1 - math.min(diff / max_relevant_difference, 1)
return score
ตัวอย่างผู้เล่นที่เข้าร่วมสำหรับสัญญาณตัวเลขของเซิร์ฟเวอร์

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)
ค่าคงที่

ลดความแตกต่างระหว่างค่าอัตราส่วนของเซิร์ฟเวอร์กับค่าคงที่ ความแตกต่างที่เกินค่าคงที่นี้จะส่งคืนคะแนนสัญญาณเป็น 0

สูตรค่าคงที่สำหรับสัญญาณตัวเลขของเซิร์ฟเวอร์

local diff = math.abs(server_{attribute_name} - constant_value)
local score = math.min(diff / max_relevant_difference, 1)
return score
ตัวอย่างค่าคงที่สำหรับสัญญาณตัวเลขของเซิร์ฟเวอร์

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)

หมวดหมู่ของเซิร์ฟเวอร์

เปรียบเทียบกับผู้เล่นที่เข้าร่วม

คะแนนคือ 1 เมื่อค่าอัตราส่วนในเซิร์ฟเวอร์ (เช่น โหมดเกม) เท่ากับค่าอัตราส่วนของผู้เล่น (เช่น โหมดเกมที่ชื่นชอบ) มิฉะนั้น คะแนนสัญญาณจะเป็น 0

สูตรผู้เล่นที่เข้าร่วมสำหรับสัญญาณหมวดหมู่ของเซิร์ฟเวอร์

if server_{attribute_name} == joining_player_{attribute_name} then
return 1
else
return 0
end
ตัวอย่างผู้เล่นที่เข้าร่วมสำหรับสัญญาณหมวดหมู่ของเซิร์ฟเวอร์

local server_GameMode = "เอาชีวิตรอด"
local joining_player_GameMode = "เอาชีวิตรอด"
if server_GameMode == joining_player_GameMode then
return 1
else
return 0
end
เปรียบเทียบกับค่าคงที่

คะแนนคือ 1 เมื่อค่าอัตราส่วนในเซิร์ฟเวอร์เท่ากับค่าคงที่ที่เป็นจริง มิฉะนั้น คะแนนสัญญาณจะเป็น 0

สูตรค่าคงที่สำหรับสัญญาณหมวดหมู่ของเซิร์ฟเวอร์

if server_{attribute_name} == constant_value then
return 1
else
return 0
end
ตัวอย่างค่าคงที่สำหรับสัญญาณหมวดหมู่ของเซิร์ฟเวอร์

local server_GameNotStarted = true
if server_GameNotStarted == true then
return 1
else
return 0
end
©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ