Roblox 優化對於在各設備上獲得更流暢的遊戲體驗、更好的遊戲穩定性和更高的用戶留存率至關重要。經過優化的遊戲更有可能獲得良好的評價和評論,進而提升可見度。可以使用多種技術來有效地優化您的遊戲。
串流
在 Roblox 中,串流會根據需要動態載入和卸載 3D 內容,提升玩家體驗。
Roblox Studio
- 通過減少部件數量,因為更少的部件意味著更好的性能。
- 優化材質,以平衡視覺品質和性能,特別是針對低階設備。
- 優化光源,限制動態燈光並盡可能使用無陰影燈光,這些調整可減少計算負載並提升整體遊戲性能。
串流配置
Empty
Empty
Empty
Default | 引擎選擇最佳選項,目前與 Legacy 相同。 |
Legacy | 模型在玩家加入時與其父對象一起載入,並且除非父對象卸載,否則不會卸載。 |
Improved | 模型僅在需要時載入,而不是在玩家加入時載入。非空間模型稍後載入,而空間模型在需要時載入,並且可以稍後卸載。 |
Empty
Empty
Empty
啟用或禁用遊戲內容的串流。
Empty
Empty
Empty
Default | 沒有額外檢查;玩家可能會遇到缺少的內容。 |
PauseReceive | 如果關鍵部分丟失,則暫停數據接收,以避免遊戲問題。 |
Request | 當玩家進入某個區域時請求缺少的部分,減少遇到未載入內容的機會。 |
Empty
Empty
Empty
設置玩家周圍的最小區域,其中內容以最高優先級進行串流。預設值為 64 鑽石。增加此值會使用更多的記憶體和頻寬。
Empty
Empty
Empty
定義從玩家處串流的最大距離。預設值為 1024 鑽石。如果記憶體允許,引擎可能會保留此半徑之外的先前載入的內容。
Empty
Empty
Empty
Default | 內容僅在記憶體不足時刪除(與 LowMemory 相同)。 |
LowMemory | 在需要時卸載內容以釋放記憶體。 |
Opportunistic | 即使沒有記憶體壓力,也會卸載目標半徑之外的內容,以優化性能。 |
細節層級 (LOD)
在 Roblox 中,此設定決定了在啟用實例串流的體驗中的模型視覺品質。
StreamingMesh | 對於串流半徑外的模型,使用較低解析度的“替代”網格。 |
Disabled/Automatic | 不顯示低解析度網格,在串流半徑內保持完整細節。 |
Roblox Studio
物理
為了優化 Roblox 中的遊戲性能,管理物理設定至關重要。您可以通過將不需要物理屬性的部件設定為錨定 (part.Anchored = true) 來停用它們。此外,通過禁用某些部件的碰撞 (part.CanCollide = false) 來減少不必要的碰撞,這進一步提升了性能。
Roblox Studio
更多優化選項
- 通過減少部件數量,因為更少的部件意味著更好的性能。
- 優化材質,以平衡視覺品質和性能,特別是針對低階設備。
- 優化光源,限制動態燈光並盡可能使用無陰影燈光,這些調整可減少計算負載並提升整體遊戲性能。
- 有效使用部件和網格:最小化高多邊形網格的使用,並盡可能使用 Roblox 的 BaseParts。
- 腳本優化:識別並消除不必要的迴圈,優化演算法,並使用高效的資料結構。
- 網路最佳化:減少資料傳輸並確保順暢的客戶端-伺服器通信。
- 客戶端優化:將任務卸載到客戶端,以減少伺服器負載並提高回應速度。
- 碎片服務 (Debris Service):在管理臨時物件時使用碎片服務。
Empty
Empty
Empty
local Debris = game:GetService("Debris")
local part = Instance.new("Part")
part.Position = Vector3.new(0, 10, 0)
part.Parent = workspace
-- Add the part to Debris, which will remove it after 5 seconds
Debris:AddItem(part, 5)
微型分析器 (MicroProfiler)
微型分析器 (MicroProfiler) 是 Roblox Studio 中用於分析和診斷遊戲性能問題的工具。
Roblox Studio
Empty
Empty
Empty
Ctrl Alt F6 (⌘⌥F6)
Roblox Studio
微型分析器 (MicroProfiler) (藍色 & 橙色)
Roblox Studio
Color Bar | Details | Indication |
---|---|---|
橙色 | 工作時間超過標準幀中的渲染時間。 | 表示正常性能,CPU 是重點。 |
藍色 | 渲染時間超過工作時間。 | 表示渲染瓶頸。懸停查看“等待渲染執行緒”的詳細資料。大量藍色條形表示渲染是主要問題。 |
微型分析器 (MicroProfiler) (尖峰)
Roblox Studio
Graph Position | Details | Indication |
---|---|---|
中間 | 條形圖通常應位於圖形的中間。 | 表示任務排程平衡的正常操作。 |
尖峰 | 條形圖在圖形中間上方激增或增加。 | 表示任務排程過程中花費的時間增加,通常是由於處理大量移動部件的工作負載增加所致。 |
微型分析器 (MicroProfiler) (暫停)
Empty
Empty
Empty
Ctrl P (⌘P)
在微型分析器 (MicroProfiler) 中,可以通過點擊或拖動圖表來導航幀,並使用滾輪縮放時間線。不同的任務以彩色標籤顯示,當一個任務在另一個任務期間執行時,相應的標籤會直接顯示在另一個標籤下方。
Roblox Studio
微型分析器 (MicroProfiler) (放大)
Empty
Empty
Empty
右鍵點擊標籤,將時間線放大以匹配標籤的持續時間。
Roblox Studio
Empty
Empty
Empty
左鍵點擊顯示在遊戲視圖右下角的線性圖,顯示每幀執行任務所需的時間。此圖用於性能測試。
Roblox Studio
主執行緒 | Details |
---|---|
主執行緒 | 管理輸入、物理、動畫、聲音、Studio 更新並協調其他執行緒。 |
工作執行緒 | 協助主執行緒完成諸如網絡、物理和路徑查找等任務。根據 CPU 核心的數量使用多個工作執行緒。 |
渲染 (GPU) | 負責圖形渲染。 |
自訂分析
要監控腳本執行複雜任務所需的時間,請在開頭使用 debug.profilebegin,在結束時使用 debug.profileend。這樣可以測量這些點之間的時間,並在微型分析器 (MicroProfiler) 時間線中建立一個標籤。
Empty
Empty
Empty
local Debris = game:GetService("Debris")
local part = Instance.new("Part")
part.Position = Vector3.new(0, 10, 0)
part.Parent = workspace
-- Add the part to Debris, which will remove it after 5 seconds
Debris:AddItem(part, 5)