当前位置:网站首页>为什么游戏需要热更新?
为什么游戏需要热更新?
2022-08-10 05:37:00 【优梦创客】
版权申明:
- 本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明
- 更多学习资源请加QQ:1517069595获取(企业级性能优化/热更新/Shader特效/服务器/商业项目实战/每周直播/一对一指导)
为什么游戏需要热更新?

简单来说就是为了绕过手机操作系统的安全验证。
因为如果手机操作系统允许我们随意从网络上下载并更新我们安装好的APP,那么一些不良的游戏开发者就有可能在更新的程序中植入后台或者木马程序来窃取用户的数据,甚至破坏手机系统,从而达到一些不可告人的目的。
但是手机操作系统的这一做法是一柄双刃剑,他虽然防止了手机APP受病毒木马的影响,但是也限制了APP的正常更新
让我们先来看一来受到限制以后,游戏APP的更新流程。
什么是游戏热更新:无热更的游戏更新流程

当你在软件商店选择好一款游戏,点击下载,就把这款游戏下载到你的手机上了。
当你需要更新游戏时,通常在手机游戏的启动画面会弹出一个更新按钮,点击后会帮你跳转到软件市场重新下载完整的游戏包体
这样,如果是一个像王者荣耀这样1个G以上包体大小的游戏,每次我们都需要花同样的时间,再下载一次完整游戏
而不管这个游戏是否只是更新了一个微小的功能或美术资源
什么是游戏热更新:有热更的游戏更新流程

而支持游戏热更新的更新流程就完全不同了
首先你不需要在收到更新通知时跳转到软件商店进行下载,点击确认更新后,会自动在游戏内进行更新包的下载,
其次你要下载的更新包,只是更新的那部分内容,比如说一个游戏只是在下一个版本更新了一个皮肤、道具或者增加了一个新的功能系统,通常这种更新包的大小不会很大,假如说更新包只有几兆,那么你只需要下载这几兆资源即可
对于玩家来说,下载的等待时间和流量消耗都极大的减少,对于提升玩家体验、提升玩家留存是很有帮助的
那么究竟一款支持热更新的游戏,它内部的更新流程和机制是什么样的呢?

我们来看一下
首先在我们第一次要游玩这个游戏的时候,我们还是会从游戏市场下载这个游戏。
接着随着游戏运营的进程发展。游戏公司的策划决定加入一个新玩法修改现有的玩法,或者修改游戏内的数值平衡。
此时我们的开发者就需要根据策划的需求去制作游戏更新。
并且将更新好的内容打包上传到游戏更新服务器。
接着在我们的玩家下一次进入游戏时,游戏的客户端会自动到服务器去检查有无游戏。内容更新。
如果有则会从服务器下载更新包。
在客户端将更新包下载到本地以后,客户端自动释放压缩的更新包,并且把旧的游戏内容替换成新的更新包内的内容,这样就完成了游戏的版本更新。
更新包长什么样?

那么更新包究竟长什么样呢?
首先我们可以把游戏内的资源分成美术资源和程序资源。
通常美术资源是可以直接热更新的,而程序资源呢就有点麻烦了。
因为程序资源可以是任意一段可以执行的程序代码,大家想象一下,如果在一个游戏通过审核以后,在下一个版本中植入了一些窃取用户隐私或者有可能造成系统不稳定的功能,那么对于对于用户来说是很不安全的。
所以在苹果的IOS系系统中已经完全的禁止了程序在运行时加载新代码的功能。
而安卓系统没有完全禁止这种功能,安卓APP仍然能够执行任何一段热加载的程序代码。
那么,我们的手机游戏如何应付IOS系统的禁止热更新从而提升玩家的游戏更新体验呢?
这就需要我们绕过系统限制,那么如何绕过呢?我们会在后续给大家揭晓,欢迎大家点赞、收藏、分享,并在评论区讨论你认为可行的解决方案~
更多学习资源请加QQ:1517069595获取(/企业级性能优化/热更新/Shader特效/服务器/商业项目实战/每周直播/一对一指导)
完整视频可以点击B站链接:https://www.bilibili.com/video/BV16v411J7Uq
边栏推荐
猜你喜欢

LeetCode refers to the offer 21. Adjust the order of the array so that the odd numbers are in front of the even numbers (simple)

Convolutional Neural Network (CNN) for Clothing Image Classification

STC12C5A60S2单片机WIFI信号扫描报警监视系统信号增强信号过低报警

8个问题轻松掌握Unity前向渲染

【从零设计 LaTex 模板】1. 一些基础知识

新建STM32F407ZG Keil5项目

Pytorch配置与实战--Tips

Tensorflow 2.0 使用流程详解

ASP.Net利用代码点击相应按钮来关闭当前的页面(亲测有效)

序列化、编码、requests库json和data参数
随机推荐
【从零设计 LaTex 模板】1. 一些基础知识
二维卷积定理的验证(下,cv2.filter2D())
8个问题轻松掌握Unity前向渲染
2021-04-15 jacoco代码覆盖率统计和白盒测试
开源游戏服务器框架NoahGameFrame(NF)服务器端环境搭建(二)
51单片机ST188手持人体温度脉搏心率测量仪锂电池充电
Pico设备中的截图以及视频文件通过adb命令保存到电脑中
Flutter的生命周期
所有文章汇总目录
从交换两数据值看指针的使用(c语言实现)
通过adb devices命令在控制台显示企业级PicoNeo3设备号
废水中氟离子去除方法
自定义View的流程总结学习
LeetCode 292. Nim Game (Simple)
Tkinter 模块学习
除砷树脂吸附原理
电路分析中的电容器的基本知识
pytorch-10. Convolutional Neural Networks (homework)
51单片机教室人数进出统计检测数码管显示装置红外传感器
AR Foundation Editor Remote插件使用方法