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

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

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

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

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

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

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

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

สัญญาณคำอธิบาย
อายุความแตกต่างระหว่างอายุเฉลี่ยของผู้เล่นในเซิร์ฟเวอร์กับอายุของผู้เล่นที่เข้าร่วม โดยมีความแตกต่างที่เกี่ยวข้องสูงสุด 25
ประเภทอุปกรณ์อัตราส่วนของผู้เล่นในเซิร์ฟเวอร์ที่มีประเภทอุปกรณ์เดียวกันกับผู้เล่นที่เข้าร่วม
เพื่อนจำนวนคนในเซิร์ฟเวอร์ที่เป็นเพื่อนกับผู้เล่นที่เข้าร่วมหรือที่มีที่อยู่ IP เดียวกันกับผู้เล่นที่เข้าร่วม 1 หากมีผู้เล่นที่ต้องการ 0 หากไม่มี
ความหน่วงความหน่วงของผู้เล่นที่เข้าร่วมสำหรับเซิร์ฟเวอร์ ซึ่งเป็นความหน่วงที่ประมาณการเหนือความหน่วงต่ำสุดที่ผู้เล่นสามารถทำได้ในศูนย์ข้อมูลที่ดีที่สุดที่เข้าถึงได้ โดยมีค่าที่เกี่ยวข้องสูงสุด 100
ภาษาอัตราส่วนของผู้เล่นในเซิร์ฟเวอร์ที่มีภาษาที่เหมือนกับผู้เล่นที่เข้าร่วม
การเข้าพักอัตราส่วนของผู้เล่นในเซิร์ฟเวอร์เมื่อเปรียบเทียบกับความจุของเซิร์ฟเวอร์
ประวัติการเล่นความแตกต่างระหว่างประวัติการเล่นเฉลี่ยในเซิร์ฟเวอร์กับประวัติการเล่นของผู้เล่นที่เข้าร่วม โดยมีความแตกต่างที่เกี่ยวข้องสูงสุด 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}

ความหน่วง

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

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

การเข้าพัก

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

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

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

ค่าคุณลักษณะประวัติการเล่นคือจำนวนที่เล่นในจักรวาลในช่วง 28 วันที่ผ่านมาในลอการิธึมฐาน 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 = "Advanced",
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", "Advanced")
if not success then
warn("ไม่สามารถอัปเดตคุณลักษณะเซิร์ฟเวอร์ [Level] เป็น [Advanced] ได้เนื่องจากข้อผิดพลาด: " .. errorMessage)
else
print("ตั้งค่า [Level] เป็น [Advanced] สำเร็จ")
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 = "Survival"
local joining_player_GameMode = "Survival"
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 เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