[游戏更新]游戏更新框架的设计
Posted stq_wyy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[游戏更新]游戏更新框架的设计相关的知识,希望对你有一定的参考价值。
主要是通过文章来记录一下游戏更新流程的框架设计、资源打包、资源下载等。热更新的功能框架使用的是XLua,这里不做详细介绍。
流程图:
因为是海外游戏,考虑到GooglePlay对包体大小的限制。因此,会有一些资源做成压缩包,在特定时间进行下载。即第6,7两个步骤。如果是国内游戏,不考虑控制安装包大小的,可以略过这两个步骤。因为东南亚兄弟的网速和机型十分感人的缘故,AssetBundle、配置表和lua代码这里我们进行了7z压缩,下载7z包后再解压,相对于散文件来说,下载速度更有保障。这里使用的是AssetStore里的一个插件。整个检测更新的过程使用状态机来实现。降低各个流程之间的耦合性。接下来详细的梳理一下每个步骤的流程。
1.获取版本号信息
在与服务器版本校验之前,会先对本地的资源进行一个校验,如果是首次安装或者玩家将数据清除掉了,首先校验磁盘空间,空间充足,那么直接将StreamingAssets下的7z解压到persistentDataPath目录下,并将版本号记录到文件中。使用该版本号和从服务器获取的版本号信息进行校验。详细见下一个流程。
2.更新操作判定
因为游戏支持离线模式,所以,当网络无法连接的时候,走离线模型登录游戏,跳过更新判定。版本号定义了3位,前两位用于控制游戏安装包的版本,第3位用于判断资源更新,每次发布安装包,资源版本号从0开始统计。在版本兼容这一块,可以兼容两个版本,即可能同时存在1.0.0和1.1.0。
3.大版本更新
这个逻辑比较简单,就是有新版本时弹窗提示玩家,如果玩家版本还在受支持的版本号中,弹窗就有两个按钮,一个关闭,一个跳转。玩家关了之后就可以继续进游戏,反之,弹窗只有一个跳转商店按钮,除非离线,否则不能进游戏。就不画流程图了。
4.资源更新
这个过程是强制的,涉及的判断较多。
这里边比较核心的内容是http下载这块的逻辑。后边再做详细的分析。
5.登录游戏
判断玩家网络是否畅通,如果畅通就走在线模式,否则,走离线模式。
6.场景资源检测
这个用途可能比较广泛,虽然国内市场不考虑包体可以不做场景资源的分包,但是考虑到大版本更新对用户体验的影响,建议游戏支持场景资源扩展更新。这个过程主要是对场景资源版本的校验,流程比较简单。不做流程图展示了。
7.场景资源更新
以上就是游戏更新流程的介绍。
以上是关于[游戏更新]游戏更新框架的设计的主要内容,如果未能解决你的问题,请参考以下文章