zoukankan      html  css  js  c++  java
  • 为什么游戏需要热更新?

    版权申明:

    • 本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明
    • 更多学习资源请加QQ:1517069595获取(企业级性能优化/热更新/Shader特效/服务器/商业项目实战/每周直播/一对一指导)

    为什么游戏需要热更新?

    在这里插入图片描述
    简单来说就是为了绕过手机操作系统的安全验证。

    因为如果手机操作系统允许我们随意从网络上下载并更新我们安装好的APP,那么一些不良的游戏开发者就有可能在更新的程序中植入后台或者木马程序来窃取用户的数据,甚至破坏手机系统,从而达到一些不可告人的目的。

    但是手机操作系统的这一做法是一柄双刃剑,他虽然防止了手机APP受病毒木马的影响,但是也限制了APP的正常更新

    让我们先来看一来受到限制以后,游戏APP的更新流程。

    什么是游戏热更新:无热更的游戏更新流程

    在这里插入图片描述
    当你在软件商店选择好一款游戏,点击下载,就把这款游戏下载到你的手机上了。

    当你需要更新游戏时,通常在手机游戏的启动画面会弹出一个更新按钮,点击后会帮你跳转到软件市场重新下载完整的游戏包体

    这样,如果是一个像王者荣耀这样1个G以上包体大小的游戏,每次我们都需要花同样的时间,再下载一次完整游戏

    而不管这个游戏是否只是更新了一个微小的功能或美术资源

    什么是游戏热更新:有热更的游戏更新流程

    在这里插入图片描述
    而支持游戏热更新的更新流程就完全不同了

    首先你不需要在收到更新通知时跳转到软件商店进行下载,点击确认更新后,会自动在游戏内进行更新包的下载,

    其次你要下载的更新包,只是更新的那部分内容,比如说一个游戏只是在下一个版本更新了一个皮肤、道具或者增加了一个新的功能系统,通常这种更新包的大小不会很大,假如说更新包只有几兆,那么你只需要下载这几兆资源即可

    对于玩家来说,下载的等待时间和流量消耗都极大的减少,对于提升玩家体验、提升玩家留存是很有帮助的

    那么究竟一款支持热更新的游戏,它内部的更新流程和机制是什么样的呢?

    在这里插入图片描述

    我们来看一下

    首先在我们第一次要游玩这个游戏的时候,我们还是会从游戏市场下载这个游戏。

    接着随着游戏运营的进程发展。游戏公司的策划决定加入一个新玩法修改现有的玩法,或者修改游戏内的数值平衡。

    此时我们的开发者就需要根据策划的需求去制作游戏更新。

    并且将更新好的内容打包上传到游戏更新服务器。

    接着在我们的玩家下一次进入游戏时,游戏的客户端会自动到服务器去检查有无游戏。内容更新。

    如果有则会从服务器下载更新包。

    在客户端将更新包下载到本地以后,客户端自动释放压缩的更新包,并且把旧的游戏内容替换成新的更新包内的内容,这样就完成了游戏的版本更新。

    更新包长什么样?

    在这里插入图片描述
    那么更新包究竟长什么样呢?

    首先我们可以把游戏内的资源分成美术资源和程序资源。

    通常美术资源是可以直接热更新的,而程序资源呢就有点麻烦了。

    因为程序资源可以是任意一段可以执行的程序代码,大家想象一下,如果在一个游戏通过审核以后,在下一个版本中植入了一些窃取用户隐私或者有可能造成系统不稳定的功能,那么对于对于用户来说是很不安全的。

    所以在苹果的IOS系系统中已经完全的禁止了程序在运行时加载新代码的功能。

    而安卓系统没有完全禁止这种功能,安卓APP仍然能够执行任何一段热加载的程序代码。

    那么,我们的手机游戏如何应付IOS系统的禁止热更新从而提升玩家的游戏更新体验呢?

    这就需要我们绕过系统限制,那么如何绕过呢?我们会在后续给大家揭晓,欢迎大家点赞、收藏、分享,并在评论区讨论你认为可行的解决方案~

    更多学习资源请加QQ:1517069595获取(/企业级性能优化/热更新/Shader特效/服务器/商业项目实战/每周直播/一对一指导)

    完整视频可以点击B站链接:https://www.bilibili.com/video/BV16v411J7Uq

    更多知识、教程、源码请进↓↓↓
    优梦创客工坊

    精品内容推送请搜索↓↓↓
    微信公众号:优梦创客

    免费直播、VIP视频请进↓↓↓
    优梦创客课堂

    游戏开发交流群↓↓↓
    游戏开发交流群

  • 相关阅读:
    有点成熟的短句,最新个性签名
    ACM2039_三角形三边关系
    Android 绘制中国地图
    Opengl-法线贴图(用来细化表面的表现表现的凹凸)
    Go的sync
    Laravel Study(使用 Laravel )
    对于宅男来说,硬盘里的数据就是命
    设计模式之模板方法模式
    游戏掉落道具掉落
    NEWMING
  • 原文地址:https://www.cnblogs.com/raymondking123/p/15004951.html
Copyright © 2011-2022 走看看