达内广州C++学院|c++培训|广州达内科技C++/C#培训|.NET培训|IT培训|达内广州岗顶中心 达内广州C++学院|c++培训|广州达内科技C++/C#培训|.NET培训|IT培训|达内广州岗顶中心
达内新闻
 当前位置:主页 > 达内新闻 >

运城游戏开发关于热更新机制的运行原理

时间:2019-06-12  来源:未知  作者:广州达内培训

对于游戏软件来说,游戏更新和打补丁可以说是非常常见的一种程序维护行为了,而今天我们就一起来了解一下,关于游戏开发中的热更新机制的一些基本知识。

运城游戏开发关于热更新机制的运行原理

Cocos Creator中的热更新机制是依赖与Cocos2D-x的AssetManager,这个功能在Cocos2D-x 3.0时发布,同时发布了Cocos2D-JS 3.0版本中也含有这个功能,之后在Cocos2D-x升级了这个功能,加入了多线程并发实现,之后又在Cocos Creator 1.4.0版本和Cocos2d-x v3.15中经过一次重大重构,系统性解决了热更新过程中的问题。

Cocos2D-JS的设计主要是针对Web平台发布游戏,所以需要考虑浏览器的缓存机制,服务器端保存了完整的一个Web页面内容,浏览器请求一个网页后,就会在浏览器缓存这个网页的资源,当浏览器重新请求这个网页时会查询服务器版本后的修改时间或者是标识,如果不同则下载新的文件来更新缓存,如果相同就使用缓存的文件。

对于市面上的手游,目前比较常有的热更新机制是补丁包机制,即每个版本对应上一个版本生成一个补丁包,每个版本对应一个版本号,在客户端保存一个当前资源的版本号,每次检测热更的时候先和服务器通讯,对比版本号,如果版本号落后于服务器版本号,就开始热更流程,否则正常进入游戏,更新流程就是按顺序下载版本差之间的一个或多个资源包,这样更新的问题是资源包如果由人工整理,很难确保不会出错,而有些项目也尝试使用git上的工具,动态对比资源文件夹下的资源,从而生成不同版本之间的虚拟资源文件包,然而由于不具有足够的灵活性和资源间的可拆解性,这种版本差异“打包”的方式终究不是一个完美的解决方案。

Cocos Creator所采用的更新基本流程是为每个文件制定一个版本号,这样当对比更新文件时,会以每个文件为单位判断是否需要更新,增加了灵活性。

它的更新的基本流程是:

客户端每次启动时发送请求和服务端版本进行比对获得差异列表。

如果差异列表为空,则直接进入游戏,否则从服务端下载所有新版本中有改动的资源文件。

用新下载的资源覆盖旧缓存以及应用包内的文件。

在这种设计思路下,所有资源文件以离散的方式保存在服务器端,更新时会以文件为单位进行更新检查和文件下载。

【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。




上一篇:设计师切图命名规范以及注意事项
下一篇:没有了

友情链接:
  • 为Khronos OpenGL Registry提出的GL
  • KDE Plasma 5.17 开发升温,5.16 功能冻结
  • LLVM增加对IBM MASS库的支持,支持POWER向量化
  • KDE Frameworks 5.59 发布,带来更多修复
  • Ubuntu Touch即将更新Unity 8 + Mir,但还没有完全实现
  • RPM 4.15将以更好的性能和新功能将进入Fedora 31
  • Git 2.22 发布,围绕合并处理的改进
  • iOS 13将使删除已安装的应用程序变得非常容易
  • Linux Kernel 5.2-rc4 发布,相当平静的版本
  • Ubuntu MATE 19.10将默认使用GNOME MPV替换VLC播放器
  • Canonical发布所有支持的Ubuntu版本的Linux内核安全更新 - 适用
  • Qt 5.13进入发布候选阶段
  • 十字绣设计软件 KXStitch 2.2.0 发布,Ubuntu下安装方法
  • 2019亚洲天然及营养保健品展/HNC将于上海开幕
  • 一个妹子的美团面试经历,已成功拿到Offer
  • 做到如下4点,让用户不再讨厌你的广告
  • 类图的6大关系详解
  • 中国奢侈品消费者调研的关键发现
  • LibreOffice 6.3 Beta测试版发布,不再支持32位Linux发行版
  • springMVC -
  • Android Q Beta 4完成了开发者API SDK的开发
  • 【TIDB】4、业界使用情况
  • 如何配置Spring Boot Tomcat
  • 坑爹的 Java 可变参数,把我整得够惨。。
  • 《大型网站系统与Java中间件》读书笔记(上)
  • 乐字节Java8核心特性之Optional类
  • Java IO 输入和输出流
  • Guava Cache
  • 经典营销理论和跨国公司面临中国式挑战
  • 力软未来产品发展方向
  • 在印度销售、购买或持有虚拟货币可能导致最高10年的监禁
  • Oracle Java SE 组件概念图
  • Google Chrome 75.0.3770.80 发布,修复了42个安全问题
  • 2019最新Java教程 免费赠送
  • Spring框架的AOP编程,最通俗的语言解释,易懂易学
  • Java开发桌面程序学习(八)——启动浏览器或者打开资源管理器操
  • 笔记-JavaWeb学习之旅10
  • SpringBoot2.0 基础案例(02):配置Log4j2,实现不同环境日志打印
  • JDK动态代理
  • 利用idea创建一个基本的smm项目(带增删改查)
  • SpringBoot2.0 基础案例(03):配置系统全局异常映射处理
  • Java常见设计模式学习(非原创)
  • Java 总结篇1
  • 单例模式
  • 基于IDEA实现SSM整合框架的搭建配置流程
  • RabbitMQ 从入门到精通(二)
  • 工信部发放5G牌照,中国正式迈入5G商用元年
  • Java开发桌面程序学习(五)——文件选择器和目录选择器的使用
  • 2018年送彩金网站大全
  • 斗牛秘籍
  • 捕鱼游戏
  • 天下娱乐网
  • 捕鱼大作战
  • 免费注册送59元体验金
  • 葡京网站