[发明专利]游戏的热更新方法及装置有效
申请号: | 201610902025.X | 申请日: | 2016-10-17 |
公开(公告)号: | CN107967139B | 公开(公告)日: | 2021-07-27 |
发明(设计)人: | 何友鑫 | 申请(专利权)人: | 网易(杭州)网络有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65 |
代理公司: | 北京博浩百睿知识产权代理有限责任公司 11134 | 代理人: | 宋子良 |
地址: | 310000 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 游戏 更新 方法 装置 | ||
本发明公开了一种游戏的热更新方法及装置。其中,该方法包括:获取游戏资源文件,其中,游戏资源文件是对游戏资源对应的源代码进行编译生成IL字节码后,由IL字节码打包而成的;根据用户终端当前使用的操作系统类型确定对游戏资源文件所采用的热更新方式。本发明解决了相关技术中所提供的热更新方式运行效率较低,应用受到局限性的技术问题。
技术领域
本发明涉及计算机领域,具体而言,涉及一种游戏的热更新方法及装置。
背景技术
目前,在大型网络游戏运行期间经常会发现一些需要立刻修复的严重漏洞,由此导致需要停机维护以及重新下载游戏客户端,从而无法继续为用户提供服务。为了获得更佳的用户体验,便需要实现在不需要停机维护和重新下载游戏客户端的情况下也能够修正已发现的游戏漏洞,这种修正游戏漏洞的技术手段被称为热更新。
Unity3D作为一款流行的3D引擎,其引擎本身并不支持在IOS系统上执行热更新操作,因此,采用Unity3D开发的手游便难以满足在游戏运营期间无需重新下载游戏客户端也能够修复已发现游戏漏洞的需求。
相关技术中提供的针对Unity3D的Lua热更新方案,虽然能够解决Unity3D引擎无法在IOS上执行热更新操作的问题,但是由于Unity3D引擎无法直接支持Lua,由此会带来以下问题:
(1)由于运行期间需要在C#和Lua之间频繁切换,因此会降低游戏运行效率。
(2)仅能采用Lua开发业务逻辑,而对原生的C#框架进行重用则十分困难,因此,会降低游戏开发效率。
(3)安卓系统可以支持原生C#热更新,为了兼顾IOS热更新也不得不放弃C#而采用Lua进行开发,同时很多安装安卓系统的低端手机,相对于安装有IOS系统的高端智能手机而言,更需要提升运行效率。为了能够兼顾IOS热更新,在这些低端手机上也不得不采用运行效率更低的Lua来进行开发。
(4)无法使用VS的开发调试环境以及Unity原生的性能分析功能,代码的单步调试,性能分析都缺乏良好的工具支持。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种游戏的热更新方法及装置,以至少解决相关技术中所提供的热更新方式运行效率较低,应用受到局限性的技术问题。
根据本发明实施例的一个方面,提供了一种游戏的热更新方法,包括:
获取游戏资源文件,其中,游戏资源文件是对游戏资源对应的源代码进行编译生成IL字节码后,由IL字节码打包而成的;根据用户终端当前使用的操作系统类型确定对游戏资源文件所采用的热更新方式。
可选地,获取游戏资源文件包括:将服务器上最新发布的游戏资源文件的版本号与本地存储的游戏资源文件的版本号进行比对;如果最新发布的游戏资源文件的版本号晚于本地存储的游戏资源文件的版本号,则将最新发布的游戏资源文件下载至本地,并采用最新发布的游戏资源文件覆盖本地存储的游戏资源文件,得到游戏资源文件。
可选地,根据操作系统类型确定对游戏资源文件所采用的热更新方式包括:确定操作系统类型为第一系统,其中,第一系统不支持采用预设编程语言的原生热更新方式;调用预设虚拟机加载游戏资源文件并启动执行,其中,预设虚拟机为解析并执行IL字节码的执行环境。
可选地,调用预设虚拟机加载游戏资源文件并启动执行包括:调用IL虚拟机提供的预设接口将游戏资源文件加载至内存;通过IL虚拟机直接调用游戏资源文件内的关联函数启动游戏资源文件。
可选地,根据操作系统类型确定对游戏资源文件所采用的热更新方式包括:确定操作系统类型为第二系统,其中,第二系统支持采用预设编程语言的原生热更新方式;调用预设反射机制加载游戏资源文件并启动执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网易(杭州)网络有限公司,未经网易(杭州)网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610902025.X/2.html,转载请声明来源钻瓜专利网。