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