CN111475192A - 对游戏服务器进行热更的方法、装置、存储介质和系统 - Google Patents
对游戏服务器进行热更的方法、装置、存储介质和系统 Download PDFInfo
- Publication number
- CN111475192A CN111475192A CN202010293981.9A CN202010293981A CN111475192A CN 111475192 A CN111475192 A CN 111475192A CN 202010293981 A CN202010293981 A CN 202010293981A CN 111475192 A CN111475192 A CN 111475192A
- Authority
- CN
- China
- Prior art keywords
- update
- code
- data
- binary
- game server
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000006243 chemical reaction Methods 0.000 claims abstract description 15
- 230000006870 function Effects 0.000 claims description 58
- 238000012545 processing Methods 0.000 claims description 16
- 238000010792 warming Methods 0.000 claims description 13
- 238000011161 development Methods 0.000 abstract description 4
- 230000008447 perception Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101800001776 Nuclear inclusion protein B Proteins 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种对游戏服务器进行热更的方法、装置、存储介质和系统,该方法包括:接收步骤,接收更新文件;转换步骤,将更新文件中的更新配置表格转换为更新配置代码;编译步骤,将更新配置代码编译为更新二进制文件;热更步骤,使用更新二进制文件对游戏服务器进行热更。本发明中,将配置表格自动转换为配置代码,因此无需编写与配置表格相关的代码,使得游戏研发周期缩短,并且在热更过程中不会使玩家闪断,因此不会对玩家游戏体验造成不好的影响,玩家零感知。
Description
技术领域
本发明涉及游戏软件领域,尤其涉及对游戏服务器进行热更的方法、装置、存储介质和系统。
背景技术
由于游戏开发的快速迭代,在游戏服务器上线之后存在大量在线更新游戏代码以及策划表格的需求。游戏服务器业务逻辑主要与游戏代码、以及配置表格这两部分密切相关。
如果由于游戏代码或者配置表格的问题导致逻辑处理有误,会对玩家的游戏体验或者公司的资产造成重大损失。当前业界处理的方式主要包括以下几种:
1.服务器停服维护并重新部署,玩家在此期间不能登录;
2.服务器架构将游戏代码与玩家数据分离,可以在不停服的情况下重启游戏逻辑服务器,但可能造成玩家闪断,并且由于游戏代码与玩家数据分离,此方案会对服务器性能和代码维护以及玩家体验上有所影响;
3.服务器使用部分支持热更游戏代码的编程语言,但无法解决热更策划配置表格的问题,在热更策划配置表格过程中可能造成游戏读取表格错误或者表格数据错乱。
因此,目前的几种方案都有所欠缺,无法满足一个快速迭代的游戏安全运维的要求。
发明内容
本发明提供一种对游戏服务器进行热更的方法,所述方法包括:
接收步骤,接收更新文件;
转换步骤,将所述更新文件中的更新配置表格转换为更新配置代码;
编译步骤,将所述更新配置代码编译为更新二进制文件;
热更步骤,使用所述更新二进制文件对所述游戏服务器进行热更。
其中,所述转换步骤进一步包括:
读取步骤,读取所述更新配置表格中的预定义的多个类型以及相应的多个列名称,并读取所述配置表格中的每行数据;
设置步骤,根据每个列名称的相应类型,设置所述每个列名称的相应数据的相应代码格式;
生成步骤,设置多个函数,并从所述每行数据生成与每个函数对应的数据代码,所述数据代码包含以所述相应代码格式表现的所述相应数据。
其中,所述多个类型包含主键,所述多个函数至少包含行数据获取函数和主键获取函数,
其中,所述行数据获取函数表示可以通过所述主键的值获取所述更新配置表格中所述值所在的行的数据,所述主键获取函数表示可以获取所述更新配置表格中的所有主键的值。
其中,在所述生成步骤中,从所述每行数据生成与所述行数据获取函数对应的行数据代码,所述行数据代码是以所述相应代码格式表现的所述相应数据,其中,所述数据代码包含所述多个列名称和所述行数据代码;
并且,在所述生成步骤中,从所述每行数据生成与所述主键获取函数对应的主键代码,所述主键代码是以所述相应代码格式表现的所述相应数据,其中,所述数据代码包含所述主键代码。
其中,在所述生成步骤中,得到与所述更新配置表格对应的所述更新配置代码,所述更新配置代码包含所述多个函数和所述数据代码。
其中,在所述热更步骤中,使用所述更新二进制文件对所述游戏服务器中的当前二进制文件进行热更,所述当前二进制文件对应于当前配置表格以及从所述当前配置表格转换得到的当前配置代码,
其中,在所述热更步骤中,所述更新二进制文件和所述当前二进制文件可以同时存在于所述游戏服务器中。
其中,在所述热更步骤中,将所述更新二进制文件加载到所述游戏服务器中,其中,对于加载之前接收到的先前请求,继续使用所述当前二进制文件进行处理,
对于加载之后接收到的新请求,使用所述更新二进制文件进行处理,
其中,在所述先前请求的处理完成之后,使用所述更新二进制文件来替换所述当前二进制文件。
其中,对所述更新配置表格、所述更新配置代码、所述当前配置表格、所述当前配置代码进行备份。
其中,将所述更新配置代码与所述当前配置代码进行比较,用于判断所述热更步骤中的热更是否正确。
本发明还提供一种对游戏服务器进行热更的装置,所述装置包括:
接收单元,接收更新文件;
转换单元,将所述更新文件中的更新配置表格转换为更新配置代码;
编译单元,将所述更新配置代码编译为更新二进制文件;
热更单元,使用所述更新二进制文件对所述游戏服务器进行热更。
其中,转换单元进一步包括:
读取单元,读取所述更新配置表格中的预定义的多个类型以及相应的多个列名称,并读取所述配置表格中的每行数据;
设置单元,根据每个列名称的相应类型,设置所述每个列名称的相应数据的相应代码格式;
生成单元,设置多个函数,并从所述每行数据生成与每个函数对应的数据代码,所述数据代码包含以所述相应代码格式表现的所述相应数据。
其中,所述多个类型包含主键,所述多个函数至少包含行数据获取函数和主键获取函数,
其中,所述行数据获取函数表示可以通过所述主键的值获取所述更新配置表格中所述值所在的行的数据,所述主键获取函数表示可以获取所述更新配置表格中的所有主键的值。
其中,所述生成单元从所述每行数据生成与所述行数据获取函数对应的行数据代码,所述行数据代码是以所述相应代码格式表现的所述相应数据,其中,所述数据代码包含所述多个列名称和所述行数据代码;
并且,所述生成单元从所述每行数据生成与所述主键获取函数对应的主键代码,所述主键代码是以所述相应代码格式表现的所述相应数据,其中,所述数据代码包含所述主键代码。
其中,所述生成单元得到与所述更新配置表格对应的所述更新配置代码,所述更新配置代码包含所述多个函数和所述数据代码。
其中,所述热更单元使用所述更新二进制文件对所述游戏服务器中的当前二进制文件进行热更,所述当前二进制文件对应于当前配置表格以及从所述当前配置表格转换得到的当前配置代码,
其中,所述更新二进制文件和所述当前二进制文件可以同时存在于所述游戏服务器中。
其中,所述热更单元将所述更新二进制文件加载到所述游戏服务器中,其中,
对于加载之前接收到的先前请求,继续使用所述当前二进制文件进行处理;
对于加载之后接收到的新请求,使用所述更新二进制文件进行处理,
其中,在所述先前请求的处理完成之后,使用所述更新二进制文件来替换所述当前二进制文件。
其中,对所述更新配置表格、所述更新配置代码、所述当前配置表格、所述当前配置代码进行备份。
其中,将所述更新配置代码与所述当前配置代码进行比较,用于判断所述热更单元中的热更是否正确。
本发明还提供一种计算机可读的存储介质,所述存储介质具有存储在其中的指令,其特征在于,当所述指令被执行时,使得所述计算机执行如上所述的对游戏服务器进行热更的方法。
本发明还提供一种系统,包括:
存储器,用于存储由系统的一个或多个处理器执行的指令,以及
处理器,用于执行如上所述的对游戏服务器进行热更的方法。
本发明中,将配置表格自动转换为配置代码,因此无需编写与配置表格相关的代码,使得游戏研发周期缩短,并且在热更过程中不会使玩家闪断,因此不会对玩家游戏体验造成不好的影响,玩家零感知。
附图说明
图1是根据本发明实施例的对游戏服务器进行热更的系统的硬件结构框图;
图2是根据本发明实施例的对游戏服务器进行热更的装置的结构图;
图3是根据本发明实施例的对游戏服务器进行热更的方法的流程图;
图4是根据本发明实施例的转换单元的结构图;
图5是根据本发明实施例的转换步骤的流程图;
图6是根据本发明实施例的更新配置代码的示意图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其他优点及功效。虽然本发明的描述将结合较佳实施例一起介绍,但这并不代表此发明的特征仅限于该实施方式。恰恰相反,结合实施方式作发明介绍的目的是为了覆盖基于本发明的权利要求而有可能延伸出的其它选择或改造。为了提供对本发明的深度了解,以下描述中将包含许多具体的细节。本发明也可以不使用这些细节实施。此外,为了避免混乱或模糊本发明的重点,有些具体细节将在描述中被省略。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
应注意的是,在本说明书中,相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
本发明所提供的实施方式可以在移动终端、计算机终端、或者类似的运算装置(如ECU(Electronic Control Unit,电子控制单元))、系统中执行。以运行在系统为例,图1是根据本发明实施例的对游戏服务器进行热更的系统的硬件结构框图。如图1所示,系统100可以包括一个或多个(图中仅示出一个)处理器101(处理器101可以包括但不限于中央处理器CPU、图像处理器GPU、数字信号处理器DSP、微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于与用户交互的输入输出接口102、用于存储数据的存储器103、以及用于通信功能的传输装置104。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,系统100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
输入输出接口102可以连接一个或多个显示器、触控屏等,用于显示从系统100传送的数据,还可以连接键盘、触控笔、触控板和/或鼠标等,用于输入诸如,选择、创建、编辑等的用户指令。
存储器103可用于存储应用软件的软件程序以及模块,例如与本发明实施方式中的对游戏服务器进行热更的方法对应的程序指令/模块,处理器101通过运行存储在存储器103内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的对游戏服务器进行热更的方法。存储器103可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器103可进一步包括相对于处理器101远程设置的存储器,这些远程存储器可以通过网络连接至系统100。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置104用于经由一个网络接收或者发送数据。上述的网络具体实例可包括系统100的通信供应商提供的互联网。在上述运行环境下,本发明提供了对游戏服务器进行热更的方法。
图2是根据本发明实施例的对游戏服务器进行热更的装置20的结构图,该装置20包含接收单元21、转换单元22、编译单元23以及热更单元24。该装置20可以位于游戏服务器中(图未示)。
图3是根据本发明实施例的对游戏服务器进行热更的方法的流程图。下面结合图2和图3对本发明的实施例进行详细说明。
在接收步骤S31,接收单元21接收更新文件。例如,该更新文件可以是来自游戏开发商的更新打包文件(例如.zip文件)、来自游戏策划的更新游戏代码或者更新配置表格(例如.csv文件)。
在转换步骤S32,转换单元22将更新文件中的更新配置表格转换为更新配置代码。图4是根据本发明实施例的转换单元22的结构图,如图4所示,转换单元22包括读取单元221、设置单元222以及生成单元223。图5是根据本发明实施例的转换步骤的具体流程图。下面结合图4和图5进行详细说明。另外,在该实施例中,以Erlang编程语言平台为例进行了描述,但本发明不限于此,并且可以应用于任何其他语言平台。
在读取步骤S321,读取单元201读取更新配置表格中的预定义的多个类型以及相应的多个列名称,并读取更新配置表格中的每行数据。
在对游戏进行配置时,通常会使用表1所示的符号。
表1
K | I | A | N | B | S | O |
主键 | 索引 | 数组 | 数字 | 布尔 | 字符串 | 字符串 |
其中,符号K为主键,表示该列的数据主键,对于每个配置表格至少有一列是K类型的列,K类型的列的每一行的数据必须唯一,可以用来快速查找符合条件的某一行。
符号I为索引,表示该列的数据为索引,且该列可以用来快速查找符合条件的一行或多行。
符号A为数组,表示该列的数据为数组,且该列包含多个元素,每个元素用“;”分隔。
符号N为数字,表示该列的数据为数字。
符号B为布尔,表示该列的数据为布尔。
符号S为字符串,表示该列的数据为字符串。
符号O为字符串,表示该列的数据是注释,而不是真正有用的配置。
在制作更新配置表格时,符号K、I、A可以和N、B、S组合使用,作为其中的预定义的多个类型。表2示出了根据本发明实施例的更新配置表格。
表2
KN | S | NI | B | AS |
MapId | Name | Type | IsBuff | Monster |
1 | text1 | 1 | True | 1a;2;3 |
2 | text2 | 1 | False | 4df;53f;6 |
3 | text3 | 1 | True | 8;2;3asdf |
4 | text4 | 2 | False | 3;2;3fd;1 |
如表2所示的更新配置表格,包含了预定义的多个类型KN、S、NI、B、AS,其中KN表示该列的数据是主键,且是数字;S表示该列的数据是字符串;NI表示该列的数据是索引,且是数字;B表示该列的数据是布尔;AS表示该列的数据是数组,且是字符串。这些类型仅作为示例,本发明可以使用其他的各种类型,而不受限制。另外,本发明中,配置表格的多个类型是预定义的,即,标准化的,因此游戏策划和软件工程师可以方便地进行沟通。
进一步,表2所示的更新配置表格中包含了多个列名称MapId、Name、Type、IsBuff、Monster,且每个列名称具有相应的类型。这些列名称可以根据游戏而变化,例如,表2是用于游戏地图的配置表格,其中,MapId表示地图编号,Name表示地图名称,Type表示地图类型,IsBuff表示地图是否是有加成效果的地图,Monster表示地图上会出现的怪物。
进一步,表2所示的更新配置表格中还包含了多行数据,例如表2所示的4行数据。可以看出,每行数据中的每个数据对应于相应的类型和列名称,例如,数据text1对应于类型S和列名称Name。
在设置步骤S322,设置单元222根据每个列名称的相应类型,设置每个列名称的相应数据的相应代码格式。
例如,对于列名称Name的类型S(字符串),将列名称Name这一列数据text1、text2、text3、text4的代码格式设置为在该数据上加上双引号(“”),例如“text1”;对于列名称Monster的类型AS(数组和字符串),将列名称Monster这一列数据1a;2;3、4df;53f;6、8;2;3asdf、3;2;3fd;1的代码格式设置为在该数据上加上双引号(“”),并以逗号进行分割,例如“1a”,“2”,“3”;对于列名称MapId的类型KN(主键,数字),将列名称MapId这一列数据1、2、3、4的代码格式设置为不在该数据上加任何符号;另外,对于列名称Type的类型NI(索引、数字)以及列名称IsBuff的类型B(布尔),将列名称Type、IsBuff下的数据的代码格式也设置为不在该数据上加任何符号。
可以看出,对于不同类型的数据,代码格式可以设置为相同或不相同。在该步骤中,可以为更新配置表格中的每个类型的数据设置相应的代码格式,即,为每个列名称下的数据设置相应的代码格式。
在生成步骤S323,生成单元223设置多个函数,并从每行数据生成与每个函数对应的数据代码,该数据代码包含以相应代码格式表现的相应数据。
多个函数至少包含行数据获取函数(例如,get函数)和主键获取函数(例如,get_all_keys函数),其中,行数据获取函数(get函数)表示可以通过主键的值(即,某个主键值)获取表2中该主键值所在的行的数据(即,具体的配置),主键获取函数(get_all_keys函数)表示获取表2中的所有主键的值。
例如,get(1)表示可以获取主键值1所在的行的数据,例如:1、text1、1、True、1a;2;3,get_all_keys表示可以获取所有主键的值,例如:1、2、3、4。
针对get函数,从表2中的每行数据生成与get函数对应的行数据代码,行数据代码是以相应代码格式表现的相应数据。
如图6所示,从主键值1所在的行的数据生成与get(1)对应的行数据代码,且行数据代码是以相应代码格式表现的相应数据,例如包括不加任何符号的1(KN列)、1(NI列)、true(IsBuff列)、以及加上双引号的"text1"、加上双引号并以逗号分隔的"1a","2","3"。该行数据代码和上述5个列名称组合在一起,形成与get(1)对应的数据代码,如下所示:
get(1)->
#csv_map{mapid=1,name="text1",type=1,isbuff=true,monster=["1a","2","3"]}。
同样地,可以从主键值2、3、4所在的行的数据生成与get(2)、get(3)、get(4)对应的行数据代码,并和上述5个列名称组合在一起,形成与get(2)、get(3)、get(4)对应的数据代码,如图6所示。
可以看出,通过get函数,可以生成与表2中的每行数据所对应的数据代码,且该数据代码包含列名称和对应的行数据代码。
另外,针对get_all_keys函数,从表2中的每行数据生成与get_all_keys函数对应的主键代码,该主键代码是以相应代码格式表现的相应数据,例如图6中所示的,
get_all_keys()->
[1,2,3,4]
其中,该主键代码是与get_all_keys函数对应的数据代码。
在该生成步骤S323中,可以得到与表2中的更新配置表格对应的更新配置代码,如图6所示,且该更新配置代码包含上述多个函数以及对应的数据代码。可以看出,通过上述步骤,本发明将表2所示的更新配置表格转换成了图6所示代码化的更新配置代码。
进一步,本发明的函数还包括索引获取函数(例如get_type_keys),索引获取函数表示根据某个索引值找到其所在行的主键值。如表2所示,列名称Type的类型包含索引I,针对get_type_keys(1),可以从表2中生成对应的数据代码,即图6中所示的:
get_type_keys(1)->
[1,2,3]
也就是说,可以通过该函数可以找到type为1的所有主键值:1、2、3。
可以理解,本发明的函数不限于上面列出的函数,还可以包括任何其他的函数。
接下来,在图3所示的编译步骤S33中,编译单元23将图6所示的更新配置代码编译为更新二进制文件。其中,可以根据要被热更的游戏服务器的类型,自动地选择该更新二进制文件的输出路劲,即,在该游戏服务器的目录下的更新二进制文件的输出路径。
进一步,在热更步骤S34中,热更单元24使用上述更新二进制文件对游戏服务器进行热更。
具体的,热更单元24使用该更新二进制文件(也可以称为“新版二进制文件”)对游戏服务器中的当前二进制文件(也可以称为“旧版二进制文件”)进行热更,该当前二进制文件存储在游戏服务器的内存中。当前二进制文件对应于当前配置表格以及从当前配置表格转换得到的当前配置代码,从当前配置表格转换成当前配置代码的过程与上述转换步骤中的内容一致。
其中,在该热更步骤中,根据上述输出路径,热更单元24将更新二进制文件加载到游戏服务器中,例如加载到游戏服务器的内存中。对于加载之前接收到的先前请求(例如,来自客户端的先前请求),由于已经使用了当前二进制文件对这些先前请求进行处理,因此就继续使用当前二进制文件来处理这些先前请求,而不会中断,直到这些先前请求的处理完成。对于加载之后接收到的新请求(例如,来自客户端的新请求),则使用更新二进制文件对这些新请求处理进行。也就是说,在该热更步骤中,更新二进制文件和当前二进制文件可以同时存在于游戏服务器中。如此,不会造成玩家闪断,所以对玩家体验不会有影响。
另外,在这些先前请求的处理完成之后,使用更新二进制文件来替换当前二进制文件。此时,游戏服务器的内存中中就存储了热更后的更新二进制文件。
进一步,本发明对上述更新配置表格、更新配置代码、当前配置表格、当前配置代码进行备份,因此可以方便日后的追溯。
进一步,在热更完成后,本发明还将更新配置代码与当前配置代码进行比较(例如,比较新增、删除、修改等的数据),用于判断热更步骤中的热更是否正确。
具体的,更新配置代码包含get函数和对应的行数据代码,每个get函数对应于表2中的一行数据,当前配置代码也包含get函数和对应的行数据代码。将更新配置代码中的所有get函数和对应的行数据代码与当前配置代码中的所有get函数和对应的行数据代码进行比较,也就是说,将与更新配置代码对应的更新配置表格(表2)中的每行数据和与当前配置代码对应的当前配置表格中的每行数据进行比较。
另外,如果判断出热更不正确,则会使用当前更新二进制文件重新进行上述热更步骤S34。如此,可以确保热更的正确性。
本发明中,将配置表格自动转换为配置代码,因此无需编写与配置表格相关的代码,使得游戏研发周期缩短,并且在热更过程中不会使玩家闪断,因此不会对玩家游戏体验造成不好的影响,玩家零感知。
进一步,本发明提供一种计算机可读的存储介质,该存储介质具有存储在其中的指令,当该指令被执行时,使得计算机执行上述的方法。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
Claims (15)
1.一种对游戏服务器进行热更的方法,其特征在于,所述方法包括:
接收步骤,接收更新文件;
转换步骤,将所述更新文件中的更新配置表格转换为更新配置代码;
编译步骤,将所述更新配置代码编译为更新二进制文件;
热更步骤,使用所述更新二进制文件对所述游戏服务器进行热更。
2.如权利要求1所述的方法,其特征在于,所述转换步骤进一步包括:
读取步骤,读取所述更新配置表格中的预定义的多个类型以及相应的多个列名称,并读取所述配置表格中的每行数据;
设置步骤,根据每个列名称的相应类型,设置所述每个列名称的相应数据的相应代码格式;
生成步骤,设置多个函数,并从所述每行数据生成与每个函数对应的数据代码,所述数据代码包含以所述相应代码格式表现的所述相应数据。
3.如权利要求2所述的方法,其特征在于,所述多个类型包含主键,所述多个函数至少包含行数据获取函数和主键获取函数,
其中,所述行数据获取函数表示可以通过所述主键的值获取所述更新配置表格中所述值所在的行的数据,所述主键获取函数表示可以获取所述更新配置表格中的所有主键的值。
4.如权利要求3所述的方法,其特征在于,在所述生成步骤中,从所述每行数据生成与所述行数据获取函数对应的行数据代码,所述行数据代码是以所述相应代码格式表现的所述相应数据,其中,所述数据代码包含所述多个列名称和所述行数据代码;
并且,在所述生成步骤中,从所述每行数据生成与所述主键获取函数对应的主键代码,所述主键代码是以所述相应代码格式表现的所述相应数据,其中,所述数据代码包含所述主键代码。
5.如权利要求4所述的方法,其特征在于,在所述生成步骤中,得到与所述更新配置表格对应的所述更新配置代码,所述更新配置代码包含所述多个函数和所述数据代码。
6.如权利要求1-5中任一项所述的方法,其特征在于,在所述热更步骤中,使用所述更新二进制文件对所述游戏服务器中的当前二进制文件进行热更,所述当前二进制文件对应于当前配置表格以及从所述当前配置表格转换得到的当前配置代码,
其中,在所述热更步骤中,所述更新二进制文件和所述当前二进制文件可以同时存在于所述游戏服务器中。
7.如权利要求6所述的方法,其特征在于,在所述热更步骤中,将所述更新二进制文件加载到所述游戏服务器中,其中,
对于加载之前接收到的先前请求,继续使用所述当前二进制文件进行处理,
对于加载之后接收到的新请求,使用所述更新二进制文件进行处理,
其中,在所述先前请求的处理完成之后,使用所述更新二进制文件来替换所述当前二进制文件。
8.如权利要求6所述的方法,其特征在于,对所述更新配置表格、所述更新配置代码、所述当前配置表格、所述当前配置代码进行备份。
9.如权利要求6所述的方法,其特征在于,将所述更新配置代码与所述当前配置代码进行比较,用于判断所述热更步骤中的热更是否正确。
10.一种对游戏服务器进行热更的装置,其特征在于,所述装置包括:
接收单元,接收更新文件;
转换单元,将所述更新文件中的更新配置表格转换为更新配置代码;
编译单元,将所述更新配置代码编译为更新二进制文件;
热更单元,使用所述更新二进制文件对所述游戏服务器进行热更。
11.如权利要求10所述的装置,其特征在于,所述转换单元进一步包括:
读取单元,读取所述更新配置表格中的预定义的多个类型以及相应的多个列名称,并读取所述配置表格中的每行数据;
设置单元,根据每个列名称的相应类型,设置所述每个列名称的相应数据的相应代码格式;
生成单元,设置多个函数,并从所述每行数据生成与每个函数对应的数据代码,所述数据代码包含以所述相应代码格式表现的所述相应数据。
12.如权利要求10或11所述的装置,其特征在于,所述热更单元使用所述更新二进制文件对所述游戏服务器中的当前二进制文件进行热更,所述当前二进制文件对应于当前配置表格以及从所述当前配置表格转换得到的当前配置代码,
其中,所述更新二进制文件和所述当前二进制文件可以同时存在于所述游戏服务器中。
13.如权利要求12所述的装置,其特征在于,所述热更单元将所述更新二进制文件加载到所述游戏服务器中,其中,
对于加载之前接收到的先前请求,继续使用所述当前二进制文件进行处理;
对于加载之后接收到的新请求,使用所述更新二进制文件进行处理,
其中,在所述先前请求的处理完成之后,使用所述更新二进制文件来替换所述当前二进制文件。
14.一种计算机可读的存储介质,所述存储介质具有存储在其中的指令,其特征在于,当所述指令被执行时,使得所述计算机执行如权利要求1-9中任一项所述的对游戏服务器进行热更的方法。
15.一种系统,其特征在于,包括:
存储器,用于存储由系统的一个或多个处理器执行的指令,以及
处理器,用于执行如权利要求1-9中任一项所述的对游戏服务器进行热更的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010293981.9A CN111475192B (zh) | 2020-04-15 | 2020-04-15 | 对游戏服务器进行热更的方法、装置、存储介质和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010293981.9A CN111475192B (zh) | 2020-04-15 | 2020-04-15 | 对游戏服务器进行热更的方法、装置、存储介质和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111475192A true CN111475192A (zh) | 2020-07-31 |
CN111475192B CN111475192B (zh) | 2023-11-10 |
Family
ID=71752577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010293981.9A Active CN111475192B (zh) | 2020-04-15 | 2020-04-15 | 对游戏服务器进行热更的方法、装置、存储介质和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111475192B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112363691A (zh) * | 2020-10-23 | 2021-02-12 | 杭州电魂网络科技股份有限公司 | 一种表格数据转换到游戏的方法、系统和电子设备 |
CN112486552A (zh) * | 2020-12-16 | 2021-03-12 | 深圳中清龙图网络技术有限公司 | 服务器热更新方法、装置、设备和存储介质 |
CN112596772A (zh) * | 2020-12-15 | 2021-04-02 | 上海米哈游网络科技股份有限公司 | 服务器更新方法、装置、电子设备和存储介质 |
CN112587929A (zh) * | 2020-12-22 | 2021-04-02 | 上海完美时空软件有限公司 | 游戏副本的生成方法、装置及设备 |
CN113157296A (zh) * | 2021-04-27 | 2021-07-23 | 北京达佳互联信息技术有限公司 | 编译文件的更新方法、装置、服务器及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014008323A (ja) * | 2012-07-02 | 2014-01-20 | Konami Digital Entertainment Co Ltd | ゲームシステム及びその利用制御方法 |
CN103984582A (zh) * | 2014-06-04 | 2014-08-13 | 网易(杭州)网络有限公司 | 一种热更新方法和装置 |
CN106033367A (zh) * | 2015-03-18 | 2016-10-19 | 广州四三九九信息科技有限公司 | 一种脚本游戏服务器引擎 |
CN106582013A (zh) * | 2016-12-09 | 2017-04-26 | 网易(杭州)网络有限公司 | 游戏服务系统、用于向在线的游戏更新数据的方法和装置 |
CN106775623A (zh) * | 2016-11-17 | 2017-05-31 | 网易(杭州)网络有限公司 | 策划配置表的处理方法及装置 |
CN107158705A (zh) * | 2017-05-18 | 2017-09-15 | 腾讯科技(深圳)有限公司 | 服务的更新方法和装置 |
CN107357718A (zh) * | 2017-06-12 | 2017-11-17 | 百富计算机技术(深圳)有限公司 | 一种构建测试方法及装置 |
CN108769132A (zh) * | 2018-05-04 | 2018-11-06 | 武汉灵动在线科技有限公司 | 一种基于lua的游戏协议解析与热更新方法及系统 |
CN109814884A (zh) * | 2018-12-27 | 2019-05-28 | 珠海西山居互动娱乐科技有限公司 | 一种根据游戏资源类型进行资源管理的方法及系统 |
CN109857432A (zh) * | 2019-01-14 | 2019-06-07 | 珠海金山网络游戏科技有限公司 | 一种游戏应用的热更新方法和装置 |
CN109992284A (zh) * | 2019-03-29 | 2019-07-09 | 北京金山安全软件有限公司 | 一种热更新程序的提供方法、装置及电子设备 |
CN110187910A (zh) * | 2019-05-30 | 2019-08-30 | 腾讯科技(上海)有限公司 | 一种热更新方法、装置、设备及计算机可读存储介质 |
-
2020
- 2020-04-15 CN CN202010293981.9A patent/CN111475192B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014008323A (ja) * | 2012-07-02 | 2014-01-20 | Konami Digital Entertainment Co Ltd | ゲームシステム及びその利用制御方法 |
CN103984582A (zh) * | 2014-06-04 | 2014-08-13 | 网易(杭州)网络有限公司 | 一种热更新方法和装置 |
CN106033367A (zh) * | 2015-03-18 | 2016-10-19 | 广州四三九九信息科技有限公司 | 一种脚本游戏服务器引擎 |
CN106775623A (zh) * | 2016-11-17 | 2017-05-31 | 网易(杭州)网络有限公司 | 策划配置表的处理方法及装置 |
CN106582013A (zh) * | 2016-12-09 | 2017-04-26 | 网易(杭州)网络有限公司 | 游戏服务系统、用于向在线的游戏更新数据的方法和装置 |
CN107158705A (zh) * | 2017-05-18 | 2017-09-15 | 腾讯科技(深圳)有限公司 | 服务的更新方法和装置 |
CN107357718A (zh) * | 2017-06-12 | 2017-11-17 | 百富计算机技术(深圳)有限公司 | 一种构建测试方法及装置 |
CN108769132A (zh) * | 2018-05-04 | 2018-11-06 | 武汉灵动在线科技有限公司 | 一种基于lua的游戏协议解析与热更新方法及系统 |
CN109814884A (zh) * | 2018-12-27 | 2019-05-28 | 珠海西山居互动娱乐科技有限公司 | 一种根据游戏资源类型进行资源管理的方法及系统 |
CN109857432A (zh) * | 2019-01-14 | 2019-06-07 | 珠海金山网络游戏科技有限公司 | 一种游戏应用的热更新方法和装置 |
CN109992284A (zh) * | 2019-03-29 | 2019-07-09 | 北京金山安全软件有限公司 | 一种热更新程序的提供方法、装置及电子设备 |
CN110187910A (zh) * | 2019-05-30 | 2019-08-30 | 腾讯科技(上海)有限公司 | 一种热更新方法、装置、设备及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
UNITY3D游戏开发指南: ""Unity游戏配置表格代码自动生成术"", pages 1 - 5, Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/29107053> * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112363691A (zh) * | 2020-10-23 | 2021-02-12 | 杭州电魂网络科技股份有限公司 | 一种表格数据转换到游戏的方法、系统和电子设备 |
CN112596772A (zh) * | 2020-12-15 | 2021-04-02 | 上海米哈游网络科技股份有限公司 | 服务器更新方法、装置、电子设备和存储介质 |
CN112486552A (zh) * | 2020-12-16 | 2021-03-12 | 深圳中清龙图网络技术有限公司 | 服务器热更新方法、装置、设备和存储介质 |
CN112587929A (zh) * | 2020-12-22 | 2021-04-02 | 上海完美时空软件有限公司 | 游戏副本的生成方法、装置及设备 |
CN113157296A (zh) * | 2021-04-27 | 2021-07-23 | 北京达佳互联信息技术有限公司 | 编译文件的更新方法、装置、服务器及存储介质 |
CN113157296B (zh) * | 2021-04-27 | 2024-03-12 | 北京达佳互联信息技术有限公司 | 编译文件的更新方法、装置、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111475192B (zh) | 2023-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111475192A (zh) | 对游戏服务器进行热更的方法、装置、存储介质和系统 | |
US9934129B1 (en) | Determining application test results using screenshot metadata | |
CN110188135B (zh) | 文件生成方法及设备 | |
CN111078481B (zh) | 获取配置检查清单的方法、装置、电子设备及存储介质 | |
CN111435367B (zh) | 知识图谱的构建方法、系统、设备及存储介质 | |
CN111881051B (zh) | 测试用例的生成方法、装置、终端及存储介质 | |
CN107562459B (zh) | 管理系统、界面生成/显示/操作方法、介质、终端 | |
CN111159040A (zh) | 一种测试数据生成方法、装置、设备及存储介质 | |
CN110688305B (zh) | 测试环境同步方法、装置、介质、电子设备 | |
CN111506362A (zh) | 用于游戏的配置表格的处理方法、装置、存储介质和系统 | |
CN112733199B (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN112274913B (zh) | 游戏服务器的合并方法及装置、存储介质、电子装置 | |
CN112052157B (zh) | 测试报文的构造方法、装置及系统 | |
CN112433783A (zh) | 一种配置方法及相关设备 | |
CN111124883A (zh) | 一种基于树形表格的测试用例库引入方法、系统及设备 | |
CN116401148A (zh) | 表单数据校验方法及装置 | |
CN115587021A (zh) | 模拟测试报文生成方法及装置 | |
CN115544132A (zh) | 数据导入方法、系统及电子设备 | |
CN110327626B (zh) | 虚拟服务器创建方法及装置 | |
CN113051178A (zh) | 测试数据构造方法、装置、设备及介质 | |
CN113806327A (zh) | 一种数据库设计方法、装置及相关设备 | |
CN111228815A (zh) | 处理游戏的配置表的方法、装置、存储介质和系统 | |
CN113094379B (zh) | 锚定式用户数据维护方法、装置、设备及介质 | |
CN112181242B (zh) | 页面展示方法及装置 | |
CN117743443A (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 |