跳到主要内容

优化加载时间

优化不仅是提高帧率,快速加载同样重要。应用加载越快,用户越可能留下体验。建议争取在五秒内完成加载,降低流失。

以下建议可以加快加载:

  • 相同质量下,AVIF 通常比 WebP、JPG 和 PNG 更小,且像 WebP、PNG 一样支持 alpha。但并非所有浏览器都支持 AVIF,应根据项目情况选择。无法使用 AVIF 时,WebP 支持范围更广,通常也比相似质量的 JPEG 或 PNG 更小,建议实际比较各种格式。
  • 评估是否可以降低纹理分辨率。例如小物体使用的 2048×2048 纹理,降为 1024×1024 甚至 512×512,外观可能几乎不变。
  • 不要预加载可以异步加载的资源。例如游戏音乐未必需要在启动瞬间播放,可在 Inspector 中取消 Preload。
  • 已有预过滤立方体贴图,且天空盒不使用最高分辨率 mip 时,可取消六张面图像的预加载。
  • 如果不在运行时实例化模板,可取消模板资源预加载,参见何时需要加载模板资源。
  • 确保模型只包含必要顶点属性。没有使用的第二套 UV 或全白顶点颜色等,可回到建模软件删除。
  • 在 Chrome 开发者工具的 Network 面板或其他浏览器对应面板中,按资源大小排序,检查异常大的资源,删除未使用或实质重复的内容。
  • PlayCanvas 内置物理引擎增加约 379 KB 下载量。如果仅处理很简单的问题,可考虑无需这部分下载的替代实现。
  • 自行托管时,为服务器启用 GZIP 压缩,尤其是 JSON 和 JavaScript 文件。

加载顺序最佳实践​

除了上述建议,还可以分阶段加载,并在过程中不断提供可交互或观看的新内容,让用户愿意继续等待。

以 Virtual Voodoo 为例,展示常见浏览器应用的加载流程。

游戏分三个阶段:

  1. 预加载。
  2. 标题画面和角色定制。
  3. 正式游戏。

Virtual Voodoo 阶段

预加载阶段只加载首个 PlayCanvas 场景,即标题画面和角色定制所需的资源,例如 UI、角色模型及相关资源。

标题画面激活后,游戏在后台加载正式游戏资源。用户观看切换动画或定制角色期间,后台持续加载,因此点击开始时可能已经完成。

如果开始按钮被点击时资源尚未加载完成,按钮中会显示进度条,达到 100% 后自动进入正式游戏。

Virtual Voodoo 资源尚未就绪

分阶段加载并不断提供可交互或观看的新内容,即使总加载时间较长,也能让用户保持参与。

进一步改进​

还可以让初始预加载仅包含最少资源,再提供应用内部的加载界面,加入与应用相关的图像、文本和动画。用户看到与实际内容直接相关的画面,更容易继续等待。

如果游戏允许,可先使用通用占位内容,在更精细资源加载期间提前开放交互。

例如,角色完全加载前先显示轮廓占位。轮廓文件很小,可以放入预加载,还能在多个角色之间复用。

延迟加载角色