CN115624757A - 一种游戏引擎热更新方法、装置、设备及介质 - Google Patents
一种游戏引擎热更新方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115624757A CN115624757A CN202211246117.9A CN202211246117A CN115624757A CN 115624757 A CN115624757 A CN 115624757A CN 202211246117 A CN202211246117 A CN 202211246117A CN 115624757 A CN115624757 A CN 115624757A
- Authority
- CN
- China
- Prior art keywords
- target game
- game engine
- resource
- file
- hot
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F13/69—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by enabling or updating specific game elements, e.g. unlocking hidden features, items, levels or versions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/55—Details of game data or player data management
- A63F2300/552—Details of game data or player data management for downloading to client devices, e.g. using OS version, hardware or software profile of the client device
Abstract
本申请公开了一种游戏引擎热更新方法、装置、设备及介质,涉及计算机领域,包括:当客户端启动目标游戏引擎,则从云端资源服务器下载目标游戏资源文件至本地;其中,所述目标游戏资源文件为基于所述目标游戏引擎的热更新代码生成的文件;启动所述目标游戏引擎中的wasm虚拟机,并通过所述wasm虚拟机加载并执行所述目标游戏资源文件,以便实现所述目标游戏引擎的热更新。可见,本申请使用wasm虚拟机加载并执行目标游戏资源文件,以实现目标游戏引擎的热更新,如此一来,在开发游戏的热更新项目时无需编写多种编程语言,便可以实现在不同系统上的热更新,降低了开发难度,提高了开发效率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种游戏引擎热更新方法、装置、设备及介质。
背景技术
Unity3D作为一款流行的3D引擎,其引擎本身并不支持在IOS系统上执行热更新操作,因此,采用Unity3D开发的手游便难以满足在游戏运营期间无需重新下载游戏客户端也能够修复已发现游戏漏洞的需求。为了满足在IOS系统上热更新的问题,常采用XLua,Puerts等热更方案,但是这些方案,要求开发人员在开发时,编写两种编程语言,如此一来,会降低游戏开发效率,此外,Androi端支持C#反射热更,但是为了兼容IOS热更需求,不得不放弃原生热更,从而采用XLua,Puerts等热更方案。在运行时,因为Lua虚拟机,和js虚拟机(比如V8)性能不太好,容易在低端手机上引起发热和卡顿。
为此,在开发游戏的热更新项目时如何无需编写多种编程语言,便可以实现在不同系统上的热更新,以降低开发难度,提高开发效率是本领域亟待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种游戏引擎热更新方法、装置、设备及介质,能够在开发游戏的热更新项目时如何无需编写多种编程语言,便可以实现在不同系统上的热更新,以降低开发难度,提高开发效率,其具体方案如下:
第一方面,本申请公开了一种游戏引擎热更新方法,包括:
当客户端启动目标游戏引擎,则从云端资源服务器下载目标游戏资源文件至本地;其中,所述目标游戏资源文件为基于所述目标游戏引擎的热更新代码生成的文件;
启动所述目标游戏引擎中的wasm虚拟机,并通过所述wasm虚拟机加载并执行所述目标游戏资源文件,以便实现所述目标游戏引擎的热更新。
可选的,所述启动所述目标游戏引擎中的wasm虚拟机之前,还包括:
在所述目标游戏引擎中集成所述wasm虚拟机。
可选的,所述当客户端启动目标游戏引擎,则从云端资源服务器下载目标游戏资源文件至本地之前,还包括:
将所述目标游戏引擎的热更新代码编译为动态链接库文件,并将所述动态链接库文件编译为wasm文件;
将所述wasm文件打包为所述目标游戏资源文件,并将所述游戏资源文件上传至所述云端资源服务器。
可选的,所述通过所述wasm虚拟机加载并执行所述目标游戏资源文件,以便实现所述目标游戏引擎的热更新,包括:
通过所述wasm虚拟机加载并执行所述目标游戏资源文件中的所述wasm文件,以便实现所述目标游戏引擎的热更新。
可选的,所述当客户端启动目标游戏引擎,则从云端资源服务器下载目标游戏资源文件至本地,包括:
当客户端启动目标游戏引擎,则在所述目标游戏资源文件对应的资源版本号大于所述目标游戏引擎的资源版本号时,从所述云端资源服务器下载所述目标游戏资源文件至本地。
可选的,所述当客户端启动目标游戏引擎,则在所述目标游戏资源文件对应的资源版本号大于所述目标游戏引擎的资源版本号时,从所述云端资源服务器下载所述目标游戏资源文件至本地,包括:
当客户端启动目标游戏引擎,则确定所述目标游戏引擎的资源版本号,并确定所述云端资源服务器中的所述目标游戏资源文件对应的资源版本号;
将所述目标游戏引擎的资源版本号与所述目标游戏资源文件对应的资源版本号进行对比,如果所述目标游戏资源文件对应的资源版本号大于所述目标游戏引擎的资源版本号,则从所述云端资源服务器下载所述目标游戏资源文件至本地。
可选的,所述当客户端启动目标游戏引擎,则从云端资源服务器下载目标游戏资源文件;其中,所述目标游戏资源文件为基于所述目标游戏引擎的热更新代码生成的文件,包括:
当客户端启动Unity,则从云端资源服务器下载目标游戏资源文件;其中,所述目标游戏资源文件为基于所述目标游戏引擎的热更新C#代码生成的文件。
第二方面,本申请公开了一种游戏引擎热更新装置,包括:
目标游戏资源下载模块,用于当客户端启动目标游戏引擎,则从云端资源服务器下载目标游戏资源文件至本地;其中,所述目标游戏资源文件为基于所述目标游戏引擎的热更新代码生成的文件;
热更新模块,用于启动所述目标游戏引擎中的wasm虚拟机,并通过所述wasm虚拟机加载并执行所述目标游戏资源文件,以便实现所述目标游戏引擎的热更新。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的游戏引擎热更新方法。
第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的游戏引擎热更新方法。
可见,本申请提出一种游戏引擎热更新方法,包括:当客户端启动目标游戏引擎,则从云端资源服务器下载目标游戏资源文件至本地;其中,所述目标游戏资源文件为基于所述目标游戏引擎的热更新代码生成的文件;启动所述目标游戏引擎中的wasm虚拟机,并通过所述wasm虚拟机加载并执行所述目标游戏资源文件,以便实现所述目标游戏引擎的热更新。综上可见,本申请使用wasm虚拟机加载并执行目标游戏资源文件,以实现目标游戏引擎的热更新,如此一来,在开发游戏的热更新项目时无需编写多种编程语言,便可以实现在不同系统上的热更新,降低了开发难度,提高了开发效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种游戏引擎热更新方法流程图;
图2为本申请公开的一种具体的游戏引擎热更新方法流程图;
图3为本申请公开的一种热更新代码结构的示意图;
图4为本申请公开的一种游戏引擎热更新装置结构示意图;
图5为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了满足在IOS系统上热更新的问题,常采用XLua,Puerts等热更方案,但是这些方案,要求开发人员在开发时,编写两种编程语言,如此一来,会降低游戏开发效率,此外,Androi端支持C#反射热更,但是为了兼容IOS热更需求,不得不放弃原生热更,从而采用XLua,Puerts等热更方案。在运行时,因为Lua虚拟机,和js虚拟机性能不太好,容易在低端手机上引起发热和卡顿。
为此,本申请实施例提出一种游戏引擎热更新方案,能够在开发游戏的热更新项目时如何无需编写多种编程语言,便可以实现在不同系统上的热更新,以降低开发难度,提高开发效率。
本申请实施例公开了一种游戏引擎热更新方法,参见图1所示,该方法包括:
步骤S11:当客户端启动目标游戏引擎,则从云端资源服务器下载目标游戏资源文件至本地;其中,所述目标游戏资源文件为基于所述目标游戏引擎的热更新代码生成的文件。
本实施例中,所述客户端可以是IOS客户端或者Android客户端,当客户端启动目标游戏引擎,则从云端资源服务器下载目标游戏资源文件;其中,所述目标游戏资源文件为基于所述目标游戏引擎的热更新C#代码生成的文件。
需要指出的是,在当客户端启动目标游戏引擎,则从云端资源服务器下载目标游戏资源文件至本地之前,需要将所述目标游戏引擎的热更新代码编译为动态链接库文件,并将所述动态链接库文件编译为wasm文件,然后将所述wasm文件打包为所述目标游戏资源文件,并将所述游戏资源文件上传至所述云端资源服务器,需要指出的是,所述目标游戏引擎可以是Unity。
步骤S12:启动所述目标游戏引擎中的wasm虚拟机,并通过所述wasm虚拟机加载并执行所述目标游戏资源文件,以便实现所述目标游戏引擎的热更新。
本实施例中,需要在目标游戏引擎中集成wasm虚拟机,进一步的,启动所述目标游戏引擎中的wasm虚拟机,并通过所述wasm虚拟机加载并执行所述目标游戏资源文件。所述通过所述wasm虚拟机加载并执行所述目标游戏资源文件,具体包括:通过所述wasm虚拟机加载并执行所述目标游戏资源文件中的所述wasm文件,以便实现所述目标游戏引擎的热更新。如此一来,在开发游戏的热更新项目时无需编写多种编程语言,便可以实现在IOS客户端或者Android客户端上的热更新,降低了开发难度,提高了开发效率。
在一种具体的实施方式中,当目标游戏引擎是Unity时,需要在Unity中先集成wasm虚拟机,进一步的,启动所述Unity中的wasm虚拟机,并通过所述wasm虚拟机加载并执行所述目标游戏资源文件中的wasm文件。由于Unity作本身并不支持在IOS系统上执行热更新操作,而为了满足在IOS系统上热更新的问题,常采用XLua,Puerts等热更方案,但是这些方案,要求开发人员在开发时,编写两种编程语言,如此一来,会降低游戏开发效率,相较于传统的需要编写两种编程语言的热更方案,本申请在Unity的开发阶段,使用C#语言开发,并且本申请将热更的C#代码单独编译为动态链接库文件,并将所述动态链接库文件编译为wasm文件,然后将所述wasm文件打包为所述目标游戏资源文件,并通过预先集成在Unity中的wasm虚拟机加载并执行所述目标游戏资源文件,以便实现所述目标游戏引擎的热更新,由于wasm虚拟机的性能远高于其他虚拟机,因此本申请能够大幅度优化性能,并能够提高开发以及执行效率。
可见,本申请提出一种游戏引擎热更新方法,包括:当客户端启动目标游戏引擎,则从云端资源服务器下载目标游戏资源文件至本地;其中,所述目标游戏资源文件为基于所述目标游戏引擎的热更新代码生成的文件;启动所述目标游戏引擎中的wasm虚拟机,并通过所述wasm虚拟机加载并执行所述目标游戏资源文件,以便实现所述目标游戏引擎的热更新。综上可见,本申请使用wasm虚拟机加载并执行目标游戏资源文件,以实现目标游戏引擎的热更新,如此一来,在开发游戏的热更新项目时无需编写多种编程语言,便可以实现在不同系统上的热更新,降低了开发难度,提高了开发效率。
本申请实施例公开了一种具体的游戏引擎热更新方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图2所示,具体包括:
步骤S21:当客户端启动目标游戏引擎,则在所述目标游戏资源文件对应的资源版本号大于所述目标游戏引擎的资源版本号时,从所述云端资源服务器下载所述目标游戏资源文件至本地;其中,所述目标游戏资源文件为基于所述目标游戏引擎的热更新代码生成的文件。
本实施例中,当客户端启动目标游戏引擎,则确定所述目标游戏引擎的资源版本号,并确定所述云端资源服务器中的所述目标游戏资源文件对应的资源版本号,然后将所述目标游戏引擎的资源版本号与所述目标游戏资源文件对应的资源版本号进行对比,如果所述目标游戏资源文件对应的资源版本号大于所述目标游戏引擎的资源版本号,则从所述云端资源服务器下载所述目标游戏资源文件至本地。
步骤S22:启动所述目标游戏引擎中的wasm虚拟机,并通过所述wasm虚拟机加载并执行所述目标游戏资源文件,以便实现所述目标游戏引擎的热更新。
其中,关于步骤S22更加具体的工作过程参见前述公开的实施例所示,在此不做具体赘述。
也就是说,本申请通过将目标游戏引擎的资源版本号与目标游戏资源文件对应的资源版本号进行比较,进一步判断是否需要从所述云端资源服务器下载所述目标游戏资源文件至本地,如果所述目标游戏资源文件对应的资源版本号大于所述目标游戏引擎的资源版本号,则从所述云端资源服务器下载所述目标游戏资源文件至本地,然后启动所述目标游戏引擎中的wasm虚拟机,并通过所述wasm虚拟机加载并执行所述目标游戏资源文件,以便实现所述目标游戏引擎的热更新。如此一来,在开发游戏的热更新项目时无需编写多种编程语言,便可以实现在不同系统上的热更新,降低了开发难度,提高了开发效率。
在一种具体的实施方式中,本申请能够包括以下内容:1、在Unity中集成wasm虚拟机,具体的,在Unity中集成WasmerSharp,WasmerSharp是wasmer提供的WebAssembly超轻量级容器,WebAssembly是一种运行在现代网络浏览器中的新型代码,提供新的性能特性和效果;2、为C#代码和WebAssembly交互编写桥接代码,本申请编写桥接代码给WebAssembly侧调用,所述桥接代码具体可以是:
在交互传递参数时,将数据内容存贮到Memory中,并将地址传递给此代码,在C#以内存读取的方式获取传递参数内容;3、在Unity开发阶段,使用C#来开发,但是需要将热更的C#代码,全部放到一个文件夹下,在文件夹最外层新建一个Assembly Definition文件,并命名为需要的热更的dll名字,比如说HotFix.asmdef,参见图3所示,它能在编译时,将HotFix.asmdef所在文件夹下的所有代码,编译成一个dll,并在打包时,使用Unity的IPreprocessBuildWithReport接口,移除指定的dll,也即,将热更代码排除;具体热更代码结构如下:
4、将热更的C#代码编译成wasm字节码,将wasm字节码打包成游戏资源文件,上传至云端资源服务器;5、IOS或android客户端在启动时,和资源服务器对比资源版本号,如果服务器上的版本号比本地的高,则将服务器上最新的资源下载至本地;6、启动wasm虚拟机,加载资源文件中的wasm字节码,开始执行,即可实现IOS平台和android平台的热更新,执行过程如下所示:
由此可见,本申请开发时使用C#语言开发,无需编写多种编程语言,降低热更新项目开发难度,增加开发效率,其次,本申请使用wasm虚拟机加载并执行资源文件,以便实现游戏引擎的热更新,其执行效率接近原生代码执行效率,性能远高于其他虚拟机。
相应的,本申请实施例还公开了一种游戏引擎热更新装置,参见图4所示,该装置包括:
目标游戏资源下载模块11,用于当客户端启动目标游戏引擎,则从云端资源服务器下载目标游戏资源文件至本地;其中,所述目标游戏资源文件为基于所述目标游戏引擎的热更新代码生成的文件;
热更新模块12,用于启动所述目标游戏引擎中的wasm虚拟机,并通过所述wasm虚拟机加载并执行所述目标游戏资源文件,以便实现所述目标游戏引擎的热更新。
其中,关于上述各个模块更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本申请提出一种游戏引擎热更新方法,包括:当客户端启动目标游戏引擎,则从云端资源服务器下载目标游戏资源文件至本地;其中,所述目标游戏资源文件为基于所述目标游戏引擎的热更新代码生成的文件;启动所述目标游戏引擎中的wasm虚拟机,并通过所述wasm虚拟机加载并执行所述目标游戏资源文件,以便实现所述目标游戏引擎的热更新。综上可见,本申请使用wasm虚拟机加载并执行目标游戏资源文件,以实现目标游戏引擎的热更新,如此一来,在开发游戏的热更新项目时无需编写多种编程语言,便可以实现在不同系统上的热更新,降低了开发难度,提高了开发效率。
进一步的,本申请实施例还提供了一种电子设备。图5是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图5为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、显示屏23、输入输出接口24、通信接口25、电源26和通信总线27。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现以下步骤:
当客户端启动目标游戏引擎,则从云端资源服务器下载目标游戏资源文件至本地;其中,所述目标游戏资源文件为基于所述目标游戏引擎的热更新代码生成的文件;
启动所述目标游戏引擎中的wasm虚拟机,并通过所述wasm虚拟机加载并执行所述目标游戏资源文件,以便实现所述目标游戏引擎的热更新。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,进一步还可以实现以下步骤:
在所述目标游戏引擎中集成所述wasm虚拟机。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,进一步还可以实现以下步骤:
将所述目标游戏引擎的热更新代码编译为动态链接库文件,并将所述动态链接库文件编译为wasm文件;
将所述wasm文件打包为所述目标游戏资源文件,并将所述游戏资源文件上传至所述云端资源服务器。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
通过所述wasm虚拟机加载并执行所述目标游戏资源文件中的所述wasm文件,以便实现所述目标游戏引擎的热更新。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
当客户端启动目标游戏引擎,则在所述目标游戏资源文件对应的资源版本号大于所述目标游戏引擎的资源版本号时,从所述云端资源服务器下载所述目标游戏资源文件至本地。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
当客户端启动目标游戏引擎,则确定所述目标游戏引擎的资源版本号,并确定所述云端资源服务器中的所述目标游戏资源文件对应的资源版本号;
将所述目标游戏引擎的资源版本号与所述目标游戏资源文件对应的资源版本号进行对比,如果所述目标游戏资源文件对应的资源版本号大于所述目标游戏引擎的资源版本号,则从所述云端资源服务器下载所述目标游戏资源文件至本地。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
当客户端启动Unity,则从云端资源服务器下载目标游戏资源文件;其中,所述目标游戏资源文件为基于所述目标游戏引擎的热更新C#代码生成的文件。
本实施例中,电源26用于为电子设备20上的各硬件设备提供工作电压;通信接口25能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口24,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括计算机程序221,存储方式可以是短暂存储或者永久存储。其中,计算机程序221除了包括能够用于完成前述任一实施例公开的由电子设备20执行的游戏引擎热更新方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的游戏引擎热更新方法。
关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本申请书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种游戏引擎热更新方法、装置、设备、存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种游戏引擎热更新方法,其特征在于,包括:
当客户端启动目标游戏引擎,则从云端资源服务器下载目标游戏资源文件至本地;其中,所述目标游戏资源文件为基于所述目标游戏引擎的热更新代码生成的文件;
启动所述目标游戏引擎中的wasm虚拟机,并通过所述wasm虚拟机加载并执行所述目标游戏资源文件,以便实现所述目标游戏引擎的热更新。
2.根据权利要求1所述的游戏引擎热更新方法,其特征在于,所述启动所述目标游戏引擎中的wasm虚拟机之前,还包括:
在所述目标游戏引擎中集成所述wasm虚拟机。
3.根据权利要求1所述的游戏引擎热更新方法,其特征在于,所述当客户端启动目标游戏引擎,则从云端资源服务器下载目标游戏资源文件至本地之前,还包括:
将所述目标游戏引擎的热更新代码编译为动态链接库文件,并将所述动态链接库文件编译为wasm文件;
将所述wasm文件打包为所述目标游戏资源文件,并将所述游戏资源文件上传至所述云端资源服务器。
4.根据权利要求3所述的游戏引擎热更新方法,其特征在于,所述通过所述wasm虚拟机加载并执行所述目标游戏资源文件,以便实现所述目标游戏引擎的热更新,包括:
通过所述wasm虚拟机加载并执行所述目标游戏资源文件中的所述wasm文件,以便实现所述目标游戏引擎的热更新。
5.根据权利要求3所述的游戏引擎热更新方法,其特征在于,所述当客户端启动目标游戏引擎,则从云端资源服务器下载目标游戏资源文件至本地,包括:
当客户端启动目标游戏引擎,则在所述目标游戏资源文件对应的资源版本号大于所述目标游戏引擎的资源版本号时,从所述云端资源服务器下载所述目标游戏资源文件至本地。
6.根据权利要求5所述的游戏引擎热更新方法,其特征在于,所述当客户端启动目标游戏引擎,则在所述目标游戏资源文件对应的资源版本号大于所述目标游戏引擎的资源版本号时,从所述云端资源服务器下载所述目标游戏资源文件至本地,包括:
当客户端启动目标游戏引擎,则确定所述目标游戏引擎的资源版本号,并确定所述云端资源服务器中的所述目标游戏资源文件对应的资源版本号;
将所述目标游戏引擎的资源版本号与所述目标游戏资源文件对应的资源版本号进行对比,如果所述目标游戏资源文件对应的资源版本号大于所述目标游戏引擎的资源版本号,则从所述云端资源服务器下载所述目标游戏资源文件至本地。
7.根据权利要求1至6任一项所述的游戏引擎热更新方法,其特征在于,所述当客户端启动目标游戏引擎,则从云端资源服务器下载目标游戏资源文件;其中,所述目标游戏资源文件为基于所述目标游戏引擎的热更新代码生成的文件,包括:
当客户端启动Unity,则从云端资源服务器下载目标游戏资源文件;其中,所述目标游戏资源文件为基于所述目标游戏引擎的热更新C#代码生成的文件。
8.一种游戏引擎热更新装置,其特征在于,包括:
目标游戏资源下载模块,用于当客户端启动目标游戏引擎,则从云端资源服务器下载目标游戏资源文件至本地;其中,所述目标游戏资源文件为基于所述目标游戏引擎的热更新代码生成的文件;
热更新模块,用于启动所述目标游戏引擎中的wasm虚拟机,并通过所述wasm虚拟机加载并执行所述目标游戏资源文件,以便实现所述目标游戏引擎的热更新。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的游戏引擎热更新方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的游戏引擎热更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211246117.9A CN115624757A (zh) | 2022-10-12 | 2022-10-12 | 一种游戏引擎热更新方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211246117.9A CN115624757A (zh) | 2022-10-12 | 2022-10-12 | 一种游戏引擎热更新方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115624757A true CN115624757A (zh) | 2023-01-20 |
Family
ID=84904924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211246117.9A Withdrawn CN115624757A (zh) | 2022-10-12 | 2022-10-12 | 一种游戏引擎热更新方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115624757A (zh) |
-
2022
- 2022-10-12 CN CN202211246117.9A patent/CN115624757A/zh not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105100191B (zh) | 一种云编译实现Java应用安装的方法、装置及系统 | |
CN112256286B (zh) | 一种应用运行的方法、装置及计算机存储介质 | |
US7694291B2 (en) | Build optimizer tool for efficient management of software builds for mobile devices | |
CN107506221B (zh) | 应用程序升级方法、装置及设备 | |
CN109491695A (zh) | 一种集成安卓应用的增量更新方法 | |
CN106897103B (zh) | 一种移动端网络游戏版本快速热更新的方法 | |
CN105407130A (zh) | 一种移动端插件系统及移动端插件处理方法 | |
CN106095504B (zh) | 预置应用加载方法和移动终端 | |
CN105320554A (zh) | 程序更新的方法、用于程序更新的客户端及系统 | |
CN114816417B (zh) | 一种交叉编译方法、装置、计算设备及存储介质 | |
EP1691282A1 (en) | Build optimizer tool for efficient management of software builds for mobile devices | |
CN112835975B (zh) | 一种在区块链中部署、更新、调用智能合约的方法 | |
CN107239309B (zh) | 补丁生成方法及装置、更新方法、电子设备、存储介质 | |
CN109857432B (zh) | 一种游戏应用的热更新方法和装置 | |
CN111290801A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN110532016B (zh) | 版本管理方法、版本更新方法和版本管理系统 | |
CN108694049B (zh) | 一种更新软件的方法和设备 | |
CN110032425B (zh) | 一种动态链接库文件虚拟化方法、系统及存储介质 | |
US8719812B1 (en) | Methods, systems, and computer readable media for dynamically modifying and utilizing a software package description for software installation | |
CN112000334A (zh) | 页面开发方法、装置、服务器及存储介质 | |
CN115624757A (zh) | 一种游戏引擎热更新方法、装置、设备及介质 | |
CN116069366A (zh) | 客户端应用程序更新方法及装置、存储介质及电子设备 | |
CN116401003A (zh) | 基于桌面操作系统的安卓应用运行方法、系统及存储介质 | |
CN114860202A (zh) | 项目运行方法、装置、服务器及存储介质 | |
CN113849181A (zh) | 交叉编译工具链构建方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20230120 |
|
WW01 | Invention patent application withdrawn after publication |