CN112604296B - 一种游戏更新的方法、电子设备和相关系统 - Google Patents

一种游戏更新的方法、电子设备和相关系统 Download PDF

Info

Publication number
CN112604296B
CN112604296B CN202011622312.8A CN202011622312A CN112604296B CN 112604296 B CN112604296 B CN 112604296B CN 202011622312 A CN202011622312 A CN 202011622312A CN 112604296 B CN112604296 B CN 112604296B
Authority
CN
China
Prior art keywords
game
update
electronic device
module
electronic equipment
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.)
Active
Application number
CN202011622312.8A
Other languages
English (en)
Other versions
CN112604296A (zh
Inventor
吴莫海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Idreamsky Technology Co ltd
Original Assignee
Shenzhen Idreamsky Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Idreamsky Technology Co ltd filed Critical Shenzhen Idreamsky Technology Co ltd
Priority to CN202011622312.8A priority Critical patent/CN112604296B/zh
Publication of CN112604296A publication Critical patent/CN112604296A/zh
Application granted granted Critical
Publication of CN112604296B publication Critical patent/CN112604296B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating 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/69Generating 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

一种游戏更新的方法、电子设备和相关系统。在该方法中,电子设备可以在运行游戏时进行游戏更新,电子设备在运行游戏时,在运行到错误模块之前,用更新模块代替错误模块。电子设备在执行到原错误模块的位置时,就不会执行错误模块,而是执行替换后的更新模块,从而,该错误模块导致的线上问题就可以被修复。实施本申请提供的技术方案,电子设备可以在运行游戏时即可修复线上问题,完成游戏更新,减少了游戏更新时,用户的等待时间。

Description

一种游戏更新的方法、电子设备和相关系统
技术领域
本申请涉及信息处理技术领域,尤其涉及一种游戏更新的方法、电子设备和相关系统。
背景技术
随着信息时代的快速发展,游戏在人们的生活中已经普遍化,用户对游戏的多样化有更高的要求。为了满足用户对游戏多样化的需求,开发商会在一定周期内上线更多的游戏,为了缩短游戏的上线周期,开发商往往会提高游戏的测试速度。很多时候,来不及将游戏中的一些问题测试与改正,导致游戏在发布之后,会出现许多的线上问题。
为了修复游戏中出现的问题,在现有技术中,在游戏上线后会对针对游戏在运行时产生的缺陷进行修复。现有技术的具体做法是当游戏出现问题之后,电子设备针对需要修复的问题从服务器下载更新命令,先利用该更新命令对游戏进行更新,完成更新之后,电子设备可以运行该游戏,完成游戏的更新之后,才能打开游戏继续运行。
这样虽然可以对游戏进行更新,但是,电子设备在下载更新命令之后,需要先更新游戏,游戏更新完成后,才可以打开游戏。如果更新包较大,则会导致更新时间较长,用户需等待较长时间才能进入游戏,体验感不佳。
发明内容
本申请提供了一种游戏更新的方法、电子设备和相关系统,可以在运行游戏时即可修复线上问题,完成游戏更新,减少了游戏更新时,用户的等待时间。
第一方面,本申请提供了一种游戏更新的方法,该方法包括:电子设备从服务器获取更新文件;该更新文件中包括第一更新模块以及更新位置对应关系;该更新位置对应关系包括该电子设备中第一游戏的游戏源代码中第一错误模块的位置信息与该更新文件中该第一更新模块的位置信息的对应关系;该第一错误模块是一个导致游戏出现线上问题的构成游戏源代码的方法;该第一更新模块是修复该第一错误模块的构成游戏源代码的方法;该电子设备在运行该第一游戏时,该电子设备根据该更新文件中的更新位置对应关系,将该第一游戏的游戏源代码中的该第一错误模块替换为该第一更新模块;当该电子设备运行到该第一错误模块的位置时,该电子设备运行该第一更新模块。
实施第一方面的方法,电子设备可以在运行游戏时即可修复线上问题,完成游戏更新,减少了游戏更新时,用户的等待时间。
结合第一方面的方法,在一种实施方式中,该电子设备确定该电子设备中第一游戏的版本信息;该电子设备从该服务器拉取与该第一游戏的版本信息对应的更新文件;该电子设备读取该更新文件。这样,可以使电子设备可以拉取到对应游戏的版本信息的更新文件。
结合第一方面的方法,在一种实施方式中,该电子设备保存更新后的第一游戏的游戏源代码。
结合第一方面的方法,在一种实施方式中,在运行该第一游戏时,该电子设备采取动态编译的方式编译该第一游戏的游戏源代码。
结合第一方面的方法,在一种实施方式中,该电子设备在运行该第一游戏时,该电子设备根据该更新文件中的更新位置对应关系,使用该第一更新模块覆盖该第一错误模块。
结合第一方面的方法,在一种实施方式中,该电子设备在运行该第一游戏时,该电子设备根据该更新文件中的更新位置对应关系,将指向该第一错误模块的指针指向该第一更新模块。
第二方面,本申请提供了一种电子设备,该电子设备包括:一个或多个处理器和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行如第一方面或第一方面的任意一种实施方式该的方法。
第三方面,本申请提供了一种芯片系统,该芯片系统应用于电子设备,该芯片系统包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行如第一方面或第一方面的任意一种实施方式该的方法。
第四方面,本申请提供了一种包含指令的计算机程序产品,其特征在于,当该计算机程序产品在电子设备上运行时,使得该电子设备执行如第一方面或第一方面的任意一种实施方式该的方法。
第五方面,本申请提供了一种计算机可读存储介质,包括指令,其特征在于,当该指令在电子设备上运行时,使得该电子设备执行如第一方面或第一方面的任意一种实施方式该的方法。
附图说明
图1是本申请实施例提供的电子设备判断模块是否被加载到内存中的示意图;
图2是本申请实施例提供的电子设备利用更新模块替换错误模块的示意图;
图3是本申请实施例提供的更新文件的示意图;
图4是现有技术中游戏更新时,电子设备的处理流程图;
图5是本申请实施例提供的游戏更新时,电子设备的处理流程图;
图6是本申请实施例提供的多设备系统100的结构示意图;
图7是本申请实施例提供的游戏更新的方法的总体流程;
图8是本申请实施例提供的电子设备打开游戏时的一种示例性场景;
图9是本申请实施例提供的电子设备加载游戏时的一种示例性场景;
图10A、图10B是本申请实施例提供的电子设备运行游戏时的一种示例性场景;
图11是本申请实施例提供的一种利用更新模块替换错误模块的示意图;
图12是本申请实施例提供的另一种利用更新模块替换错误模块的示意图;
图13是本申请实施例提供的电子设备的硬件结构示意图;
图14是本申请实施例提供的电子设备的数据处理装置的结构图。
具体实施方式
本申请以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本申请中使用的术语“和/或”是指并包含一个或多个所列出项目的任何或所有可能组合。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
为便于理解,下面先对本申请实施例涉及的相关术语及概念介绍。
(1)错误模块:
在游戏的开发过程中,采取的编译语言都是将完成游戏所需的逻辑写进方法中封装起来。有些方法与另一些方法之间可以相互调用。例如,如下所示为方法“Test”,该方法调用另一个方法“Mul”,完成逻辑a*b。
function Test:Mul()
return a*b;
end
在该方法中,“function Test:Mul()”表示方法“Test”的开始,“return a*b”表示方法“Test”调用方法“Mul”完成逻辑a*b,“return”表示将逻辑a*b的结果利用返回到该方法。“end”表示该方法的结束。
在本申请实施例中,将构成游戏源代码的方法称为模块,一个方法就是一个模块。每个模块都具有相应的功能,都要完成相应的任务,并输出该任务对应的结果。错误模块就是在游戏运行时,没有正确完成该错误模块对应的任务,输出该任务对应的结果,导致线上问题的那部分源代码。
在本申请实施例中,可以有很多种确定错误模块的方式:
在一些实施例中,电子设备运行模块对应的源代码时,可以进行错误捕获,如果在运行时,捕获到了错误,就可以确定该模块为错误模块。
可以理解的是,还可以有很多其他的确定错误模块的方式,此处不作限定。
在一些实施例中,电子设备可以将确定的错误模块的标识上报给开发者,便于开发者对错误模块进行修改和更新。
在本申请实施例中,电子设备可以将错误模块加载到内存中。
图1示例性的示出了电子设备利用模块102判断模块101是否已经被加载到内存中的源代码。如图1所示,模块102中利用“if package.loaded["Test"]==nil”来判断模块101是否被加载到内存中,如果电子设备判断模块101不在内存中,则电子设备会将该模块101加载到内存中。
(2)更新模块:
在本申请实施中,每一个错误模块都可以对应一个更新模块。电子设备在错误模块被编译之前,可以利用正确的模块去替换该错误模块,这个正确的模块就是更新模块。
对于运行方式是动态编译的编译语言编写的游戏,在游戏运行时,可以采取动态编译的方式编译游戏源代码。即电子设备将源代码载入内存后一段一段地解释编译,再运行编译过的代码,电子设备不运行没有编译过的代码。每一段源代码都包含一个或一个以上的模块。
在本申请实施例中,电子设备采取动态编译的方式运行代码,电子设备可以在错误模块被编译之前,用更新模块将错误模块替换掉,等到该编译原来被替换掉的错误模块时,被编译的就是更新模块,运行的也是更新模块,这样就可以修复该错误模块导致的线上问题。
具体的,在一些实施例中,电子设备可以先加载错误模块到内存中,然后再用该错误模块对应的更新模块替换该错误模块。
图2示例性的示出了电子设备利用更新模块201替换错误模块202的示意图。
如图2所示,错误模块202中包含错误源代码:“a+b”,在电子设备编译该错误模块202之前,电子设备可以利用更新模块201替换该错误模块202。更新模块202中将错误的源代码替换成了正确的源代码:“a*b”。这样,由错误模块导致的问题可以得到修复。
(3)更新文件:
在本申请实施例中,开发人员会将游戏更新需要的数据配置到更新文件中,然后将该更新文件上传到服务器,电子设备可以获取该更新文件。
在一些实施例中,该更新文件中至少应该包含更新模块涉及的源代码,还可以包含其他的相关信息。
如图3所示,更新文件中包含文件信息与更新信息。
更新文件中包括文件信息,例如,游戏版本信息、更新日志信息、密钥信息等。该文件信息可以用于电子设备判断是否从服务器中拉取更新文件时使用。也可以用于电子设备拉取更新文件时使用。
其中,游戏版本信息是指该更新文件对应哪个版本的游戏,不同的游戏版本对应不同的更新文件。
更新日志信息可以记录反映更新文件变化的信息,例如,更新文件上传到服务器的时间,被下载的次数等,也可以记录该更新文件中加入的更新模块及其加入的时间信息。
密钥信息是指下载该更新文件所需的密钥,可以保证更新文件的安全,只有在提供了正确的下载密钥时,才可以下载该更新文件。
更新文件中还包括更新信息。一个更新模块与一个附加信息结合起来,开发人员可以将修复游戏中出现的线上问题所需的所有更新模块及其对应的附加信息整合到一起,配置到更新文件中。
在本申请实施例中,每一个更新模块都对应一个附加信息,即每一个更新模块都要与一个附加信息结合起来。附加信息中可以包含以下相关信息:例如替换指令信息,该替换指令信息提供了如何将更新模块与其对应的错误模块进行替换。对于替换指令信息,后续实施例将详细介绍,此处暂不赘述。
更新文件中,除了前述的更新模块与附加信息,还可以包括一个位置-模块信息,如表1所示,为本申请实施例中该位置-模块信息的一个示例。该位置-模块信息中可以记录更新位置对应关系。更新位置对应关系包括电子设备中第一游戏的游戏源代码中错误模块的位置信息与更新文件中该错误模块对应的更新模块的位置信息的对应关系。第一游戏为电子设备正在运行的游戏。
表1
在本申请实施例中,更新文件中还可以包括其他的相关信息,此处不作限定。电子设备在对游戏进行更新时,可以从服务器中拉取该更新文件用于修复游戏中出现的线上问题。每一个版本的游戏都对应一个更新文件,开发人员可以不断更新该更新文件中的内容,将游戏在上线之后遇到的问题更新进去。后面上传的更新文件会替换之前上传的更新文件,即每一个版本的游戏只保留一个更新文件。
图4示出了现有技术中游戏更新的方法。如图4所示,电子设备在游戏开始运行前,确定游戏需要更新,从服务器中下载更新需要的更新命令。更新命令是开发人员根据游戏运行过程中出现的问题所确定的更新内容配置并上传到服务器的更新命令。电子设备需要对游戏进行更新时可以从服务器上下载该更新命令。在获取更新命令之后,电子设备利用该更新命令对游戏进行更新。更新完成后,即可修复线上问题,此时,电子设备可以开始运行更新后的游戏。
采取现有技术的方法对游戏进行更新时,电子设备在游戏更新完成后,才可以打开游戏。如果更新包较大,则会导致更新时间较长,用户需等待较长时间才能进入游戏,体验感不佳。
为了解决现有技术存在的问题,本申请以下实施例提供了游戏更新的方法。在该方法中,登录游戏时仍然是未更新的游戏,在游戏运行的过程中,电子设备可以一边运行游戏,一边修改游戏中导致线上问题的问题模块,修复线上问题,完成游戏更新。电子设备无需等待游戏更新完成之后才可以运行游戏。
本申请实施例中,即使有需要更新的内容,电子设备也可以直接运行游戏。如图5所示,电子设备在加载游戏之后,可以先判断是否需要修复。如果需要修复,则用更新模块替换游戏中导致线上问题的错误模块,即在电子设备运行游戏时,在运行到错误模块之前,用更新模块代替错误模块。在电子设备加载游戏之后,如果判断无需修复,则可以继续运行原来的游戏。具体的,电子设备可以先加载错误模块到内存中,然后再用该错误模块对应的更新模块替换该错误模块。这样,电子设备在执行到原错误模块的位置时,就不会执行错误模块,而是执行替换后的更新模块,从而,该错误模块导致的线上问题就可以被修复。
与现有技术相比,在修复游戏中的线上问题时,采取本方案,在运行游戏时即可修复线上问题,完成游戏更新,减少了游戏更新时,用户的等待时间。
下面首先介绍本申请实施例应用的多设备系统100。
如图6所示,该多设备系统100包括:多个电子设备,例如电子设备101-103,以及服务器104。
本申请实施例中的电子设备可以是搭载Android、鸿蒙系统(HarmonyOS)、iOS、Microsoft或者其它操作系统的终端设备,例如手机、平板电脑、笔记本电脑、个人计算机、具有触敏表面或触控面板的台式计算机等。如在图6所示的例子中,电子设备例如电子设备101-103中均可以安装游戏。其中,电子设备101为手机、电子设备102为平板电脑、电子设备103为笔记本电脑。
本申请实施例中的服务器104可用于为游戏提供各项服务,例如数据管理服务(上传与下载文件到服务器)、连接服务等。
本申请实施例中的服务器104可以是一个超级虚拟计算机或者内容分发网络(content delivery network,CDN)服务器,也可以是其他可以为游戏提供服务的服务器。
电子设备通过接入互联网,可以访问服务器104,电子设备可通过3G、4G、5G等蜂窝移动通信技术、广域网(wide area network,WAN)技术、局域网(local area network,LAN)技术或无线局域网(wireless LAN,WLAN)技术等和服务器104通信。
电子设备101-103可以运行游戏,并通过服务器104下载针对游戏的线上问题进行修复所需的更新文件。
以电子设备101运行修改线上问题为例进行说明。
开发人员将修改线上问题所需的更新模块置于一个更新文件中,然后上传到服务器中。电子设备101在登录游戏之后,判断有线上问题需要修复时,可以在从服务器中拉取更新文件到本地,然后运行游戏并读取更新文件,根据更新文件中的更新模块替换游戏中导致线上问题的错误模块,修复线上问题。
下面结合上述多设备系统100,对本申请实施例中的游戏更新的方法进行描述:
图7示出了游戏更新的方法的总体流程图。如图7所示,该方法可包括:
S701,响应于用户操作,电子设备打开游戏;
电子设备响应于用户操作,打开游戏,进入游戏界面。
图8示例性示出了电子设备的用户界面80。该用户界面80是电子设备打开游戏时的一个用户界面。该用户界面80包含提示框801,该提示框801中有提示文字:“正在打开游戏”。此时,电子设备处于刚进入游戏的状态,电子设备还没有加载游戏。
S702、电子设备加载游戏;
电子设备打开游戏之后,开始加载游戏。加载游戏是指电子设备对运行游戏所需资源的加载,例如人物信息、系统框架、游戏界面、数据等。在本申请实施中,数据包括游戏的源代码从服务器中拉取的更新文件。
图9示例性示出了电子设备的用户界面90。该用户界面90是电子设备加载游戏时的一个用户界面。该用户界面90包含提示框901,该提示框901中有提示文字901A:“正在加载游戏,请您耐心等待!”,还有进度条901B,该进度条901B用于提示用户游戏的加载进度,如图9所示,当前游戏已经记载了10%。
可选的,在打开游戏之后,加载游戏之前,电子设备可以对游戏进行更新,更新之后,电子设备才可以开始运行游戏。
S703、电子设备运行游戏;
电子设备加载游戏之后,可以按照游戏规则响应用户操作,开始运行游戏。
参考图10A、图10B,图10A、图10B示例性示出了电子设备运行游戏的场景图。
图10A为电子设备上显示的用户界面100,该用户界面100是电子设备运行游戏时的一个用户界面。该用户界面100包含开始游戏控件1001。该开始游戏控件1001用于接收用户操作,以确定电子设备是否开始游戏。
响应于用户点击用户界面100中开始游戏控件1001的操作,电子设备进入开始游戏的状态,电子设备可以显示出如图10B所示的用户界面101。
如图10B所示,为电子设备开始游戏之后的一个用户界面101,该用户界面101中包含有团队模式控件1011。该团队模式控件1011用于接收用户操作,以确定电子设备是否进行团队模式下的游戏状态。该用户界面中还包含有单人模式控件1012。该单人模式控件1012用于接收用户操作,以确定电子设备是否进行单人模式下的游戏状态。
可选的,加载游戏之后,运行游戏之前,电子设备可以显示游戏登录界面,响应于用户操作,电子设备登录游戏之后再开始运行游戏。
S704,电子设备判断游戏是否需要修复。
电子设备开始运行游戏之后,会判断游戏是否需要修复。在本申请实施例中,电子设备采取检测游戏版本以及游戏完整性的方法来判断游戏是否需要修复。
不同的游戏版本需要修复的问题不一样,对应的更新文件不一样,所以电子设备在判断游戏是否需要修复时,要先检测游戏版本。电子设备确定游戏版本之后,开始检测游戏完整性,即判断当前这个版本的游戏是否需要修复。
在本申请实施例中,电子设备会保存当前版本的游戏最后一次修复线上问题所使用的更新文件。电子设备通过判断本地保存的更新文件是否是这个版本的游戏的最新的更新文件来确定游戏是否需要更新。如果电子设备保存的更新文件是这个版本的游戏的最新的更新文件,则电子设备判断游戏不需要更新。如果电子设备保存的更新文件不是这个版本的游戏的最新的更新文件,则电子设备判断游戏需要更新。
可选的,在一些实施例中,如果电子设备的缓存中没有更新文件,即更新文件是第一次下载,或者下载后被删除,则检测服务器上是否有更新文件可以下载,如果有,则判断游戏需要更新。
具体的,在另一些实施中,如果电子设备的缓存中有更新文件,则电子设备在登录游戏之后,读取该更新文件中的文件信息里保存的第一更新时间,该第一更新时间可以为更新日志信息中保存的更新文件上传到服务器的时间。电子设备判断该第一更新时间之后是否还有新的更新文件被上传到服务器上,如果有,则确定游戏需要修复线上问题。具体的,电子设备从服务器获取最新上传的更新文件中保存的文件信息里保存的第二更新时间,该第二更新时间为更新日志信息中保存的更新文件上传到服务器的时间。如果第二更新时间与第一更新时间不同,则电子设备判断游戏需要修复。如果第二更新时间与第一更新时间相同,则电子设备判断游戏不需要修复。
可选步骤S705-S708,在S704中,如果电子设备判断游戏需要修复,则执行步骤S705-S708。
S705,电子设备拉取服务器中保存的更新文件。
在一些实施例中,电子设备判断游戏需要修复之后,与服务器建立连接,从服务器中下载修复线上问题需要的更新文件。
电子设备可以通过匹配游戏版本信息来确定具体下载哪个更新文件,可以通过匹配密钥信息来确定具体下载哪个更新文件,也可以通过上述两种方式结合来确定具体下载哪个更新文件。
具体的,在一些实施例中,电子设备获取当前运行的游戏的版本信息,电子设备拉取与该游戏的版本信息对应的更新文件到本地。具体的,电子设备根据该游戏的版本信息去对比服务器中保存的更新文件中的游戏版本信息。如果更新文件中的游戏版本信息与当前运行的游戏的版本信息相同,则电子设备拉取该更新文件到本地。
在另一些实施例中,电子设备从服务器上拉取更新文件时,可以提供密钥,该密钥可以是开发人员在开发游戏时,保存在游戏的源代码中的密钥。当密钥与更新文件的密钥信息匹配时,则电子设备拉取该更新文件到本地。
可以理解的是,电子设备还可以采取其他的方式确定从服务器下载哪个更新文件,此处不作限定。
S706,电子设备读取更新文件。
在本申请实施例中,电子设备在开始运行游戏之后,会读取更新文件,获取更新文件中的更新信息。
电子设备获取到更新信息之后,可以先获取更新信息中的位置-模块信息,将其相对于更新文件独立出来单独存储。这样,电子设备确定有错误模块需要替换时,可以快速的根据该位置-模块信息找到该错误模块对应的更新模块。不需要每次替换错误模块都从更新文件中去读取该位置-模块信息。
可以理解的是,S705、S706是电子设备获取更新文件的步骤。电子设备获取更新文件可以是在S704之后进行,也可以是在S704之前信息,此处不作限定。
S707,电子设备运行游戏时,将错误模块替换为更新模块。
电子设备运行游戏时,采取动态编译的方式编译游戏的游戏源代码。对于每一段游戏源代码,电子设备先编译再运行。在编译每一段游戏源代码之前,电子设备先对该错误模块进行替换,即利用该错误模块对应的更新模块去替换该错误模块,保证电子设备编译的是一个已经将线上问题修复之后的一段游戏源代码。
本申请实施例中,电子设备可以根据更新文件中的每个更新模块对应的附加信息中的替换指令信息确定更新模块替换错误模块的方式。
具体的,替换指令信息可以是电子设备利用更新模块直接覆盖错误模块在游戏源代码中的对应部分,这样游戏的源代码就可以直接被更改。替换指令信息也可以是电子设备将指向错误模块的指针指向错误模块对应的更新模块,在编译到错误模块时,不编译该错误模块,直接编译指针指向的该错误模块对应的更新模块,这样就可以运行正确的游戏源代码。选用哪种方式完成线上问题的修复,实现游戏的更新,取决于附加信息中的替换指令信息。
图11是本申请实施例提供的一种利用更新模块替换错误模块的示意图
具体的,如图11所示,电子设备是利用更新模块直接覆盖错误模块在游戏源代码中的对应部分,在该替换方式中,电子设备直接将游戏源代码中的错误模块修改成更新模块,原来含有错误模块的游戏源代码会修改为错误模块被更新模块替换之后的游戏源代码。具体的,在对一段游戏源代码进行编译之前,可以将第一错误模块利用该第一错误模块对应的第一更新模块进行替换。电子设备从位置-模块信息中获取该第一错误模块在第一游戏的游戏源代码中的位置信息,即该第一错误模块处于整个游戏源代码的何处。电子设备从位置-模块信息中去获取该第一错误模块对应的第一更新模块在更新文件中的位置信息,从而从更新文件中获取该第一错误模块对应的第一更新模块。电子设备将第一游戏的游戏源代码中的该第一错误模块替换为该第一更新模块。
由于在更新信息中,每一个更新模块都会与其对应的附加信息结合起来一起存放,所以电子设备可以利用更新模块在更新文件中的位置信息从更新文件中获取错误模块对应的更新模块和该更新模块对应的附加信息。
电子设备获取错误模块对应的更新模块和附加信息之后,获取附加信息中的替换指令信息,此时,如果替换执行指令信息为利用更新模块直接覆盖错误模块在游戏源代码中的对应部分。则电子设备直接利用错误模块对应的更新模块覆盖该错误模块,修改游戏源代码,修复线上问题。
在另一些实施例中,电子设备获取错误模块对应的更新模块和附加信息之后,读取附加信息中的替换指令信息。如果替换指令信息是电子设备利用指针直接指向错误模块对应的更新模块,则电子设备将全部的更新模块涉及的源代码整合到游戏源代码中。
图12是本申请实施例提供的另一种利用更新模块替换错误模块的示意图。
如图12所示,电子设备将全部的更新模块涉及的源代码整合到游戏源代码中。电子设备在编译这段游戏源代码时,编译完模块1和模块2之后,编译第一错误模块指向的第一更新模块,再编译第一错误模块后面的模块,这样,在修复线上问题时,可以不用覆盖原来的错误模块,可以更快的编译游戏源代码。在这一次游戏运行过程中,可以更快的实现线上问题的修复。
电子设备可以保存更新后的游戏源代码,下次运行游戏时,可以直接运行更新后的游戏源代码。在更新文件没有变化的情况下,电子设备可以不用进行错误模块的替换,直接运行上次存储的更新后的游戏源代码,就可以很快速的解决线上问题。
S708,电子设备继续运行游戏。
电子设备在错误模块被编译之前利用其对应的更新模块将其替换,然后,编译该更新模块,编译完之后,在运行包含该更新模块在内的游戏源代码,即继续运行游戏,直到游戏结束。
可选步骤S708,在S702中,如果电子设备判断游戏不需要修复,则执行步骤S708。
电子设备判断游戏中没有要修复的问题,则不需要读取更新文件,在编译游戏源代码时,直接进行编译,再运行编译过的游戏源代码,运行游戏,直到游戏结束。
需要说明的是,电子设备是采取动态编译的方式编译游戏源代码,当电子设备检测到游戏需要修复之后。当电子设备检测到游戏不需要修复之后电子设备是可以采取动态编译的方式编译游戏源代码,也可以采取静态编译的方式编译游戏源代码,即将要运行的游戏源代码一次性完成编译,在运行编译过后的游戏源代码。
下面首先介绍本申请实施例提供的示例性电子设备。
图13是本发明实施例中的示例性电子设备的硬件结构示意图
应该理解的是,电子设备可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
输入装置1001、输出装置1002、处理器1003和存储器1004(其中电子设备中的处理器1003的数量可以一个或多个,图13中以一个处理器1003为例)。在本申请的一些实施例中,输入装置1001、输出装置1002、处理器1003和存储器1004可通过总线或其它方式连接,其中,图13中以通过总线连接为例。
其中,处理器1003通过调用存储器1004存储的操作指令以使得电子设备执行本申请实施例中的游戏更新的方法。
存储器1004还可以用于提供存储数据,例如该存储器1004可以用于存储游戏更新需要的数据,例如更新文件等数据。
输入装置1001可以是向电子设备输入数据和信息的设备。
输出装置1002可以是电子设备输出数据和信息的设备。例如显示屏,该显示屏可以用于显示游戏中的用户界面。
图14是本申请实施例的电子设备的数据处理装置的结构图。
应该理解的是,电子设备可以具有比图中所示的更多的或者更少的模块,可以组合两个或多个的模块,或者可以具有不同的模块配置。图中所示出的各种模块可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
本申请实施例提供的数据处理装置的一个实施例包括:
获取模块1401,用于电子设备从服务器获取更新文件,该更新文件中包括第一更新模块以及更新位置对应关系,该更新位置对应关系包括该电子设备中第一游戏的游戏源代码中第一错误模块的位置信息与该更新文件中该第一更新模块的位置信息的对应关系,该第一错误模块是一个导致游戏出现线上问题的构成游戏源代码的方法,该第一更新模块是修复该第一错误模块的构成游戏源代码的方法。
运行模块1402,用于电子设备运行第一游戏。
替换模块1403,用于电子设备根据更新文件中的更新位置对应关系,将第一游戏的游戏源代码中的第一错误模块替换为第一更新模块。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
上述实施例中所用,根据上下文,术语“当…时”可以被解释为意思是“如果…”或“在…后”或“检测到…”。类似地,根据上下文,短语“在确定…时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定…”或“在检测到(所陈述的条件或事件)时”。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘)等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。

