Skip to main content
MSIXVC2 从根本上改变了内容更新的计算和交付方式。使用原始 MSIXVC 格式时,内容更新以固定的 4 KB 块边界为单位,并对 pack 文件中的文件布局、区块顺序和对齐敏感。MSIXVC2 使用基于内容的分段,在字节级别跟踪变化,从而消除了 MSIXVC 中导致更新体积膨胀的对齐约束。
有关原始 MSIXVC 格式相关的内容更新指导,请参见 内容更新最佳实践

MSIXVC2 内容更新的工作方式

基于内容的分段

MSIXVC2 根据实际内容将文件数据拆分为可变大小的分段,而不是使用固定的块边界。每个分段通过其内容的哈希进行标识。 这种方式意味着:
  • 在区块之间移动文件不会触发重新下载。 无论文件属于哪个区块,其内容哈希都保持不变。
  • 在区块内重排文件不会触发重新下载。 分段边界由内容决定,而不是位置。
  • 重排区块不会触发重新下载。 区块布局是一个逻辑概念,不影响数据的物理分段。
  • 插入或移除数据不会产生级联效应。 与固定块系统不同,小的插入不会移动所有后续块,也不会强制重新下载未变化的内容。

上传时的去重

每个分段在上传前都会被哈希。上传过程会查询 CDN,以确定哪些分段已经存在于以前的版本中。只有新的或变化过的分段会被上传并交付给玩家。这种去重是自动进行的 —— 无需开发者干预。

按分段加密和压缩

每个分段都独立压缩和加密。这确保更新一个分段不会影响其他分段。

相对于 MSIXVC 的变化

MSIXVC 内容更新中的以下对齐和布局约束在 MSIXVC2 中 不再适用:
如果你当前投入精力维护稳定的文件排序、冻结资源布局,或在构建流水线中仔细管理 4 KB 对齐,那么 MSIXVC2 消除了这些工作的必要性。如果你还在为主机发布 XVC 包,这些优化仍然适用。

更新大小对比

以下数据对比了相同游戏构建下 MSIXVC 与 MSIXVC2 之间的内容更新大小。游戏没有做任何更改 —— 相同的资源、相同的构建,只是打包格式不同。 Game D 的改善较小,是因为该游戏已经针对 MSIXVC 内容更新(CUv3)进行了手动优化。大多数没有做过这种优化的游戏会看到更大的缩减。使用 MSIXVC2 后,这类优化工作不再是必要的。

包开销的缩减

每个 MSIXVC 包都包含一个固定的最小哈希树,其大小随游戏的总大小而扩展。此开销在每次更新时都会被完整下载。对于大型游戏而言,这一开销非常显著: MSIXVC2 的开销还可以部分下载,这意味着玩家只会收到与其更新相关的那部分元数据。

基础游戏体积的改善

基于内容的分段和内置压缩也减小了基础游戏的下载体积: 包含未压缩内容或在区块间有大量重复数据的游戏,基础包缩减幅度最大。已经对所有内容进行压缩且没有重复数据的游戏(如 Game D)会看到较小但仍具有意义的改进。

评估 MSIXVC2 是否适合你的游戏

要衡量 MSIXVC2 为你自己的游戏带来的内容更新改进:
  1. 取你游戏中两个先后连续的构建(例如,一个发布版本以及紧随其后的补丁)。
  2. 使用 makepkg 对这两个构建都进行打包。
  1. 将结果更新大小与等效的 MSIXVC(v1)构建进行比较。
  2. 使用比较结果来规划你迁移到 MSIXVC2 的方案。
将 MSIXVC2 包上传到 Partner Center 中的单独分支(例如 msixvc2)。不要在同一分支上混合使用 MSIXVC2 和 MSIXVC 包 —— 将分支从 MSIXVC2 恢复到 MSIXVC 需要完整重新上传,并强制该分支上的玩家完整重新下载。有关详细信息,请参见 包分支最佳实践

跨平台游戏的填充注意事项

如果你的游戏同时在 PC(MSIXVC2)和主机(XVC)上发布,你可以为每个平台使用单独的填充配置。在 MSIXVC2 下,你可以安全地减少或移除 PC 构建的填充,而不会影响更新效率。如果你希望在各平台上保持相同的配置,该配置也没有问题 —— MSIXVC2 同样能处理这两种情况。

另请参见

MSIXVC2 打包概述 内容更新最佳实践(MSIXVC) MSIXVC2 加密模型 MSIXVC2 for PC 入门 Make package (makepkg.exe)
最后修改于 2026年8月13日