浅谈游戏热更新

浅谈游戏热更新


概述:

似乎涉及到游戏开发,项目初始立项一直到项目收尾,开发人员都会听到“热更新”这几个字眼,当然有些游戏不需要热更新的就没必要热更新。或者作为初级程序员的时候面对面试的时候,当被问及到“你们公司的产品是否支持热更新”,如果能够事先对这一块有所了解或者有所准备的话,还是很不错的。

既然我们要了解热更新,那么首先就要知道为什么要进行热更新以及热更新的途径和方式等等,只有这样你才能对这个热更新的概念有个整体的了解!


首先我们先来了解一下,为什么要进行热更新呢

对于游戏热更新的需求,主要分为两个部分,第一,客户端,第二,服务器端

客户端方面:

目前市场热门手游类型大概就是MMORGP这种类型了,产品出包少说得有个100MB吧?如果你每次修改个别bug就要暂停服务器,进行维护,然后出大包,让游戏用户再去更新下载,其实内部只是做了一些很少的修改,这样一来用户的体验感就会下降,久而久之,这个游戏的玩家受众量就会越来越低。所以呢,为了让产品适应上线运营的需求,我们必须在开发的时候就做好热更新的准备。同时如果发布版本平台审核比较严(例如:苹果appstore)审核过程一般10-20天,这样对于开发来说是极其不好的。


另外由于现在大部分unity手游公司基本使用的脚本语言是C#,所以这就决定了热更新的局限性,虽然使用Assembly反射可以实现在安卓机子上面的热更新,但是ios上面是不支持,所以对于要发布双平台的手游产品来说,使用ulua可以让开发变得更易快捷,也容易维护,因为lua不需要编译,直接可以在机子上面看出效果。有人会问,为什么C#脚本不能直接热更新呢?首先刚开始学习C#的同学应该都知道C#脚本写好之后,需要让编译器编译出dll可执行文件,然而这个编译的过程只能在pc平台上面完成,在移动平台上面是不行的,所以正如我前面所说,每当我们对游戏进行逻辑,ui修改啊,代码结构发生改变时候,我们就需要重新编译,再次打包,重更版本,如果你是玩家,为了一点小小的bug修改,并没有多少实质性游戏功能方面的修改,你觉得玩家会忍受这种动不动就浪费流量浪费时间的事情吗?


所以:对于游戏热更新,这是一个游戏程序员必备的技能,当然这需要你有一定的lua基础,还没有这个语言基础的同学可以去学习下。


接着说服务端:

刚出的产品,在众多怀着热情的玩家疯狂的点击下载以及登陆畅玩之时,出现了bug肯定是在所难免的,如果你的游戏不支持热更新技术,那么关服是迟早的事情,这是针对热门MMMORPG来说。为了不影响玩家体验,又能保证服务器稳定运行的情况下,修复一些轻微bug,使用热更新之最好不过的了。


接下来说说热更新的途径:


热更新的方式:

一共有以下几种方式:

1.使用基于lua的ulua技术,让游戏部分ui或者部分逻辑模块使用lua脚本编写,这样可维护性强,易于扩展。(准则:动态特性适合用来做游戏UI)

2.使用C#Assembly 的反射技术( class.GetType.Assembly & calss.GetType),正如前面所说,安卓适合,苹果不适合,这样就满足不了发布双版本的需求。

3.最后一种就是C#中的light技术。


重点说说lua的热更新技术:

为什么手游公司会使用ulua,或者是其他相关的lua热更新技术呢,首先这是由于lua脚本轻巧,同时跨平台解析,无需编译工程,下载下来在手机端上面可以直接运行,所以lua脚本本身的优势之处这就造就了使用lua热更新是必然的。

(未完待续。。。


  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值