Optimization (优化)

Roblox 优化对于在各设备上获得更流畅的游戏体验、更好的游戏稳定性和更高的用户留存率至关重要。优化的游戏更有可能获得积极的评分和评论,增加其可见性。可以使用多种技术来有效地优化您的游戏。

流媒体

在 Roblox 中,流媒体会根据需要动态加载和卸载 3D 内容,从而提升玩家体验。
Image 1
Roblox Studio
  • 通过减少部件数量,因为更少的部件意味着更好的性能。
  • 优化纹理,以平衡视觉质量和性能,特别是针对低端设备。
  • 优化照明,限制动态灯光并尽可能使用无阴影灯光,因为这些调整减少了计算负载并提升了整体游戏性能。

流媒体配置

Default引擎选择最佳选项,目前与 Legacy 相同。
Legacy模型在玩家加入时与其父对象一起加载,并且除非父对象卸载,否则不会卸载。
Improved模型仅在需要时加载,而不是在玩家加入时加载。非空间模型稍后加载,而空间模型在需要时加载,并且可以稍后卸载。

启用或禁用游戏内容的流媒体。

Default没有额外检查;玩家可能会遇到缺少的内容。
PauseReceive如果关键部分丢失,则暂停数据接收,以避免游戏问题。
Request当玩家进入某个区域时请求缺少的部分,减少遇到未加载内容的几率。

设置玩家周围的最小区域,其中内容以最高优先级进行流媒体。默认值为 64 钻石。增加此值会使用更多的内存和带宽。

定义从玩家处流媒体的最大距离。默认值为 1024 钻石。如果内存允许,引擎可能会保留此半径之外的先前加载的内容。

Default内容仅在内存不足时删除(与 LowMemory 相同)。
LowMemory在需要时卸载内容以释放内存。
Opportunistic即使没有内存压力,也会卸载目标半径之外的内容,以优化性能。

细节层级 (LOD)

在 Roblox 中,此设置决定了在启用实例流媒体的体验中的模型视觉质量。
StreamingMesh对于流媒体半径外的模型,使用较低分辨率的“替代”网格。
Disabled/Automatic不显示低分辨率网格,在流媒体半径内保持完整细节。
Image 1
Roblox Studio

物理

为了优化 Roblox 中的游戏性能,管理物理设置至关重要。您可以通过将不需要物理属性的部件设置为锚定 (part.Anchored = true) 来停用它们。此外,通过禁用某些部件的碰撞 (part.CanCollide = false) 来减少不必要的碰撞,这进一步提升了性能。
Image 1
Image 2
Roblox Studio

更多优化选项

  • 通过减少部件数量,因为更少的部件意味着更好的性能。
  • 优化纹理,以平衡视觉质量和性能,特别是针对低端设备。
  • 优化照明,限制动态灯光并尽可能使用无阴影灯光,因为这些调整减少了计算负载并提升了整体游戏性能。
  • 有效使用部件和网格:最小化高多边形网格的使用,并尽可能使用 Roblox 的 BaseParts。
  • 脚本优化:识别并消除不必要的循环,优化算法,并使用高效的数据结构。
  • 网络优化:减少数据传输并确保顺畅的客户端-服务器通信。
  • 客户端优化:将任务卸载到客户端,以减少服务器负载并提高响应速度。
  • 碎片服务 (Debris Service):在管理临时对象时使用碎片服务。
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 中用于分析和诊断游戏性能问题的工具。
Image 1
Roblox Studio

Ctrl Alt F6 (⌘⌥F6)

Image 1
Roblox Studio

微型分析器 (MicroProfiler) (蓝色 & 橙色)

Image 1
Roblox Studio
Color BarDetailsIndication
橙色工作时间超过标准帧中的渲染时间。表示正常性能,CPU 是重点。
蓝色渲染时间超过工作时间。表示渲染瓶颈。悬停查看“等待渲染线程”的详细信息。大量蓝色条形表示渲染是主要问题。

微型分析器 (MicroProfiler) (尖峰)

Image 1
Roblox Studio
Graph PositionDetailsIndication
中间条形图通常应位于图形的中间。表示任务调度平衡的正常操作。
尖峰条形图在图形中间上方激增或增加。表示任务调度过程中花费的时间增加,通常是由于处理大量移动部件的工作负载增加所致。

微型分析器 (MicroProfiler) (暂停)

Ctrl P (⌘P)

在微型分析器 (MicroProfiler) 中,可以通过点击或拖动图表来导航帧,并使用滚轮缩放时间线。不同的任务以彩色标签显示,当一个任务在另一个任务期间执行时,相应的标签会直接显示在另一个标签下方。
Image 1
Roblox Studio

微型分析器 (MicroProfiler) (放大)

右键点击标签,将时间线放大以匹配标签的持续时间。

Image 1
Image 2
Roblox Studio

左键点击显示在游戏视图右下角的线性图,显示每帧执行任务所需的时间。此图用于性能测试。

Image 1
Roblox Studio
主线程Details
主线程管理输入、物理、动画、声音、Studio 更新并协调其他线程。
工作线程协助主线程完成诸如网络、物理和路径查找等任务。根据 CPU 核心的数量使用多个工作线程。
渲染 (GPU)负责图形渲染。

自定义分析

要监控脚本执行复杂任务所需的时间,请在开头使用 debug.profilebegin,在结束时使用 debug.profileend。这样可以测量这些点之间的时间,并在微型分析器 (MicroProfiler) 时间线中创建一个标签。
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)

如果您觉得本教程对您有帮助,并且愿意支持我的工作,请考虑请我喝杯咖啡。

非常感谢您的支持!

请我喝咖啡