Mevcut özellikler
Varsayılan Roblox eşleştirme yapılandırması, oyuncu konumu, yaş grubu ve gecikme gibi mevcut özelliklere dayalı sinyalleri kullanır.
Roblox'un varsayılan yapılandırmasında otomatik olarak dahil etmediği verileri eşleştirmek için, özel özellikler ve özel sinyaller oluşturmanız gerekir.
| Özellik | Tür | Açıklama |
|---|---|---|
| Tahmini Oyuncu Gecikmesi | Sayısal | Bir sunucudaki bir oyuncunun tahmini gecikmesi. |
| Arkadaş Var mı | Kategorik | Bir sunucuda katılan oyuncuyla aynı IP adresine sahip bir arkadaş veya başka bir oyuncunun olup olmadığı. |
| Sesli Sohbet Etkin | Kategorik | Bir oyuncunun sesli sohbetinin etkin olup olmadığı. |
| Oyuncu Yaşı | Sayısal | Oyuncunun yaşı. |
| Oyuncu Cihaz Türü | Kategorik | Oyuncunun cihaz türü. Mobil cihaz, bilgisayar, tablet, konsol veya VR cihazı olabilir. |
| Oyuncu Dili | Kategorik | Oyuncunun dili. |
| Oyuncu Oyun Geçmişi | Sayısal | Bir oyuncunun son 28 gün içinde bir evrende oynadığı dakika sayısının log-10'u. |
| Sunucu Dolu Olma Oranı | Sayısal | Bir sunucudaki oyuncu sayısı. |
| Oyuncu Metin Sohbet Grubu | Kategorik | Oyuncunun birlikte metin sohbeti yapabileceği metin sohbet grubu. |
Mevcut sinyaller
Aşağıdakiler, Roblox özelliklerine dayalı olarak tanımlanan sinyallerdir:
| Sinyal | Açıklama |
|---|---|
| Yaş | Sunucudaki oyuncuların ortalama yaşı ile katılan oyuncunun yaşı arasındaki fark, en fazla 25 ile ilgili farklılık. |
| Cihaz Türü | Sunucudaki oyuncuların katılan oyuncuyla aynı cihaz türüne sahip olma oranı. |
| Arkadaşlar | Sunucudaki katılan oyuncuyla arkadaş olan veya katılan oyuncuyla aynı IP adresini paylaşan kişi sayısı. Tercih edilen bir oyuncu varsa 1, aksi takdirde 0. |
| Gecikme | Bir sunucudaki tahmini oyuncu gecikmesi, en fazla 250 ile ilgili değer. |
| Dil | Sunucudaki oyuncuların katılan oyuncuyla aynı dile sahip olma oranı. |
| Dolu Olma Oranı | Sunucudaki oyuncu sayısının sunucunun kapasitesine oranı. |
| Oyun Geçmişi | Sunucudaki ortalama oyun geçmişi ile katılan oyuncunun oyun geçmişi arasındaki fark, en fazla 4.6 ile ilgili farklılık. |
| Sesli Sohbet | Sunucudaki sesli sohbetin etkin olduğu oyuncuların oranı. |
| Metin Sohbeti | Sunucudaki katılan oyuncuyla birlikte metin sohbeti yapabilen oyuncuların oranı. |
Yaş
Katılan oyuncunun yaşı ile sunucudaki oyuncuların ortalama yaşı arasındaki farkı karşılaştıran sayısal bir sinyal. Bu sinyalin en fazla 25 ile ilgili farkı vardır. Sinyal puanı, yaş farkıyla ters orantılıdır; yani daha düşük yaş farklılıkları daha yüksek puana sahiptir.
burada
Cihaz Türü
Katılan oyuncuyla aynı cihaz türüne sahip sunucudaki oyuncuların oranını ölçen kategorik bir sinyal. Cihaz türleri arasında: Bilgisayar, mobil cihaz, tablet, konsol ve VR cihazı bulunmaktadır.
Arkadaşlar
Tercih edilen bir oyuncu, katılan oyuncuyla arkadaş olan veya katılan oyuncuyla aynı IP adresini paylaşan bir oyuncudur. Arkadaşlar sinyali, sunucuda bir tercih edilen oyuncu olduğunda 1 puan, sunucuda tercih edilen oyuncu olmadığında 0 puan alan kategorik bir sinyaldir.
Arkadaşlar sinyali aynı zamanda maksimum ilgili değeri 1 olan sayısal bir sinyal olarak da kabul edilebilir.
Dil
Katılan oyuncuyla aynı dil ayarına sahip sunucudaki oyuncuların oranını ölçen kategorik bir sinyal.
Gecikme
Eğer katılan oyuncu bir sunucuda oynarsaydı, katılan oyuncunun gecikme süresinin tahmini ping süresini milisaniye cinsinden ölçen sayısal bir sinyal. Bu sinyalin maksimum ilgili değeri 250 milisaniyedir. Sinyal puanı ping ile ters orantılıdır; yani daha düşük ping değerleri daha yüksek puanlar alır.
Dolu Olma Oranı
Bir sunucudaki oyuncu sayısının sunucunun kapasitesine oranını ölçen sayısal bir sinyal.
Oyun Geçmişi
Oyun Geçmişi özellik değeri, bir oyuncunun son 28 gün içinde bir evrende oynadığı dakika sayısının log-10'udur. Bu sayısal sinyal, sunucudaki oyuncuların ortalama log-10 Oyun Geçmişi değeri ile katılan oyuncunun Oyun Geçmişi değerini karşılaştırır. Bu sinyalin en fazla 4.6 ile ilgili farkı vardır. Sinyal puanı, oyun geçmişi farkıyla ters orantılıdır; yani daha düşük oyun geçmişi farklılıkları daha yüksek puanlar alır.
, burada
Sesli Sohbet
Bir oyuncunun sesli sohbetinin etkin veya devre dışı olması mümkündür. Sesli Sohbet sinyali, katılan oyuncuyla aynı sesli sohbet ayarına sahip oyuncuların oranını sunucudaki oyuncu sayısına ölçen kategorik bir sinyaldir.
Eğer bir yer sesli sohbet devre dışıysa, Sesli Sohbet sinyalinin ağırlığı 0'dır.
Metin Sohbeti
Katılan oyuncuyla birlikte metin sohbeti yapabilen oyuncuların oranını ölçen kategorik bir sinyal.
Özel özellikler
Özel özellikler, özel sinyallere oyuncu ve sunucu verilerine erişim sağlar. Kendi özel özelliklerinizi oluşturma hakkında daha fazla bilgi için Özel bir özellik oluşturun sayfasına göz atın. Mevcut Roblox özellikleri hakkında daha fazla bilgi için Mevcut özellikler sayfasına göz atın.
| Özellik | Özellikler |
|---|---|
| Oyuncu | Kalıcı Oyun içindeki bir oyuncunun seviyesi veya puanı gibi veri depolarında kalıcı olan özel oyuncu verisi DataStore API'leri kullanılarak yönetilir |
| Sunucu | Kalıcı değildir ve yalnızca sunucu aktif olduğu sürece devam eder Sunucu düzeyi veya oyun modu gibi sunucuya özel veriler MatchmakingService API'si kullanılarak yönetilir |
Oyuncu özelliği örneği
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
Sunucu özelliği örneğilocal MatchmakingService = game:GetService("MatchmakingService")local RunService = game:GetService("RunService")if RunService:IsStudio() then-- Test için başlangıç özelliklerini ve şemasını ayarlayıpMatchmakingService:InitializeServerAttributesForStudio({Level = "İleri Seviye",Elo = 123.456,TrainingMode = true})end-- Level özelliğini alırlocal currentLevel, errorMessage = MatchmakingService:GetServerAttribute("Level")if errorMessage thenwarn(errorMessage)elseprint("Mevcut seviye: " .. currentLevel)end-- Level özellik değerini İleri Seviye olarak güncellerlocal success, errorMessage = MatchmakingService:SetServerAttribute("Level", "İleri Seviye")if not success thenwarn("Sunucu özelliğini [Level] [İleri Seviye] olarak güncelleme başarısız oldu: " .. errorMessage)elseprint("Başarıyla [Level] [İleri Seviye] olarak ayarlandı.")end
Özel sinyaller
Özel sinyalleri siz oluşturup tanımlayabilirsiniz ve bu sinyaller sayısal veya kategorik olabilir:
- Sayısal sinyaller sayılardır. Katılan oyuncunun özelliği ile sunucunun toplanmış değeri arasındaki farkı karşılaştırır; daha büyük farklılıklar puanı düşürür veya artırır. Örneğin, bir oyuncunun beceri düzeyi sunucunun ortalama beceri düzeyine ne kadar yakınsa, sayısal sinyalin puanı o kadar yüksek olur. Bu puan daha sonra sinyalin ağırlığı ile çarpılır.
- Kategorik sinyaller ise dizeler veya boolean'lardır. Katılan oyuncunun özelliğinin sunucudaki diğer oyuncularla karşılaştırıldığında ne kadar yaygın olduğuna dayanır. Örneğin, sunucudaki oyuncuların yüksek bir yüzdesi katılan oyuncuyla aynı tercih edilen dile sahipse, puan artar. Bu puan daha sonra ayrıca sinyalin ağırlığı ile çarpılır.
Kendi özel sinyallerinizi oluşturma hakkında daha fazla bilgi için Özel bir sinyal oluşturun sayfasına göz atın. Mevcut Roblox sinyalleri hakkında daha fazla bilgi için Mevcut sinyaller sayfasına göz atın.
Oyuncu sayısal
Katılan oyuncu
Sunucunun ortalama oyuncu özelliği ile katılan oyuncunun özelliği arasındaki farkı minimize eder. 1000'in üzerindeki farklılıklar 0 sinyal puanı döndürür.
Katılan oyuncu formülü için oyuncu sayısal sinyalilocal diff = math.abs(server_{aggregation_function}_{attribute_name} - joining_player_{attribute_name})local score = 1 - math.min(diff / max_relevant_difference, 1)return score
Katılan oyuncu örneği için oyuncu sayısal sinyalilocal sunucu_ortalama_Elo = 2000local katılan_oyuncu_Elo = 1000local max_ilişkili_fark = 1500local diff = math.abs(sunucu_ortalama_Elo - katılan_oyuncu_Elo)local score = 1 - math.min(diff / max_ilişkili_fark, 1)return score
Sürekli değer
Sunucunun ortalama oyuncu özelliği ile 500'lik bir sabit değer arasındaki farkı minimize eder. 1000'in üzerindeki farklılıklar 0 sinyal puanı döndürür.
Sürekli değer formülü için oyuncu sayısal sinyalilocal 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
Sürekli değer örneği için oyuncu sayısal sinyalilocal sunucu_toplam_PowerLevel = 4500local katılan_oyuncu_PowerLevel = 9901local max_ilişkili_fark = 1500local constant_value = 5000local diff = math.abs(sunucu_toplam_PowerLevel + katılan_oyuncu_PowerLevel - constant_value)local score = 1 - math.min(diff / max_ilişkili_fark, 1)
Oyuncu kategorik
Kümeleme
Sunucudaki oyuncuların katılan oyuncunun özelliğiyle aynı özelliğe sahip olanlar arasındaki oranı maksimize eder.
Kümeleme formülü için oyuncu kategorik sinyalilocal score = num_players_same_{attribute_name} / occupancyreturn score
Kümeleme örneği için oyuncu kategorik sinyalilocal num_players_same_Guild = 15local occupancy = 19local score = num_players_same_Guild / occupancyreturn score
Çeşitlilik
Sunucudaki oyuncuların katılan oyuncunun özelliğinden farklı bir özelliğe sahip olanlar arasındaki oranı maksimize eder.
Çeşitlilik formülü için oyuncu kategorik sinyalilocal score = num_players_same_{attribute_name} / occupancyreturn 1 - score
Çeşitlilik örneği için oyuncu kategorik sinyalilocal num_players_same_RpgClass = 15local occupancy = 19local score = num_players_same_RpgClass / occupancyreturn score
Sunucu sayısal
Katılan oyuncu
Sunucunun özelliği ile katılan oyuncunun özelliği arasındaki farkı minimize eder. 1000'in üzerindeki farklılıklar 0 sinyal puanı döndürür.
Katılan oyuncu formülü için sunucu sayısal sinyalilocal diff = math.abs(server_{attribute_name} - joining_player_{attribute_name})local score = 1 - math.min(diff / max_relevant_difference, 1)return score
Katılan oyuncu örneği için oyuncu sayısal sinyalilocal sunucu_Level = 4500local katılan_oyuncu_Level = 9000local max_ilişkili_fark = 1500local diff = math.abs(sunucu_Level - katılan_oyuncu_Level)local score = 1 - math.min(diff / max_ilişkili_fark, 1)
Sürekli değer
Sunucunun özellik değeri ile bir sabit değer arasındaki farkı minimize eder. Bu sabit değerin üzerindeki farklılıklar 0 sinyal puanı döndürür.
Sürekli değer formülü için sunucu sayısal sinyalilocal diff = math.abs(server_{attribute_name} - constant_value)local score = math.min(diff / max_relevant_difference, 1)return score
Sürekli değer örneği için sunucu sayısal sinyalilocal sunucu_OyunZamani = 500local max_ilişkili_fark = 1000local constant_value = 1000local diff = math.abs(sunucu_OyunZamani - constant_value)local score = math.min(diff / max_ilişkili_fark, 1)
Sunucu kategorik
Katılan oyuncu ile karşılaştırma
Eğer sunucunun özellik değeri (örneğin, Oyun Modu) katılan oyuncunun özellik değeri (örneğin, Tercih Edilen Oyun Modu) ile eşitse, puan 1'dir. Aksi takdirde, sinyal puanı 0'dır.
Katılan oyuncu formülü için sunucu kategorik sinyaliif server_{attribute_name} == joining_player_{attribute_name} thenreturn 1elsereturn 0end
Katılan oyuncu örneği için sunucu kategorik sinyalilocal sunucu_OyunModu = "Hayatta Kalma"local katılan_oyuncu_OyunModu = "Hayatta Kalma"if sunucu_OyunModu == katılan_oyuncu_OyunModu thenreturn 1elsereturn 0end
Sabit bir değerle karşılaştırma
Eğer sunucunun özellik değeri bir sabit değer olan doğruya eşitse, puan 1'dir. Aksi takdirde, sinyal puanı 0'dır.
Sabit değer formülü için sunucu kategorik sinyaliif server_{attribute_name} == constant_value thenreturn 1elsereturn 0end
Sabit değer örneği için sunucu kategorik sinyalilocal sunucu_OyunBaşlamadı = trueif sunucu_OyunBaşlamadı == true thenreturn 1elsereturn 0end