Claims (9)

1.一种游戏更新的方法,其特征在于,包括:
电子设备运行第一游戏,在确定缓存中存在第一更新文件的情况下,读取所述第一更新文件的文件信息中所记录的第一更新时间,且从服务器中获取最近上传的第二更新文件的文件信息中记录的第二更新时间;其中,所述第一更新时间为所述第一更新文件上传至服务器的时间,所述第二更新时间为所述第二更新文件上传至服务器的时间;
在所述电子设备确定所述第一更新时间与所述第二更新时间相同的情况下,所述电子设备确定所述第一游戏不需要修复;在所述电子设备确定所述第一更新时间与所述第二更新时间不相同的情况下,所述电子设备确定所述第一游戏需要修复;
在确定所述缓存中不存在所述第一更新文件的情况下,所述电子设备检测所述服务器上存在所述第二更新文件时,所述电子设备确定所述第一游戏需要修复;
在确定所述第一游戏需要修复的情况下,所述电子设备从所述服务器下载所述第二更新文件;所述第二更新文件中包括第一更新模块以及更新位置对应关系;所述更新位置对应关系包括所述电子设备中第一游戏的游戏源代码中第一错误模块的位置信息与所述第二更新文件中所述第一更新模块的位置信息的对应关系;所述第一错误模块是一个导致游戏出现线上问题的构成游戏源代码的方法;所述第一更新模块是修复所述第一错误模块的构成游戏源代码的方法;
在所述电子设备确定所述第一游戏需要修复的情况下,所述电子设备在运行所述第一游戏时,所述电子设备根据所述第二更新文件中的更新位置对应关系,确定所述第一游戏的游戏源代码中的所述第一错误模块的位置,并将所述第一错误模块替换为所述第一更新模块;
当所述电子设备运行到所述第一错误模块的位置时,所述电子设备运行所述第一更新模块。
2.根据权利要求1所述的方法,其特征在于,所述电子设备从所述服务器下载所述第二更新文件,具体包括:
所述电子设备确定所述电子设备中第一游戏的版本信息;
所述电子设备从所述服务器拉取与所述第一游戏的版本信息对应的第二更新文件;
所述电子设备读取所述第二更新文件。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述电子设备保存更新后的第一游戏的游戏源代码。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在运行所述第一游戏时,所述电子设备采取动态编译的方式编译所述第一游戏的游戏源代码。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述电子设备在运行所述第一游戏时,所述电子设备根据所述第二更新文件中的更新位置对应关系,将所述第一游戏的游戏源代码中的所述第一错误模块替换为所述第一更新模块,具体包括:
所述电子设备在运行所述第一游戏时,所述电子设备根据所述第二更新文件中的更新位置对应关系,使用所述第一更新模块覆盖所述第一错误模块。
6.根据权利要求1至4中任一项所述的方法,其特征在于,所述电子设备在运行所述第一游戏时,所述电子设备根据所述第二更新文件中的更新位置对应关系,将所述第一游戏的游戏源代码中的所述第一错误模块替换为所述第一更新模块,具体包括:
所述电子设备在运行所述第一游戏时,所述电子设备根据所述第二更新文件中的更新位置对应关系,将指向所述第一错误模块的指针指向所述第一更新模块。
7.一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器和存储器;
所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行如权利要求1-6中任一项所述的方法。
8.一种芯片系统,所述芯片系统应用于电子设备,所述芯片系统包括一个或多个处理器,所述处理器用于调用计算机指令以使得所述电子设备执行如权利要求1-6中任一项所述的方法。
9.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1-6中任一项所述的方法。
CN202011622312.8A 2020-12-30 2020-12-30 一种游戏更新的方法、电子设备和相关系统 Active CN112604296B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011622312.8A CN112604296B (zh) 2020-12-30 2020-12-30 一种游戏更新的方法、电子设备和相关系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011622312.8A CN112604296B (zh) 2020-12-30 2020-12-30 一种游戏更新的方法、电子设备和相关系统

