游戏数据包的补丁和更新

💡 原文中文,约1300字,阅读约需4分钟。
📝

内容提要

本文讨论了游戏版本更新的问题,提出了一种基于虚拟文件系统的解决方案,使用Merkle树作为版本号,并通过比较文件差异来打包补丁。这种方法可以减少更新带宽和存储空间,并且与开发中的vfs同步兼容。

🎯

关键要点

  • 游戏版本更新需要打包所有资源,下载更新补丁更为高效。
  • 游戏引擎基于虚拟文件系统,支持开发机与手机的资源映射。
  • 采用标准的zip包格式来打包文件,而非自定义设计。
  • 主要问题是解决版本间的差异更新,支持版本回滚。
  • 传统方法依赖递增版本号,存在缺陷,缺失补丁会导致升级失败。
  • vfs系统使用Merkle树,文件名为内容的hash值,根hash值作为版本号。
  • 版本号不再是递增数字,支持更新、回滚和分叉。
  • 补丁旨在减少更新带宽和存储空间,通过比较新增文件来打包。
  • 更新时用户只需下载特定版本的hash文件,检查依赖版本是否存在。
  • 更新方案兼容开发中的vfs同步,不再区分完整版本包和补丁包。
➡️

继续阅读