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