Publications (2)

Publication Number Publication Date
CN112604296A CN112604296A (zh) 2021-04-06
CN112604296B true CN112604296B (zh) 2024-01-26

Family

ID=75249609

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011622312.8A Active CN112604296B (zh) 2020-12-30 2020-12-30 一种游戏更新的方法、电子设备和相关系统

Country Status (1)

Country Link
CN (1) CN112604296B (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100507843C (zh) * 2007-04-05 2009-07-01 杨力祥 一种动态编程方法
KR20130011836A (ko) * 2011-07-22 2013-01-30 (주)네오위즈게임즈 게임 보조 프로그램 제공 서버, 시스템 및 그 방법
CN109298877B (zh) * 2018-09-17 2021-10-19 北京智明星通科技股份有限公司 游戏更新方法及系统、终端和计算机可读存储介质
CN111111209B (zh) * 2019-12-23 2022-04-26 福建天晴在线互动科技有限公司 一种游戏客户端完整性校验和修复的方法

Also Published As

Publication number Publication date
CN112604296A (zh) 2021-04-06

Similar Documents

Publication Publication Date Title
US10216377B2 (en) Visual regression analysis
CN107463500B (zh) 测试脚本的调试方法、介质、系统和计算设备
CN109684573B (zh) 目标图片显示方法及装置、存储介质、电子设备
US10191751B2 (en) Information processing device for generating application programming interface information
CN113590327A (zh) 项目资源检测方法、装置、电子设备及存储介质
KR20090122665A (ko) 테스트 라이브러리를 이용하는 휴대폰 어플리케이션 검증시스템 및 그 방법
CN112604296B (zh) 一种游戏更新的方法、电子设备和相关系统
CN117112060A (zh) 组件库构建方法、装置、电子设备及存储介质
CN117290138A (zh) 故障处理方法、装置、系统、终端设备及存储介质
CN116700768B (zh) 一种应用的处理方法及相关装置
CN115760391A (zh) 区块链中智能合约更改方法、装置、电子设备及存储介质
CN111382076B (zh) 应用程序的测试方法、装置、电子设备及计算机存储介质
CN113778460A (zh) 生产环境部署方法和装置
CN109960522B (zh) 一种软件升级方法及装置
CN115237458A (zh) 一种调用推理硬件执行ai应用的方法及相关产品
CN111240728A (zh) 应用程序更新方法、装置、设备和存储介质
CN114253615B (zh) 一种引导程序设置方法、装置、电子设备及存储介质
CN115421785B (zh) 应用程序的移植处理方法、装置和介质
CN113608996B (zh) 一种镜像编译测试方法、系统、装置及可读存储介质
CN113590224A (zh) 服务器的检测方法、装置、电子设备及存储介质
CN116339843A (zh) 一种鸿蒙系统的驱动适配方法、装置、设备及介质
CN112596751A (zh) 应用程序安装包的编译方法、终端、服务器及存储介质
CN115878202A (zh) 属性值的加载方法及装置、电子设备、存储介质
CN115629966A (zh) 基于生态认证测试的升级验证方法、装置、设备及介质
CN117436080A (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
GR01 Patent grant
GR01 Patent grant