Roblox'ta büyük açık dünya haritaları tasarlarken en büyük zorluk mobil cihaz kısıtlamalarıdır: oyuncuların %60'ından fazlası 3GB altı RAM'e sahip telefonlar kullanır. Haritayı bir kerede yüklemek oyunun anında kapanmasına yol açar.
StreamingEnabled, nesneleri oyuncunun yakınlığına göre dinamik olarak yükler ve kaldırır. Ancak istemci tarafındaki kodların eksik nesneler nedeniyle hata vermemesi için ModelStreamingMode ve RequestStreamAroundAsync doğru yapılandırılmalıdır.
Roblox motorunun haritayı dinamik yönetme biçimi:
Karmaşık modeller için uygun çoğaltma modları:
-- Streaming-Resilient Tag Binder using CollectionService
local CollectionService = game:GetService("CollectionService")
local Workspace = game:GetService("Workspace")
local TAG_NAME = "InteractiveNPC"
local function onObjectStreamedIn(instance)
if not instance:IsA("Model") then return end
-- Ensure primary part exists before attaching UI
local primaryPart = instance.PrimaryPart or instance:WaitForChild("HumanoidRootPart", 5)
if not primaryPart then return end
print("[Streaming] Interactive object loaded: " .. instance.Name)
-- Attach billboard prompt or local animation controller
end
local function onObjectStreamedOut(instance)
print("[Streaming] Interactive object unloaded: " .. instance.Name)
-- Clean up any active local tweens, highlights, or sound emitters
end
CollectionService:GetInstanceAddedSignal(TAG_NAME):Connect(onObjectStreamedIn)
CollectionService:GetInstanceRemovedSignal(TAG_NAME):Connect(onObjectStreamedOut)
-- Initial sweep for parts already streamed in upon join
for _, obj in ipairs(CollectionService:GetTagged(TAG_NAME)) do
task.spawn(onObjectStreamedIn, obj)
end
Işınlanma sırasında harita altına düşme sorununu çözme:
player:RequestStreamAroundAsync() çağırın.Düşük VRAM ile yüksek grafik kalitesi:
Uzak nesneler oyuncu yaklaşana kadar istemcide var olmaz. Doğrudan çağrılar nil hatası üretir.
Atomic uzaktayken modeli tamamen kaldırarak RAM tasarrufu sağlar; Persistent ise bellekte kalıcıdır.
Bellekte sadece birkaç yüz stud mesafedeki nesneleri tutarak RAM kullanımını 800MB altında sınırlar.
Evet! Sunucu her zaman tüm haritayı eksiksiz olarak belleğinde muhafaza eder.
Bilişsel profilinizi analiz edin ve DopaBrain araçlarıyla geliştirici yeteneklerinizi güçlendirin.
DopaBrain Bilişsel Testlerini Başlat