CN112206533B - 数据处理方法、装置及系统 - Google Patents

数据处理方法、装置及系统 Download PDF

Info

Publication number
CN112206533B
CN112206533B CN202011121390.XA CN202011121390A CN112206533B CN 112206533 B CN112206533 B CN 112206533B CN 202011121390 A CN202011121390 A CN 202011121390A CN 112206533 B CN112206533 B CN 112206533B
Authority
CN
China
Prior art keywords
data
target
character string
variable character
memory
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
CN202011121390.XA
Other languages
English (en)
Other versions
CN112206533A (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.)
Zhuhai Kingsoft Digital Network Technology Co Ltd
Original Assignee
Zhuhai Kingsoft Digital Network 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 Zhuhai Kingsoft Digital Network Technology Co Ltd filed Critical Zhuhai Kingsoft Digital Network Technology Co Ltd
Priority to CN202011121390.XA priority Critical patent/CN112206533B/zh
Publication of CN112206533A publication Critical patent/CN112206533A/zh
Application granted granted Critical
Publication of CN112206533B publication Critical patent/CN112206533B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features 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/50Features 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/53Features 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 details of basic data processing
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features 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/50Features 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/55Details of game data or player data management
    • A63F2300/5526Game data structure
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features 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/60Methods for processing data by generating or executing the game program
    • A63F2300/6009Methods for processing data by generating or executing the game program for importing or creating game content, e.g. authoring tools during game development, adapting content to different platforms, use of a scripting language to create content

Abstract

本申请提供数据处理方法、装置及系统,其中所述数据处理方法包括:获取用户终端在游戏的目标回合内上传的第i次操作对应的操作码,其中,i从1开始取值且i为正整数;确定游戏的内存数据对应的初始变量字符串,以及在内存数据中确定操作码对应的目标数据;根据目标数据将初始变量字符串变更为目标变量字符串,并判断目标回合是否结束;若否,i自增1,将目标变量字符串作为初始变量字符串,并再次执行获取用户终端在游戏的目标回合内上传的第i次对应的操作码步骤;若是,基于目标变量字符串对目标数据进行修改,并对修改后的目标数据进行序列化处理,根据处理结果和目标数据的数据编号生成更新数据同步至所述用户终端。

Description

数据处理方法、装置及系统
技术领域
本申请涉及数据处理技术领域,特别涉及数据处理方法、装置及系统。
背景技术
随着互联网技术的发展,越来越多的游戏应运而生,游戏的种类也多种多样,如动作类、冒险类、模拟类、休闲类等,用户不仅可有通过玩游戏的方式消磨时间,还能够通过一些历史背景较强的游戏学习历史知识,使得游戏被越来越多的用户所接受。而线上模式类型的游戏(网络游戏)更加备受关注,由于网络游戏的特性,不仅需要互联网支撑数据的传输,还需要服务端及时同步被修改的数据,从而满足玩家的客户端与服务端游戏运行同步;然而,现有技术在实现数据同步时,是只要存在更改的数据就向客户端同步,导致网络包频繁发送,流量增大,并且会降低性能,故亟需一种有效的方案以解决该问题。
发明内容
有鉴于此,本申请实施例提供了两种数据处理方法,以解决现有技术中存在的技术缺陷。本申请实施例同时提供了两种数据处理装置,两种数据处理系统,一种计算设备,以及一种计算机可读存储介质。
根据本申请实施例的第一方面,提供了一种数据处理方法,包括:
获取用户终端在游戏的目标回合内上传的第i次操作对应的操作码,其中,i从1开始取值且i为正整数;
确定所述游戏的内存数据对应的初始变量字符串,以及在所述内存数据中确定所述操作码对应的目标数据;
根据所述目标数据将所述初始变量字符串变更为目标变量字符串,并判断所述目标回合是否结束;
若否,i自增1,将所述目标变量字符串作为所述初始变量字符串,并再次执行所述获取用户终端在游戏的目标回合内上传的第i次对应的操作码步骤;
若是,基于所述目标变量字符串对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,根据处理结果和所述目标数据的数据编号生成更新数据同步至所述用户终端。
可选的,所述在所述内存数据中确定所述操作码对应的目标数据,包括:
通过对所述操作码进行解析,获得所述第i次操作对应的操作数据;
确定所述操作数据对应的终端数据编号,以及所述内存数据中包含的子内存数据对应的服务数据编号;
选择与所述终端数据编号匹配的目标服务数据编号对应的子内存数据,作为所述目标数据。
可选的,所述基于所述目标变量字符串对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,包括:
遍历所述目标变量字符串,获得所述目标变量字符串中的变更字符;
确定所述变更字符对应的变更服务数据编号,并在所述内存数据中读取所述变更服务数据编号对应的所述目标数据;
对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,获得二进制序列作为所述处理结果。
可选的,还包括:
检测所述操作码中是否包含操作数值;
若是,获取与所述初始变量字符串对应的数值变量字符串,并基于所述目标变量字符串确定所述数值变量字符串中的待调整字符;
按照所述操作数值对所述待调整字符进行调整,根据调整结果以及所述数值变量字符串获得目标数值变量字符串。
可选的,在所述目标回合结束的情况下,所述基于所述目标变量字符串对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,包括:
根据所述目标数值变量字符串对所述目标数据进行修改,获得目标修改数据;
基于所述目标变量字符串对所述目标修改数据进行序列化处理,获得二进制序列。
根据本申请实施例的第二方面,提供了一种数据处理装置,包括:
获取模块,被配置为获取用户终端在游戏的目标回合内上传的第i次操作对应的操作码,其中,i从1开始取值且i为正整数;
确定模块,被配置为确定所述游戏的内存数据对应的初始变量字符串,以及在所述内存数据中确定所述操作码对应的目标数据;
判断模块,被配置为根据所述目标数据将所述初始变量字符串变更为目标变量字符串,并判断所述目标回合是否结束;
若否,i自增1,将所述目标变量字符串作为所述初始变量字符串,并再次运行所述获取模块;
若是,运行同步模块,所述同步模块,被配置为基于所述目标变量字符串对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,根据处理结果和所述目标数据的数据编号生成更新数据同步至所述用户终端。
根据本申请实施例的第三方面,提供了另一种数据处理方法,包括:
获取用户终端在游戏的目标回合内上传的至少两次操作对应的操作码;
确定所述游戏的内存数据,并在所述内存数据中确定所述操作码对应的目标数据;
在所述目标回合结束的情况下,对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,获得二进制序列;
根据所述二进制序列和所述目标数据的数据编号生成更新数据,并同步至所述用户终端。
可选的,所述在所述内存数据中确定所述操作码对应的目标数据,包括:
通过对所述操作码进行解析,获得所述至少两次操作对应的操作数据;
确定所述操作数据对应的终端数据编号,以及所述内存数据中包含的子内存数据对应的服务数据编号;
选择与所述终端数据编号匹配的目标服务数据编号对应的子内存数据,作为所述目标数据。
可选的,所述在所述目标回合结束的情况下,对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,获得二进制序列步骤执行之前,还包括:
确定所述内存数据对应的初始变量字符串;
根据所述目标服务数据编号将所述初始变量字符串变更为目标变量字符串;
相应的,所述在所述目标回合结束的情况下,对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,获得二进制序列,包括:
在所述目标回合结束的情况下,根据所述目标变量字符串对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,获得所述二进制序列。
可选的,所述在所述目标回合结束的情况下,对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,获得二进制序列步骤执行之前,还包括:
检测所述操作码中是否包含操作数值;
若是,获取与所述初始变量字符串对应的数值变量字符串,并基于所述目标变量字符串确定所述数值变量字符串中的待调整字符;
按照所述操作数值对所述待调整字符进行调整,根据调整结果以及所述数值变量字符串获得目标数值变量字符串。
根据本申请实施例的第四方面,提供了另一种数据处理装置,包括:
获取操作码模块,被配置为获取用户终端在游戏的目标回合内上传的至少两次操作对应的操作码;
确定目标数据模块,被配置为确定所述游戏的内存数据,并在所述内存数据中确定所述操作码对应的目标数据;
序列化处理模块,被配置为在所述目标回合结束的情况下,对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,获得二进制序列;
同步数据模块,被配置为根据所述二进制序列和所述目标数据的数据编号生成更新数据,并同步至所述用户终端。
根据本申请实施例的第五方面,提供了一种数据处理系统,包括:
服务端,用户终端;
所述服务端,被配置为接收所述用户终端在游戏的目标回合内上传的第i次操作对应的操作码,其中,i从1开始取值且i为正整数;确定所述游戏的内存数据对应的初始变量字符串,以及在所述内存数据中确定所述操作码对应的目标数据;根据所述目标数据将所述初始变量字符串变更为目标变量字符串,并判断所述目标回合是否结束;若否,i自增1,将所述目标变量字符串作为所述初始变量字符串,并再次执行所述获取用户终端在游戏的目标回合内上传的第i次对应的操作码步骤;若是,基于所述目标变量字符串对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,根据处理结果和所述目标数据的数据编号生成更新数据同步至所述用户终端;
所述用户终端,被配置为通过对所述更新数据进行解析,获得二进制序列和所述目标数据的数据编号;对所述二进制序列进行反序列化处理获得修改后的目标数据;确定所述目标数据的数据编号对应的终端数据编号,并根据所述修改后的目标数据对所述终端数据编号对应的数据进行更新。
根据本申请实施例的第六方面,提供了另一种数据处理系统,包括:
服务端,用户终端;
所述服务端,被配置为接收所述用户终端在游戏的目标回合内上传的至少两次操作对应的操作码;确定所述游戏的内存数据,并在所述内存数据中确定所述操作码对应的目标数据;在所述目标回合结束的情况下,对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,获得二进制序列;根据所述二进制序列和所述目标数据的数据编号生成更新数据,并同步至所述用户终端;
所述用户终端,被配置为通过对所述更新数据进行解析,获得所述二进制序列和所述目标数据的数据编号;对所述二进制序列进行反序列化处理获得修改后的目标数据;确定所述目标数据的数据编号对应的终端数据编号,并根据所述修改后的目标数据对所述终端数据编号对应的数据进行更新。
根据本申请实施例的第七方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器执行所述计算机可执行指令时实现两种所述数据处理方法的步骤。
根据本申请实施例的第八方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现两种所述数据处理方法的步骤。
本申请提供的数据处理方法,通过获取用户终端在目标回合内上传的第i次操作对应的操作码后,确定所述游戏的内存数据对应的初始变量字符串,以及操作码对应的目标数据,之后通过将初始变量字符串变更为目标变量字符串,实现对目标回合内的操作进行记录,在回合未结束的情况下,继续接收用户终端上传的操作,并通过字符串进行记录,直至回合结束后,通过内存数据对应的目标变量字符串即可确定需要处理的目标数据,之后对目标数据进行修改,再对修改后的目标数据进行序列化处理,并根据处理结果和目标数据的数据编号生成更新属性发送至用户终端,实现了对回合内的全部操作所造成的数据变化进行统一处理,一次性同步至用户终端,不仅减少了在同一回合内更新数据的发送数量,还有效的降低了流量过大而造成数据丢失的风险,进一步提高了游戏性能。
附图说明
图1是本申请一实施例提供的一种数据处理方法的流程图;
图2是本申请一实施例提供的一种应用于棋牌类游戏中的数据处理方法的处理流程图;
图3是本申请一实施例提供的一种数据处理装置的结构示意图;
图4是本申请一实施例提供的另一种数据处理方法的流程图;
图5是本申请一实施例提供的另一种数据处理装置的结构示意图;
图6是本申请一实施例提供的一种数据处理系统的结构示意图;
图7是本申请一实施例提供的另一种数据处理系统的结构示意图;
图8是本申请一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。
在本申请中,提供了两种数据处理方法。本申请同时涉及两种数据处理装置、两种数据处理系统、一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
实际应用中,由于线上游戏的特性,不仅需要较高的网络需求,还需要服务端及时同步被修改的数据至用户终端,才能够满足及时对玩家的操作做出响应,以实现不同用户终端的玩家可以基于服务器的优化完成交互。可见,游戏的同步过程是保证玩家能够有效交互的重要环节,现有技术中在实现同步时,是基于玩家的一次操作同步一次数据至用户终端,如果玩家连续多次操作或者在同一回合内的操作需要同步多块数据的情况下,都是针对每块数据进行单独封装进行同步,传输效率低,且发送次数较多,可能会导致游戏性能的下降。
图1示出了根据本申请一实施例提供的一种数据处理方法的流程图,具体包括以下步骤:
步骤S102,获取用户终端在游戏的目标回合内上传的第i次操作对应的操作码,其中,i从1开始取值且i为正整数。
本申请提供的数据处理方法,为了能够提高同步效率,以及在减少发送次数的情况下可以完成数据同步,将通过获取用户终端在目标回合内上传的第i次操作对应的操作码后,确定所述游戏的内存数据对应的初始变量字符串,以及操作码对应的目标数据,之后通过将初始变量字符串变更为目标变量字符串,实现对目标回合内的操作进行记录,在回合未结束的情况下,继续接收用户终端上传的操作,并通过字符串进行记录,直至回合结束后,通过内存数据对应的目标变量字符串即可确定需要处理的目标数据,之后对目标数据进行修改,再对修改后的目标数据进行序列化处理,并根据处理结果和目标数据的数据编号生成更新属性发送至用户终端,实现了对回合内的全部操作所造成的数据变化进行统一处理,一次性同步至用户终端,不仅减少了在同一回合内更新数据的发送数量,还有效的降低了流量过大而造成数据丢失的风险,进一步提高了游戏性能。
具体实施时,所述用户终端具体是指玩家在玩游戏时所使用的终端设备,可以是手机、电脑或者平板电脑等智能设备,所述游戏具体是指线上游戏,如线上棋牌类游戏,线上角色扮演类游戏,线上动作类游戏等,所述目标回合具体是指在游戏内属于玩家操作的回合,如在棋牌类游戏中,玩家可以进行打牌或者抓牌等操作时,该阶段为玩家的操作回合,即属于玩家的目标回合。
基于此,所述操作具体是指玩家在目标回合内通过用户终端提交的操作,相应的,所述操作码具体是指玩家通过用户终端进行游戏操作后,能够通过操作码告知服务端此次操作的类型,以及操作类型所产生数据变化情况,例如在棋牌类游戏D中,玩家甲打出了牌A,此时用户终端向服务端上传的操作码后,即为告知服务端玩家甲的操作类型是打牌,对应操作类型的数据是牌A对应的数据,此时服务端即可从玩家甲的玩家数据分区中将牌A对应的数据移动到公有数据分区中,并同步至该局游戏中的全部用户终端,使得各个玩家都可以获知玩家甲打出了牌A。
本实施例中,将以所述游戏为棋牌类游戏为例,对所述数据处理方法进行描述,其他相同或相似类型的游戏均可参见本实施例相应的描述内容,本申请在此不作过多赘述。
实际应用中,为了能够提高数据同步效率,将对目标回合内玩家通过用户终端提交的操作进行记录,记录方式将采用变量字符串实现,直至检测到目标回合结束的情况下,通过变量字符串即可确定需要变动的目标数据,最后通过对目标数据进行序列化,并生成更新数据发送至用户终端,即可完成玩家在目标回合内全部操作的更新,使得同一局游戏内的玩家都可以确定该玩家的操作,有效的减少了同步次数,以及提高了数据同步效率。
而在此之前,为了能够通过变量字符串对数据变化进行记录,以及记录后确定需要进行序列化处理的目标数据,可以预先对游戏的内存数据进行划分,并对划分后的各个子内存数据进行编号,实现在数据处理的过程中可以通过编号和变量字符串的结合确定待序列化处理的目标数据,本实施例中,具体实现方式如下所述:
按照预设的规则对所述内存数据进行划分,并对划分后的各个子内存数据进行编号,确定所述子内存数据对应的数据编号;
相应的,所述初始变量字符串根据所述子内存数据的数量生成,所述初始变量字符串中的字符用于记录子内存数据的变化状态。
具体的,所述预设的规则具体是指对所述内存数据进行划分的规则,可以按照游戏属性进行划分,或者按照游戏类型进行划分,所述各个子内存数据具体是指所述游戏的内存数据划分后的结果,所述数据编号具体是指各个子内存数据对应的编号,并且各个子内存数据的数据编号不重复,便于记录和序列化处理。
基于此,在所述游戏创建完成之后,即可根据所述游戏的属性或者类型将所述游戏的内存数据划分为各个子内存数据,再对各个子内存数据进行编号,确定各个子内存数据的数据编号,之后通过统计所述游戏的子内存数据的数量,生成与数量相等的字符组成所述初始变量字符串,实现在子内存数据发生变化的情况下,可以通过字符对发生变化的子内存数据进行记录,便于后续统一进行数据的更新过程。
需要说明的是,在对游戏的内存数据进行划分时,可以将内存数据划分为64块子内存数据,之后采用数字0到63分别对每个子内存数据进行编号,并且针对内存数据创建的初始变量字符串也是由64位字符组成,之后通过每个字符来记录对应的子内存数据是否发生变化,若变化就将该字符由0变为1,表示该字符发生变化,并且初始变量字符串再每个回合都会恢复初始化,即初始变量字符串只对当前回合的数据变化进行记录。
例如,在棋牌类的A游戏中,游戏有108张牌,由四个玩家甲,乙,丙,丁在玩,每个人手里有13张属于自己的牌,公有牌池里有各个玩家打出去的牌10张,剩下的46张牌属于四个玩家到自己的回合时需要进行抓取的牌;此时,服务端将A游戏的内存数据划分为64块,每块数据是0至63顺序编号,并且通过64位初始变量字符串(0000…0000),对该游戏的内存数据进行数据变动记录,以实现后续当四个玩家在自己回合内进行棋牌操作时,可以进行记录并统一进行数据的同步。
实际应用中,由于用户终端在目标回合内提交的操作可能同时造成多个子内存数据发生变化,或者目标回合内先后进行多次操作,可能引起多个子内存数据发生变化,都可以通过初始变量字符串对当前回合内的数据变化进行记录,实现准确的对目标回合中的操作进行全盘记录,提高后续进行数据同步的效率。
步骤S104,确定所述游戏的内存数据对应的初始变量字符串,以及在所述内存数据中确定所述操作码对应的目标数据。
具体的,在上述获取到用户终端在目标回合内提交的第i次操作对应的操作码的基础上,进一步的,此时需要确定所述操作码对应的目标数据,以及所述内存数据对应的初始变量字符串,实现后续可以根据所述目标数据对初始变量字符串进行变更,对需要进行变化的数据进行记录,并等待目标回合内用户终端上传的i自增1之后的操作,再次进行记录,直至回合结束再进行数据的同步操作。
基于此,所述目标数据具体是指所述用户终端上传的操作码会对游戏的内存数据造成变化的数据,即游戏内存数据中会因为操作码进行变化的子内存数据,所述初始变量字符串具体是指记录需要进行序列化处理的子内存数据,实现后续统一进行同步过程。
进一步的,在确定所述目标数据的过程中,由于用户终端上传的是操作码,故需要通过所述操作码确定玩家在用户终端对那部分数据进行了操作,基于被操作的数据的编号即可在服务端确定对应的编号的数据也需要进行操作,实现后续可以同步该数据至游戏中的全部用户终端,本实施例中,具体实现方式如下所述:
通过对所述操作码进行解析,获得所述第i次操作对应的操作数据;
确定所述操作数据对应的终端数据编号,以及所述内存数据中包含的子内存数据对应的服务数据编号;
选择与所述终端数据编号匹配的目标服务数据编号对应的子内存数据,作为所述目标数据。
需要说明的是,为了能够方便完成统一同步数据和提高游戏性能,用户终端也需要在游戏运行时,将游戏的内存数据划分为和服务端相同数量的子内存数据,并且各个部分的子内存数据相同,以实现可以通过各个子内存数据的编号就可以确定操作码对应的目标数据,完成更新数据的同步过程。
基于此,当获取到操作码之后,通过对所述操作码进行解析,即可确定用户通过用户终端上传的第i次操作所需要发生修改的操作数据,所述操作数据具体是指用户终端基于第i次操作所需要变动的数据所映射的数据,之后再确定所述操作数据对应的终端数据编号,所述终端数据编号具体是指所述操作数据在用户终端所对应的编号,之后在内存数据中读取各个子内存数据对应的服务数据编号,选择与所述终端数据编号相同的服务数据编号相同的子内存数据,作为所述目标数据,说明目标服务数据编号所对应的子内存数据即为第i次操作所需要修改的目标数据,确定完成之后,以用于后续通过初始变量字符串对其进行记录,方便统一进行修改和同步至用户终端。
沿用上例,当玩家甲从手机的13张牌中打出一张牌后,服务端接收到玩家甲通过用户终端上传的本次操作所对应的操作码,通过对操作码进行解析,确定玩家甲的本次操作所打出的牌对应终端数据编号15,此时再确定A游戏的内存数据中各个子内存数据对应的服务数据编号为0至63,由于用户终端的数据是通过服务端同步的,故数据编号规则相同,此时则可以选择与终端数据编号15对应的目标服务数据编号15,确定目标服务数据编号15所对应的子内存数据即为玩家甲打出牌的操作所需要修改的数据,将目标服务数据编号15对应的子内存数据作为目标数据,用于后续通过初始变量字符串对其进行记录,方便统一进行修改和同步至用户终端。
综上,在获取到用户终端针对第i次操作上传的操作码之后,为了能够保证后续可以准确的对第i次操作所需要进行修改的数据进行处理,将对操作码进行解析,获得操作数据对应的终端数据编号,再确定与终端数据编号对应的目标服务数据编号对应的子内存数据作为目标数据,方便后续通过初始变量字符串对其进行记录,以及统一进行修改和同步至用户终端,提高了数据处理的准确度。
步骤S106,根据所述目标数据将所述初始变量字符串变更为目标变量字符串,并判断所述目标回合是否结束;若否执行步骤S108;若是,执行步骤S110
具体的,在上述确定所述内存数据对应的初始变量字符串和所述目标数据的基础上,说明已经根据所述操作码在服务端确定了用户终端上传的第i次操作所对应的需要修改的目标数据,之后通过所述初始变量字符串对需要修改的目标数据进行记录,实现后续能够根据记录的结果统一进行修改,并同步至用户终端,故根据所述目标数据将所述初始变量字符串变更为所述目标变量字符串;其中,所述目标变量字符串表示已经对第i次操作对应的目标数据处于待修改状态进行记录,后续通过遍历目标变量字符串即可确定需要修改的目标数据。
基于此,在通过所述目标变量字符串对需要后续修改的目标数据进行记录之后,为了能够提高后续的数据同步效率,可以通过判断目标回合是否结束的方式,检测用户终端是否有多次操作上传,在目标回合未结束的情况下,可以继续接收用户终端上传的操作对应的操作码,再通过变量字符串进行记录,直至目标回合结束后,统一进行统计和处理,最后一并同步至用户终端,实现提高同步效率,减少传输次数的技术效果。
进一步的,由于所述初始变量字符串是根据所述内存数据划分后的各个子内存数据的数量创建,故每个子内存数据将对应所述初始变量字符串中的一个字符,当确定目标数据后,即可将所述初始变量字符串变更为目标变量字符串,本实施例中,具体实现方式如下所述:
根据所述目标服务数据编号,在所述初始变量字符串中确定所述目标数据对应的字符;
基于所述操作码对所述字符进行变更,并根据变更结果获得所述目标变量字符串。
具体的,首先确定所述目标数据的目标服务数据编号,之后在所述初始变量字符串中确定所述目标服务数据编号对应的字符,此时基于操作码确定需要后续需要对目标数据进行修改,则通过该字符对修改状态进行记录,即将所述字符进行变更,最后根据变更结果更新初始变量字符串,即可获得所述目标变量字符串。
需要说明的是,所述字符变更先后,需要有明显的区别,以表示对需要修改的数据进行了记录。
沿用上例,在棋牌类A游戏中,当玩家甲打了一张牌之后,确定玩家甲的操作需要对目标服务数据编号15对应的数据进行修改,即玩家甲打出的牌对应目标服务数据编号15对应的数据;此时确定A游戏的内存数据对应的初始变量字符串(0000…0000)中第15位字符与目标服务数据编号15对应,则将该字符“0”变更为“1”,记录下需要后续对目标服务数据编号15对应的目标数据进行修改,即此时获得的目标变量字符串为(000000000000001000…0000),以用于后续通过遍历目标变量字符串即可确定需要修改的目标数据,以进行统一修改和同步。
综上,通过目标变量字符串对需要修改的目标数据进行临时记录,实现了可以对用户终端在目标回合内的全部操作都进行记录,以满足后续可以统一进行修改和同步,提高同步传输速率的同时,减少传输次数,降低对游戏性能的影响。
此外,由于在不同的游戏中,玩家所能够操作的内容也不同,故需要采用不同的变量字符串记录玩家的操作所需要需改的数据,例如在棋牌类游戏中,由于棋牌类的特性,每张牌都只有一张,每张牌所对应的数据也是独立的,当一张牌发生变化的情况下,通过0/1字符即可记录变化情况,无需考虑该张牌会发生数值的变化,即使在具有重复牌的棋牌类游戏中,也可以将重复的牌分别建立字符对其进行记录,因为牌是有上限的,所以不需要考虑字符串出现无穷尽字符的问题。
而在回合制游戏中,例如角色扮演类游戏,由于游戏的特性,每次玩家控制角色在该回合内对敌方角色进行打击时,可能通过技能打击,或者普通打击,或者组合打击,都会对敌方角色造成不同的伤害,并且由于不同游戏的规则不同,还会出现“暴击”“真实伤害”“法术伤害”“物理伤害”等不同的伤害数值,这个时候如果是指通过0/1字符进行记录,将无法记录该回合内玩家角色向敌方角色所造成的伤害,故为了能够适配不同的游戏,可以配置数值变量字符串,以记录第i次所产生的数值变化,本实施例中,具体实现方式如下所述:
检测所述操作码中是否包含操作数值;
若是,获取与所述初始变量字符串对应的数值变量字符串,并基于所述目标变量字符串确定所述数值变量字符串中的待调整字符;
按照所述操作数值对所述待调整字符进行调整,根据调整结果以及所述数值变量字符串获得目标数值变量字符串;
若否,则不作任何处理即可。
具体的,获取到所述操作码之后,将检测所述操作码中是否包含操作数值,若否,表明所述游戏对应的规则中不包含数值的计算,如棋牌类游戏,此时则按照目标变量字符串进行后续的数据修改和同步处理即可;若否,表明所述游戏对应的规则中包含数值的计算,此时就需要获取与所述初始变量字符串对应的数值变量字符串,并基于目标变量字符串确定所述数值变量字符串中的待调整字符,之后再按照所述操作数值对所述待调整字符进行调整,即可获得所述目标数值变量字符串,用于记录所述用户终端上传的第i次操作对应的操作所发生的数值变化情况。
基于此,由于所述游戏的内存数据划分为多个子内存数据,并针对各个子内存数据创建了所述初始变量字符串,故可以先通过所述初始变量字符串记录需要进行修改的目标数据,获得所述目标数据变量字符串,而所述操作码中的操作数值是指对所述目标数据对应的数值需要进行修改的数值,故记录数值变化的字符串需要与所述初始变量字符串相对应,即可以根据所述目标变量字符串在所述数值变量字符串中的待调整字符,之后按照所述操作数值对所述待调整字符进行调整即可获得所述目标数值变量字符串,以用于后续在修改目标数据时,可以一同将需要修改的数值变化也进行修改,满足不同游戏的修改需求。
例如,在回合制B游戏中,玩家戊通过控制角色S向敌方角色发了技能,造成了2793点伤害,此时服务器接收到玩家戊通过用户终端上传的操作对应的操作码,并确定了通过技能对敌方角色造成伤害所对应的目标数据的编号是6,通过对B游戏内存数据对应的初始变量字符串(0000…0000)(64位)进行变更,获得的目标变量字符串是(000001000…000);同时确定与初始变量字符串对应的数值变量字符串[xxxxx…xxxx](64位,与初始变量字符串中的各个字符一一对应),此时根据目标变量字符串确定数值变量字符串中的待调整字符是第六位字符,之后通过第六位字符对2793点伤害对应的数值进行记录,最终获得的目标数值变量字符串为[xxxxx(2793)xx…xxxx],以用于后续修改目标数据时也对数值的变化进行修改。
综上,为了能够满足针对不同的游戏都可以进行统一记录和统一同步,将通过增加所述数值变量字符的方式对操作码中的操作数值也进行记录,实现不仅可以记录目标数据的需要修改的状态,还能够记录第i次操作对应的数值变化,进一步提高了数据处理的覆盖范围。
步骤S108,i自增1,将所述目标变量字符串作为所述初始变量字符串,并再次执行上述步骤S102。
具体的,在确定所述目标回合未结束的情况下,表明持有所述用户终端的玩家还可能有接下来的操作,此时将获取用户终端在所述目标回合内上传的第i自增1后的操作对应的操作码,并且由于所述用户终端上传的任意操作都是在目标回合内完成的,为了能够提高同步效率,以及减少传输次数,故需要通过所述内存数据的初始变量字符串对目标回合内的全部操作对应的修改需求都进行记录,实现后续统一进行修改和统一同步至用户终端,此时将记录第i次操作后的目标变量字符串作为第i自增1后的内存数据的初始变量字符串,以用于记录第i自增1后的操作记录。即返回执行步骤S102,直至目标回合结束再执行步骤S110。
仍以A游戏为例对步骤S108进行进一步的描述,当确定玩家甲打出一张牌之后,并进行记录,获得目标变量字符串为(000000000000001000…0000),之后检测到玩家甲的目标回合还未结束,说明玩家甲还需要进行操作,此时将目标变量字符串(000000000000001000…0000)作为A游戏的内存数据对应的初始变量字符串,当获取到玩家甲又打出了另一张牌后,确定另一张牌对应的目标数据的数据编号是1,则基于数据编号是1对初始变量字符串(000000000000001000…0000)进行变更,获得的目标变量字符串是(100000000000001000…0000),以此类推,直至检测到目标回合结束后,统一进行修改,以提高处理效率,并且统一进行同步,减少传输次数。
此外,在具有数值变化的游戏中,还需要对数值变量字符串进行调整,即将所述目标数值变量字符串作为所述数值变量字符串,以用于第i自增1后的操作的数值变化进行记录。
需要说明的是,在具有数值变化的游戏中,前后多次的数值变化可能是针对同一目标数据产生的,如连续对敌方角色使用相同的技能,每次打击伤害都是3000点,连续造成3次伤害,共计9000点伤害,此时可以通过累加的方式在数值变量字符串中记录数值的变化,实现对目标回合内的全部数值变化进行记录,方便后续进行修改处理过程。
步骤S110,基于所述目标变量字符串对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,根据处理结果和所述目标数据的数据编号生成更新数据同步至所述用户终端。
具体的,在确定所述目标回合结束的情况下,此时就需要对所述用户终端上传的操作所对应的目标数据进行修改,而在此之前为了能够实现统一进行同步,采用了目标变量字符串对需要修改的数据进行了记录;基于此,通过所述目标变量字符串即可确定需要修改的目标数据,之后根据目标回合内上传的操作码对全部目标数据进行修改,并对修改后的目标数据进行序列化处理,同时与目标数据的数据编号进行整合生成更新数据,最后同步至用户终端,即可实现将持有用户终端的玩家在目标回合内的操作同步给其他玩家,告知其他玩家该玩家的操作。
其中,在将所述更新数据同步至所述用户终端之后,还需要将所述更新数据同步至所述游戏中的其他玩家,即将所述更新数据同步至与用户终端所属玩家所在同一局游戏中的其他玩家,实现告知其他玩家该玩家的操作,以保证游戏的继续进行并且通过在更新数据中加入所述目标数据的数据编号,实现在用户终端更新时,可以通过数据编号确定需要更新的数据所对应的终端数据编号,直接按照编号进行更新,可以有效的提高更新速度。
进一步的,在确定所述目标回合结束之后,需要通过所述目标变量字符串确定目标数据,以实现统一对目标回合内的全部操作所对应的目标数据进行修改,本实施例中,具体实现方式如下所述:
遍历所述目标变量字符串,获得所述目标变量字符串中的变更字符;
确定所述变更字符对应的变更服务数据编号,并在所述内存数据中读取所述变更服务数据编号对应的所述目标数据;
对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,获得二进制序列作为所述处理结果。
具体的,首先遍历所述目标变量字符串,确定所述目标变量字符串中的变更字符,所述变更字符具体是指发生变化的字符,用于记录对应的目标数据需要进行修改,之后确定所述变更字符对应的变更服务数据编号,再从所述内存数据中读取所述变更服务数据编号对应的目标数据,即可确定用户终端在目标回合内上传的全部操作所需要进行修改的数据,最后对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,即可获得用于生成更新数据的二进制序列。
沿用上例,在确定玩家甲在目标回合内操作两次,最终确定的目标变量字符串是(100000000000001000…0000)后,此时通过遍历该字符串,确定目标变量字符串中发生变化的字符是第一位字符和第十五位字符,确定变更服务数据编号是1和15,即可确定玩家甲的操作造成编号为1的数据和编号为15的数据发生了变动,确定编号为1和编号为15的数据为目标数据,并根据玩家甲通过用户终端上传的两次操作码分别对目标数据进行修改,即将目标数据从玩家甲的玩家数据块移动到公有数据块,表示玩家甲将手里的牌打入了牌池,此时将对修改后的目标数据进行序列化处理,获得二进制序列,以用于后续同步至玩家甲,玩家乙,玩家丙和玩家丁的用户终端,告知玩家乙,玩家丙和玩家丁,在玩家甲的目标回合内玩家甲打出了两张牌,分别是牌M和牌N。
通过遍历所述目标变量字符串的方式确定需要进行修改的数据,之后按照所述变更字符确定目标数据,并一同进行修改,有效的提高了修改效率,并且是对目标回合内的全部操作所对应进行修改,
更进一步的,在获得所述二进制序列之后,为了能够满足用户终端可以快速的完成更新过程,可以将所述二进制序列和所述变更服务数据编号生成所述更新数据,再同步至所述用户终端,实现用户终端只需要根据编号进行同步即可,无需进行查找即可快速的完成数据的同步,本实施例中,具体实现方式如下所述:
根据所述二进制序列和所述变更服务数据编号生成所述更新数据;
将所述更新数据同步至所述用户终端。
沿用上例,获得二进制序列之后,将确定变更服务数据编号是1和15,之后整合二进制序列和变更服务数据编号1和15,生成更新数据,并将更新数据同步至玩家甲,玩家乙,玩家丙和玩家丁的用户终端,实现各个用户终端在更新数据时,通过需要更新的数据对应的数据编号是1和15,即按照数据编号完成数据的更新即可,实现玩家乙,玩家丙和玩家丁确定玩家甲在目标回合内打出了牌M和牌N。
此外,在回合制游戏中,进行修改数据时,也需要根据所述目标数值变量字符串对目标数据进行修改,以获得序列化处理后的二进制序列,本实施例中,具体实现方式如下所述:
根据所述目标数值变量字符串对所述目标数据进行修改,获得目标修改数据;
基于所述目标变量字符串对所述目标修改数据进行序列化处理,获得二进制序列。
仍以B游戏为例,在确定玩家戊对敌方角色造成2793点伤害的情况下,此时对目标数据进行修改时,需要按照目标数值变量字符串[xxxxx(2793)xx…xxxx]对目标数据进行修改,获得目标修改数据,最后再基于目标变量字符串(000001000…000)对目标修改数据进行序列化处理,获得二进制序列,以用于后续同步过程。
本申请提供的数据处理方法,通过获取用户终端在目标回合内上传的第i次操作对应的操作码后,确定所述游戏的内存数据对应的初始变量字符串,以及操作码对应的目标数据,之后通过将初始变量字符串变更为目标变量字符串,实现对目标回合内的操作进行记录,在回合未结束的情况下,继续接收用户终端上传的操作,并通过字符串进行记录,直至回合结束后,通过内存数据对应的目标变量字符串即可确定需要处理的目标数据,之后对目标数据进行修改,再对修改后的目标数据进行序列化处理,并根据处理结果和目标数据的数据编号生成更新属性发送至用户终端,实现了对回合内的全部操作所造成的数据变化进行统一处理,一次性同步至用户终端,不仅减少了在同一回合内更新数据的发送数量,还有效的降低了流量过大而造成数据丢失的风险,进一步提高了游戏性能。
下述结合附图2,以本申请提供的数据处理方法对棋牌类游戏处理的应用为例,对所述数据处理方法进行进一步说明。其中,图2示出了本申请一实施例提供的一种应用于棋牌类游戏中的数据处理方法的处理流程图,具体包括以下步骤:
步骤S202,获取用户终端在游戏的目标回合内上传的第i次操作对应的操作码;其中,i从1开始取值且i为正整数。
具体的,在棋牌类的A游戏中,为了能够提高玩家的体验效果,以及提高数据同步时的传输效率,将对玩家在目标回合内的全部操作进行统一同步,以实现减少传输次数,提高A游戏的游戏性能。
基于此,在获取到玩家甲通过用户终端在自己的目标回合内上传第1次操作对应的操作码后,将对玩家甲的操作进行监控,即玩家甲通过用户终端提交的打出一张牌的操作,此时服务器接收到玩家甲的操作码。
步骤S204,确定游戏的内存数据对应的初始变量字符串,以及确定内存数据中包含的子内存数据对应的服务数据编号。
具体的,为了能够提高游戏的同步速度,将对A游戏的内存数据进行划分,划分为64个数据块,每个数据块代表一个子内存数据,并对各个数据块按照0至63进行顺序编号,即可确定每个子内存数据对应的服务数据编号00,01,02…63,同时为了能够监控各个数据块是否根据玩家的操作发生数据修改,可以根据划分后的数据块创建一个64位的初始变量字符串,用于记录数据变化,该初始变量字符串为(0,0,0…0,0,0,)以方便后续进行数据修改的监控和记录。
步骤S206,对操作码进行解析,获得第i次操作对应的终端数据编号。
具体的,在获取到玩家甲的第1次操作后,通过对操作码进行解析,确定玩家甲在用户终端打出了牌“8”,对应终端数据编号是08,此时确定玩家甲打出牌“8”将对编号为08的数据进行修改。
步骤S208,选择与终端数据编号匹配的目标服务数据编号对应的子内存数据,作为目标数据。
具体的,由于服务端和用户终端中的数据编号方式相同,并且用户终端的数据都是由服务端同步过去的,所以当确定终端数据编号是08的操作数据需要变化的情况下,在服务端也可以确定需要进行修改的数据对应的目标服务数据编号是08,该编号所对应的子内存数据即为牌“8”对应的目标数据。
步骤S210,根据目标服务数据编号在初始变量字符串中确定目标数据对应的字符。
步骤S212,基于操作码对字符串进行变更,根据变更结果获得目标变量字符串。
具体的,在确定玩家甲打出牌“8”的情况下,确定需要将玩家数据块中的目标数据移动至公有数据块中,此时由于目标回合还未结束,通过初始变量字符串的方式对需要为修改的数据进行记录,即根据目标服务数据编号08确定初始变量字符串中的第八位字符需要变更,则将该字符进行变更,获得目标变量字符串为(0,0,0,0,0,0,0,1,0…,0,0,0),即将该字符由0变为1,记录牌“8”对应的目标数据需要进行修改。
步骤S214,判断目标回合是否结束;若否,则执行步骤S216;若是,则执行步骤S218。
步骤S216,i自增1,将目标变量字符串作为初始变量字符串,并再次执行步骤S202。
具体的,在目标回合未结束的情况下,说明玩家甲还需要上传了第2次操作,则将此时的目标变量字符串(0,0,0,0,0,0,0,1,0…,0,0,0)作为下一次监控内存数据的初始变量字符串,并执行步骤S202至步骤S212的过程,完成针对第2次操作的记录,再次确定目标变量字符串是(0,0,1,0,0,0,0,1,0…,0,0,0),再执行步骤S214,判断目标回合是否结束,只要玩家甲在目标回合内还存在操作,就再次按照该过程进行数据的确定和记录,以用于后续统一进行同步。
步骤S218,遍历目标变量字符串,获得目标变量字符串中的变更字符。
具体的,本实施例以玩家甲在目标回合内上传两次操作为例进行说明,此时获得的目标变量字符串是(0,0,1,0,0,0,0,1,0…,0,0,0),确定第3位和第8位字符是变更字符。
步骤S220,确定变更字符对应的变更服务数据编号,并在内存数据中读取变更服务数据编号对应的第一待修改数据和第二待修改数据。
步骤S222,对第一待修改数据和第二待修改数据进行修改,并对修改结果进行序列化处理。
步骤S224,根据处理结果生成第一待修改数据对应的第一目标操作码,以及根据处理结果生成第二待修改数据对应的第二目标操作码。
步骤S226,整合第一目标操作码和第二目标操作码,获得目标操作码,并同步至客户端。
具体的,在确定第3位和第8位字符是变更字符后,即可确定玩家甲在打出牌8之后,又打出牌3,此时如果针对玩家甲的操作分别进行同步,将通过两次同步的方式才能够完成玩家甲在目标回合内的操作的同步,为了提高同步效率,以及避免降低A游戏性能的降低,此时可以同时对数据编号为3和数据编号为8的数据进行修改。
基于此,在A游戏的内存数据中读取变更服务数据编号为8的第一待修改数据,以及变更服务数据编号为3的第二待修改数据,此时将第一待修改数据从玩家甲的玩家数据块移动至公有数据块,同时将第二待修改数据也从玩家甲的玩家数据块移动至公有数据块,并对移动结果进行序列化处理。
进一步的,完成序列化处理后,将根据玩家甲打出牌8的第1次操作生成第一目标操作码,以及根据玩家甲打出牌3的第2次操作生成的第二目标操作码,之后将第一目标操作码和第二目标操作码进行整合,实现将玩家甲在目标回合内的全部操作进行整合,并统一同步至用户终端,实现了向其他玩家展示玩家甲打出了牌8和牌3,有效的提高了同步效率。
综上所述,实现了对回合内的全部操作所造成的数据变化进行统一处理,一次性同步至用户终端,不仅减少了在同一回合内更新数据的发送数量,还有效的降低了流量过大而造成数据丢失的风险,进一步提高了游戏性能。
与上述方法实施例相对应,本申请还提供了数据处理装置实施例,图3示出了本申请一实施例提供的一种数据处理装置的结构示意图。如图3所示,该装置包括:
获取模块302,被配置为获取用户终端在游戏的目标回合内上传的第i次操作对应的操作码,其中,i从1开始取值且i为正整数;
确定模块304,被配置为确定所述游戏的内存数据对应的初始变量字符串,以及在所述内存数据中确定所述操作码对应的目标数据;
判断模块306,被配置为根据所述目标数据将所述初始变量字符串变更为目标变量字符串,并判断所述目标回合是否结束;
若否,i自增1,将所述目标变量字符串作为所述初始变量字符串,并再次运行所述获取模块302;
若是,运行同步模块308,所述同步模块308,被配置为基于所述目标变量字符串对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,根据处理结果和所述目标数据的数据编号生成更新数据同步至所述用户终端。
一个可选的实施例中,所述确定模块304,包括:
解析操作码单元,被配置为通过对所述操作码进行解析,获得所述第i次操作对应的操作数据;
确定数据编号单元,被配置为确定所述操作数据对应的终端数据编号,以及所述内存数据中包含的子内存数据对应的服务数据编号;
选择数据编号单元,被配置为选择与所述终端数据编号匹配的目标服务数据编号对应的子内存数据,作为所述目标数据。
一个可选的实施例中,所述同步模块308,包括:
遍历字符串单元,被配置为遍历所述目标变量字符串,获得所述目标变量字符串中的变更字符;
读取目标数据单元,被配置为确定所述变更字符对应的变更服务数据编号,并在所述内存数据中读取所述变更服务数据编号对应的所述目标数据;
序列化处理单元,被配置为对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,获得二进制序列作为所述处理结果。
一个可选的实施例中,所述数据处理装置,还包括:
检测操作数值模块,被配置为检测所述操作码中是否包含操作数值;
若是,运行获取字符串模块,所述获取字符串模块,被配置为获取与所述初始变量字符串对应的数值变量字符串,并基于所述目标变量字符串确定所述数值变量字符串中的待调整字符;
字符调整模块,被配置为按照所述操作数值对所述待调整字符进行调整,根据调整结果以及所述数值变量字符串获得目标数值变量字符串。
一个可选的实施例中,在所述目标回合结束的情况下,所述同步模块308进一步被配置为:
根据所述目标数值变量字符串对所述目标数据进行修改,获得目标修改数据;基于所述目标变量字符串对所述目标修改数据进行序列化处理,获得二进制序列。
本实施例提供的一种数据处理装置,通过获取用户终端在目标回合内上传的第i次操作对应的操作码后,确定所述游戏的内存数据对应的初始变量字符串,以及操作码对应的目标数据,之后通过将初始变量字符串变更为目标变量字符串,实现对目标回合内的操作进行记录,在回合未结束的情况下,继续接收用户终端上传的操作,并通过字符串进行记录,直至回合结束后,通过内存数据对应的目标变量字符串即可确定需要处理的目标数据,之后对目标数据进行修改,再对修改后的目标数据进行序列化处理,并根据处理结果和目标数据的数据编号生成更新属性发送至用户终端,实现了对回合内的全部操作所造成的数据变化进行统一处理,一次性同步至用户终端,不仅减少了在同一回合内更新数据的发送数量,还有效的降低了流量过大而造成数据丢失的风险,进一步提高了游戏性能。
上述为本实施例的一种数据处理装置的示意性方案。需要说明的是,该数据处理装置的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理装置的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
本申请还提供另一种数据处理方法的实施例,具体如下:
图4示出了根据本申请一实施例提供的另一种数据处理方法的流程图,具体包括以下步骤:
步骤S402,获取用户终端在游戏的目标回合内上传的至少两次操作对应的操作码。
实际应用中,由于线上游戏的特性,不仅需要较高的网络需求,还需要服务端及时同步被修改的数据至用户终端,才能够满足及时对玩家的操作做出响应,以实现不同用户终端的玩家可以基于服务器的优化完成交互。可见,游戏的同步过程是保证玩家能够有效交互的重要环节,现有技术中在实现同步时,是基于玩家的一次操作同步一次数据至用户终端,如果玩家连续多次操作或者在同一回合内的操作需要同步多块数据的情况下,都是针对每块数据进行单独封装进行同步,传输效率低,且发送次数较多,可能会导致游戏性能的下降。
本实施例提供的数据处理方法,为了能够提高同步效率,以及在减少发送次数的情况下可以完成数据同步,将在获取到用户终端上传的至少两次操作对应的操作码之后,确定所述游戏的内存数据,并在所述内存数据中确定所述操作码对应的目标数据,再确定目标回合结束的情况下,将一同对两次操作对应的目标数据修改,并对修改后的目标数据进行序列化处理,同时整合数据编号生成更新数据同步至用户终端,实现了对回合内的全部操作所造成的数据变化进行统一处理,一次性同步至用户终端,不仅减少了在同一回合内更新数据的发送数量,还有效的降低了流量过大而造成数据丢失的风险,进一步提高了游戏性能。
具体实施时,所述用户终端具体是指玩家在玩游戏时所使用的终端设备,可以是手机、电脑或者平板电脑等智能设备,所述游戏具体是指线上游戏,如线上棋牌类游戏,线上角色扮演类游戏,线上动作类游戏等,所述目标回合具体是指在游戏内属于玩家操作的回合,如在棋牌类游戏中,玩家可以进行打牌或者抓牌等操作时,该阶段为玩家的操作回合,即属于玩家的目标回合。
基于此,所述操作具体是指玩家在目标回合内通过用户终端提交的操作,相应的,所述操作码具体是指玩家通过用户终端进行游戏操作后,能够通过操作码告知服务端此次操作的类型,以及操作类型所产生数据变化情况。
本实施例中,将以所述游戏为回合制游戏为例,对所述数据处理方法进行描述,其他相同或相似类型的游戏均可参见本实施例相应的描述内容,本申请在此不作过多赘述。
步骤S404,确定所述游戏的内存数据,并在所述内存数据中确定所述操作码对应的目标数据。
具体的,在上述获取到用户终端上传的至少两次操作对应的操作码的基础上,进一步的,将确定所述游戏的内存数据,并在所述内存数据中确定所述操作码对应的目标数据,以实现当目标回合结束后,可以同时对目标数据进行修改和处理。
进一步的,为了能够方便对目标数据进行确定,以及后续可以减少同步数据的流量,可以对所述内存数据进行划分,分成多个子内存数据,根据操作码确定子内存数据即可,无需全量进行数据的修改和同步,本实施例中,具体实现方式如下所述:
通过对所述操作码进行解析,获得所述至少两次操作对应的操作数据;
确定所述操作数据对应的终端数据编号,以及所述内存数据中包含的子内存数据对应的服务数据编号;
选择与所述终端数据编号匹配的目标服务数据编号对应的子内存数据,作为所述目标数据。
例如,在回合制C游戏中,玩家控制角色连续打击敌方角色两次,并且第一次使用了技能a,第二次使用了技能b,此时确定两次打击方式并不相同,则向服务端上传了两次操作对应的操作码,服务端根据两个操作码确定技能a对应的终端数据编号是5,技能b对应的终端数据编号是8,则在内存数据中确定与编号5和编号8对应的子内存数据,作为目标数据,以进行后续的修改过程。
综上,为了能够保证后续可以准确的对至少两次操作所需要进行修改的数据进行处理,将对操作码进行解析,获得操作数据对应的终端数据编号,再确定与终端数据编号对应的目标服务数据编号对应的子内存数据作为目标数据,方便后续统一进行修改和同步至用户终端,提高了数据处理的准确度。
步骤S406,在所述目标回合结束的情况下,对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,获得二进制序列。
具体的,在上述获得所述目标数据之后,当检测到所述目标回合结束,即可对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,获得二进制序列,方便后续同步至用户终端。
进一步的,在此之前,为了能够方便对目标回合内的操作进行监控,可以通过初始变量字符串对操作进行记录,之后通过遍历字符串的方式进行目标数据的修改和序列化处理,本实施例中,具体实现方式如下所述:
确定所述内存数据对应的初始变量字符串;
根据所述目标服务数据编号将所述初始变量字符串变更为目标变量字符串;
相应的,执行步骤S406,所述步骤S406具体是指在所述目标回合结束的情况下,根据所述目标变量字符串对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,获得所述二进制序列。
更进一步的,为了能够通过变量字符串对数据变化进行记录,以及记录后确定需要进行序列化处理的目标数据,可以预先对游戏的内存数据进行划分,并对划分后的各个子内存数据进行编号,实现在数据处理的过程中可以通过编号和变量字符串的结合确定待序列化处理的目标数据,本实施例中,具体实现方式如下所述:
按照预设的规则对所述内存数据进行划分,并对划分后的各个子内存数据进行编号,确定所述子内存数据对应的数据编号;
相应的,所述初始变量字符串根据所述子内存数据的数量生成,所述初始变量字符串中的字符用于记录子内存数据的变化状态。
具体的,所述预设的规则具体是指对所述内存数据进行划分的规则,可以按照游戏属性进行划分,或者按照游戏类型进行划分,所述各个子内存数据具体是指所述游戏的内存数据划分后的结果,所述数据编号具体是指各个子内存数据对应的编号,并且各个子内存数据的数据编号不重复,便于记录和序列化处理。
基于此,在所述游戏创建完成之后,即可根据所述游戏的属性或者类型将所述游戏的内存数据划分为各个子内存数据,再对各个子内存数据进行编号,确定各个子内存数据的数据编号,之后通过统计所述游戏的子内存数据的数量,生成与数量相等的字符组成所述初始变量字符串,实现在子内存数据发生变化的情况下,可以通过字符对发生变化的子内存数据进行记录,便于后续统一进行数据的更新过程。
需要说明的是,在对游戏的内存数据进行划分时,可以将内存数据划分为64块子内存数据,之后采用数字0到63分别对每个子内存数据进行编号,并且针对内存数据创建的初始变量字符串也是由64位字符组成,之后通过每个字符来记录对应的子内存数据是否发生变化,若变化就将该字符由0变为1,表示该字符发生变化,并且初始变量字符串再每个回合都会恢复初始化,即初始变量字符串只对当前回合的数据变化进行记录。
实际应用中,由于用户终端在目标回合内提交的操作可能同时造成多个子内存数据发生变化,或者目标回合内先后进行多次操作,可能引起多个子内存数据发生变化,都可以通过初始变量字符串对当前回合内的数据变化进行记录,实现准确的对目标回合中的操作进行全盘记录,提高后续进行数据同步的效率。
具体的,在上述确定所述内存数据对应的初始变量字符串和所述目标数据的基础上,说明已经根据所述操作码在服务端确定了用户终端上传的至少两次操作对应的需要修改的目标数据,之后通过所述初始变量字符串对需要修改的目标数据进行记录,实现后续能够根据记录的结果统一进行修改,并同步至用户终端,故根据所述目标数据将所述初始变量字符串变更为所述目标变量字符串;其中,所述目标变量字符串表示已经对至少两次操作对应的目标数据处于待修改状态进行记录,后续通过遍历目标变量字符串即可确定需要修改的目标数据,本实施例中,具体实现方式如下所述:
根据所述目标服务数据编号,在所述初始变量字符串中确定所述目标数据对应的字符;
基于所述操作码对所述字符进行变更,并根据变更结果获得所述目标变量字符串。
进一步的,在确定所述目标回合结束之后,需要通过所述目标变量字符串确定目标数据,以实现统一对目标回合内的全部操作所对应的目标数据进行修改,本实施例中,具体实现方式如下所述:
遍历所述目标变量字符串,获得所述目标变量字符串中的变更字符;
确定所述变量字符对应的变更服务数据编号,并在所述内存数据中读取所述变更服务数据编号对应的所述目标数据;
对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,获得所述二进制序列。
具体的,首先遍历所述目标变量字符串,确定所述目标变量字符串中的变更字符,所述变更字符具体是指发生变化的字符,用于记录对应的目标数据需要进行修改,之后确定所述变更字符对应的变更服务数据编号,再从所述内存数据中读取所述变更服务数据编号对应的目标数据,即可确定用户终端在目标回合内上传的全部操作所需要进行修改的数据,最后对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,即可获得用于生成更新数据的二进制序列。
通过遍历所述目标变量字符串的方式确定需要进行修改的数据,之后按照所述变更字符确定目标数据,并一同进行修改,有效的提高了修改效率,并且是对目标回合内的全部操作所对应进行修改,
此外,在回合制游戏中,例如角色扮演类游戏,由于游戏的特性,每次玩家控制角色在该回合内对敌方角色进行打击时,可能通过技能打击,或者普通打击,或者组合打击,都会对敌方角色造成不同的伤害,并且由于不同游戏的规则不同,还会出现“暴击”“真实伤害”“法术伤害”“物理伤害”等不同的伤害数值,这个时候如果是指通过0/1字符进行记录,将无法记录该回合内玩家角色向敌方角色所造成的伤害,故为了能够适配不同的游戏,可以配置数值变量字符串,以记录第i次所产生的数值变化,本实施例中,具体实现方式如下所述:
检测所述操作码中是否包含操作数值;
若是,获取与所述初始变量字符串对应的数值变量字符串,并基于所述目标变量字符串确定所述数值变量字符串中的待调整字符;
按照所述操作数值对所述待调整字符进行调整,根据调整结果以及所述数值变量字符串获得目标数值变量字符串;
若否,则不作任何处理即可。
具体的,获取到所述操作码之后,将检测所述操作码中是否包含操作数值,若否,表明所述游戏对应的规则中不包含数值的计算,如棋牌类游戏,此时则按照目标变量字符串进行后续的数据修改和同步处理即可;若否,表明所述游戏对应的规则中包含数值的计算,此时就需要获取与所述初始变量字符串对应的数值变量字符串,并基于目标变量字符串确定所述数值变量字符串中的待调整字符,之后再按照所述操作数值对所述待调整字符进行调整,即可获得所述目标数值变量字符串,用于记录所述用户终端上传的至少两次操作对应的操作所发生的数值变化情况。
基于此,由于所述游戏的内存数据划分为多个子内存数据,并针对各个子内存数据创建了所述初始变量字符串,故可以先通过所述初始变量字符串记录需要进行修改的目标数据,获得所述目标数据变量字符串,而所述操作码中的操作数值是指对所述目标数据对应的数值需要进行修改的数值,故记录数值变化的字符串需要与所述初始变量字符串相对应,即可以根据所述目标变量字符串在所述数值变量字符串中的待调整字符,之后按照所述操作数值对所述待调整字符进行调整即可获得所述目标数值变量字符串,以用于后续在修改目标数据时,可以一同将需要修改的数值变化也进行修改,满足不同游戏的修改需求。
例如,在回合制C游戏中,玩家戊通过控制角色S向敌方角色发了技能,造成了2793点伤害,并连续两次释放了该技能,此时服务器接收到玩家戊通过用户终端上传的操作对应的操作码,并确定了通过技能对敌方角色造成伤害所对应的目标数据的编号是6,通过对C游戏内存数据对应的初始变量字符串(0000…0000)(64位)进行变更,获得的目标变量字符串是(000001000…000);同时确定与初始变量字符串对应的数值变量字符串[xxxxx…xxxx](64位,与初始变量字符串中的各个字符一一对应),此时根据目标变量字符串确定数值变量字符串中的待调整字符是第六位字符,之后通过第六位字符对2793点伤害对应的数值进行记录,最终获得的目标数值变量字符串为[xxxxx(2793*2)xx…xxxx],以用于后续修改目标数据时也对数值的变化进行修改。
综上,为了能够满足针对不同的游戏都可以进行统一记录和统一同步,将通过增加所述数值变量字符的方式对操作码中的操作数值也进行记录,实现不仅可以记录目标数据的需要修改的状态,还能够记录第i次操作对应的数值变化,进一步提高了数据处理的覆盖范围。
更进一步的,进行修改数据时,也需要根据所述目标数值变量字符串对目标数据进行修改,以获得序列化处理后的二进制序列,本实施例中,具体实现方式如下所述:
根据所述目标数值变量字符串对所述目标数据进行修改,获得目标修改数据;
对所述目标修改数据进行序列化处理,获得所述二进制序列。
仍以C游戏为例,在确定玩家戊对敌方角色造成2793点伤害的情况下,此时对目标数据进行修改时,需要按照目标数值变量字符串[xxxxx(2793*2)xx…xxxx]对目标数据进行修改,获得目标修改数据,最后再基于目标变量字符串(000001000…000)对目标修改数据进行序列化处理,获得二进制序列,以用于后续同步过程。
步骤S408,根据所述二进制序列和所述目标数据的数据编号生成更新数据,并同步至所述用户终端。
实际应用中,在将所述更新数据同步至所述用户终端之后,还需要将所述更新数据同步至所述游戏中的其他玩家,即将所述更新数据同步至与用户终端所属玩家所在同一局游戏中的其他玩家,实现告知其他玩家该玩家的操作,以保证游戏的继续进行并且通过在更新数据中加入所述目标数据的数据编号,实现在用户终端更新时,可以通过数据编号确定需要更新的数据所对应的终端数据编号,直接按照编号进行更新,可以有效的提高更新速度。
需要说明的是,本实施例提供的另一种数据处理方法,与上述实施例提供的数据处理方法相似,相应的描述内容均可参见上述实施例中的描述内容,本实施例在此不作过多赘述。
本实施例提供的另一种数据处理方法,将在获取到用户终端上传的至少两次操作对应的操作码之后,确定所述游戏的内存数据,并在所述内存数据中确定所述操作码对应的目标数据,再确定目标回合结束的情况下,将一同对两次操作对应的目标数据修改,并对修改后的目标数据进行序列化处理,同时整合数据编号生成更新数据同步至用户终端,实现了对回合内的全部操作所造成的数据变化进行统一处理,一次性同步至用户终端,不仅减少了在同一回合内更新数据的发送数量,还有效的降低了流量过大而造成数据丢失的风险,进一步提高了游戏性能。
与上述另一种数据处理方法实施例相对应,本申请还提供了数据处理装置实施例,图5示出了本申请一实施例提供的另一种数据处理装置的结构示意图。如图5所示,该装置包括:
获取操作码模块502,被配置为获取用户终端在游戏的目标回合内上传的至少两次操作对应的操作码;
确定目标数据模块504,被配置为确定所述游戏的内存数据,并在所述内存数据中确定所述操作码对应的目标数据;
序列化处理模块506,被配置为在所述目标回合结束的情况下,对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,获得二进制序列;
同步数据模块508,被配置为根据所述二进制序列和所述目标数据的数据编号生成更新数据,并同步至所述用户终端。
一个可选的实施例中,所述确定目标数据模块504,包括:
解析操作码单元,被配置为通过对所述操作码进行解析,获得所述至少两次操作对应的操作数据;
确定数据编号单元,被配置为确定所述操作数据对应的终端数据编号,以及所述内存数据中包含的子内存数据对应的服务数据编号;
选择子内存数据单元,被配置为选择与所述终端数据编号匹配的目标服务数据编号对应的子内存数据,作为所述目标数据。
一个可选的实施例中,所述数据处理装置,还包括:
确定字符串模块,被配置为确定所述内存数据对应的初始变量字符串;
变更字符串模块,被配置为根据所述目标服务数据编号将所述初始变量字符串变更为目标变量字符串;
相应的,所述序列化处理模块506进一步被配置为:
在所述目标回合结束的情况下,根据所述目标变量字符串对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,获得所述二进制序列。
一个可选的实施例中,所述数据处理装置,还包括:
检测模块,被配置为检测所述操作码中是否包含操作数值;
若是,运行获取字符串模块,所述获取字符串模块,被配置为获取与所述初始变量字符串对应的数值变量字符串,并基于所述目标变量字符串确定所述数值变量字符串中的待调整字符;
调整字符串模块,被配置为按照所述操作数值对所述待调整字符进行调整,根据调整结果以及所述数值变量字符串获得目标数值变量字符串。
本实施例提供的另一种数据处理装置,将在获取到用户终端上传的至少两次操作对应的操作码之后,确定所述游戏的内存数据,并在所述内存数据中确定所述操作码对应的目标数据,再确定目标回合结束的情况下,将一同对两次操作对应的目标数据修改,并对修改后的目标数据进行序列化处理,同时整合数据编号生成更新数据同步至用户终端,实现了对回合内的全部操作所造成的数据变化进行统一处理,一次性同步至用户终端,不仅减少了在同一回合内更新数据的发送数量,还有效的降低了流量过大而造成数据丢失的风险,进一步提高了游戏性能。
上述为本实施例的另一种数据处理装置的示意性方案。需要说明的是,该数据处理装置的技术方案与上述的另一种数据处理方法的技术方案属于同一构思,数据处理装置的技术方案未详细描述的细节内容,均可以参见上述另一种数据处理方法的技术方案的描述。此外,装置实施例中的各组成部分应当理解为实现该程序流程各步骤或该方法各步骤所必须建立的功能模块,各个功能模块并非实际的功能分割或者分离限定。由这样一组功能模块限定的装置权利要求应当理解为主要通过说明书记载的计算机程序实现该解决方案的功能模块构架,而不应当理解为主要通过硬件方式实现该解决方案的实体装置。
与上述一种数据处理方法实施例相对应,本申请还提供了数据处理系统实施例,图6示出了本申请一实施例提供的一种数据处理系统的结构示意图。如图6所示,该数据处理系统600包括:
服务端602,用户终端604;
所述服务端602,被配置为接收所述用户终端604在游戏的目标回合内上传的第i次操作对应的操作码,其中,i从1开始取值且i为正整数;确定所述游戏的内存数据对应的初始变量字符串,以及在所述内存数据中确定所述操作码对应的目标数据;根据所述目标数据将所述初始变量字符串变更为目标变量字符串,并判断所述目标回合是否结束;若否,i自增1,将所述目标变量字符串作为所述初始变量字符串,并再次执行所述获取用户终端在游戏的目标回合内上传的第i次对应的操作码步骤;若是,基于所述目标变量字符串对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,根据处理结果和所述目标数据的数据编号生成更新数据同步至所述用户终端604;
所述用户终端604,被配置为通过对所述更新数据进行解析,获得二进制序列和所述目标数据的数据编号;对所述二进制序列进行反序列化处理获得修改后的目标数据;确定所述目标数据的数据编号对应的终端数据编号,并根据所述修改后的目标数据对所述终端数据编号对应的数据进行更新。
本实施例提供的数据处理系统,通过获取用户终端在目标回合内上传的第i次操作对应的操作码后,确定所述游戏的内存数据对应的初始变量字符串,以及操作码对应的目标数据,之后通过将初始变量字符串变更为目标变量字符串,实现对目标回合内的操作进行记录,在回合未结束的情况下,继续接收用户终端上传的操作,并通过字符串进行记录,直至回合结束后,通过内存数据对应的目标变量字符串即可确定需要处理的目标数据,之后对目标数据进行修改,再对修稿后的目标数据进行序列化处理,并根据处理结果和目标数据的数据编号生成更新属性发送至用户终端,实现了对回合内的全部操作所造成的数据变化进行统一处理,一次性同步至用户终端,不仅减少了在同一回合内更新数据的发送数量,还有效的降低了流量过大而造成数据丢失的风险,进一步提高了游戏性能。
上述为本实施例的一种数据处理系统的示意性方案。需要说明的是,该数据处理系统的技术方案与上述的一种数据处理方法的技术方案属于同一构思,数据处理系统的技术方案未详细描述的细节内容,均可以参见上述一种数据处理方法的技术方案的描述。
与上述另一种数据处理方法实施例相对应,本申请还提供了数据处理系统实施例,图7示出了本申请一实施例提供的另一种数据处理系统的结构示意图。如图7所示,该数据处理系统700包括:
服务端702,用户终端704;
所述服务端702,被配置为接收所述用户终端704在游戏的目标回合内上传的至少两次操作对应的操作码;确定所述游戏的内存数据,并在所述内存数据中确定所述操作码对应的目标数据;在所述目标回合结束的情况下,对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,获得二进制序列;根据所述二进制序列和所述目标数据的数据编号生成更新数据,并同步至所述用户终端704;
所述用户终端702,被配置为通过对所述更新数据进行解析,获得所述二进制序列和所述目标数据的数据编号;对所述二进制序列进行反序列化处理获得修改后的目标数据;确定所述目标数据的数据编号对应的终端数据编号,并根据所述修改后的目标数据对所述终端数据编号对应的数据进行更新。
本实施例提供的另一种数据处理系统,将在获取到用户终端上传的至少两次操作对应的操作码之后,确定所述游戏的内存数据,并在所述内存数据中确定所述操作码对应的目标数据,再确定目标回合结束的情况下,将一同对两次操作对应的目标数据修改,并对修改后的目标数据进行序列化处理,同时整合数据编号生成更新数据同步至用户终端,实现了对回合内的全部操作所造成的数据变化进行统一处理,一次性同步至用户终端,不仅减少了在同一回合内更新数据的发送数量,还有效的降低了流量过大而造成数据丢失的风险,进一步提高了游戏性能。
上述为本实施例的另一种数据处理系统的示意性方案。需要说明的是,该数据处理系统的技术方案与上述的另一种数据处理方法的技术方案属于同一构思,数据处理系统的技术方案未详细描述的细节内容,均可以参见上述另一种数据处理方法的技术方案的描述。
图8示出了根据本申请一实施例提供的一种计算设备800的结构框图。该计算设备800的部件包括但不限于存储器810和处理器820。处理器820与存储器810通过总线830相连接,数据库850用于保存数据。
计算设备800还包括接入设备840,接入设备840使得计算设备800能够经由一个或多个网络860通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备840可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本申请的一个实施例中,计算设备800的上述部件以及图8中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图8所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备800可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备800还可以是移动式或静止式的服务器。其中,处理器820用于执行两种数据处理方法的计算机可执行指令。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的两种数据处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述两种数据处理方法的技术方案的描述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于上述两种数据处理方法。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的两种数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述两种数据处理方法的技术方案的描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

Claims (13)

1.一种数据处理方法,其特征在于,包括:
获取用户终端在游戏的目标回合内上传的第i次操作对应的操作码,其中,i从1开始取值且i为正整数;
确定所述游戏的内存数据对应的初始变量字符串,以及在所述内存数据中确定所述操作码对应的目标数据,所述目标数据为所述游戏的内存数据中被所述操作码改变的数据,所述初始变量字符串根据对所述内存数据划分后的子内存数据的数量生成;
根据所述目标数据将所述初始变量字符串变更为目标变量字符串,并判断所述目标回合是否结束;
若否,i自增1,将所述目标变量字符串作为所述初始变量字符串,并再次执行所述获取用户终端在游戏的目标回合内上传的第i次对应的操作码步骤;
若是,根据所述目标数值变量字符串对所述目标数据进行修改,获得目标修改数据,基于所述目标变量字符串对所述目标修改数据进行序列化处理,获得二进制序列,根据处理结果和所述目标数据的数据编号生成更新数据同步至所述用户终端。
2.根据权利要求1所述的数据处理方法,其特征在于,所述在所述内存数据中确定所述操作码对应的目标数据,包括:
通过对所述操作码进行解析,获得所述第i次操作对应的操作数据;
确定所述操作数据对应的终端数据编号,以及所述内存数据中包含的子内存数据对应的服务数据编号;
选择与所述终端数据编号匹配的目标服务数据编号对应的子内存数据,作为所述目标数据。
3.根据权利要求1所述的数据处理方法,其特征在于,所述基于所述目标变量字符串对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,包括:
遍历所述目标变量字符串,获得所述目标变量字符串中的变更字符;
确定所述变更字符对应的变更服务数据编号,并在所述内存数据中读取所述变更服务数据编号对应的所述目标数据;
对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,获得二进制序列作为所述处理结果。
4.根据权利要求1所述的数据处理方法,其特征在于,还包括:
检测所述操作码中是否包含操作数值;
若是,获取与所述初始变量字符串对应的数值变量字符串,并基于所述目标变量字符串确定所述数值变量字符串中的待调整字符;
按照所述操作数值对所述待调整字符进行调整,根据调整结果以及所述数值变量字符串获得目标数值变量字符串。
5.一种数据处理装置,其特征在于,包括:
获取模块,被配置为获取用户终端在游戏的目标回合内上传的第i次操作对应的操作码,其中,i从1开始取值且i为正整数;
确定模块,被配置为确定所述游戏的内存数据对应的初始变量字符串,以及在所述内存数据中确定所述操作码对应的目标数据,所述目标数据为所述游戏的内存数据中被所述操作码改变的数据,所述初始变量字符串根据对所述内存数据划分后的子内存数据的数量生成;
判断模块,被配置为根据所述目标数据将所述初始变量字符串变更为目标变量字符串,并判断所述目标回合是否结束;
若否,i自增1,将所述目标变量字符串作为所述初始变量字符串,并再次运行所述获取模块;
若是,运行同步模块,所述同步模块,被配置为根据所述目标数值变量字符串对所述目标数据进行修改,获得目标修改数据,基于所述目标变量字符串对所述目标修改数据进行序列化处理,获得二进制序列,根据处理结果和所述目标数据的数据编号生成更新数据同步至所述用户终端。
6.一种数据处理方法,其特征在于,包括:
获取用户终端在游戏的目标回合内上传的至少两次操作对应的操作码;
确定所述游戏的内存数据,并在所述内存数据中确定所述操作码对应的目标数据,所述目标数据为所述游戏的内存数据中被所述操作码改变的数据;
确定所述内存数据对应的初始变量字符串,根据所述目标服务数据编号将所述初始变量字符串变更为目标变量字符串,其中,所述初始变量字符串根据对所述内存数据划分后的子内存数据的数量生成,所述目标服务数据编号为所述子内存数据对应的、且与终端数据编号匹配的目标服务数据编号;
在所述目标回合结束的情况下,根据所述目标变量字符串对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,获得二进制序列;
根据所述二进制序列和所述目标数据的数据编号生成更新数据,并同步至所述用户终端。
7.根据权利要求6所述的数据处理方法,其特征在于,所述在所述内存数据中确定所述操作码对应的目标数据,包括:
通过对所述操作码进行解析,获得所述至少两次操作对应的操作数据;
确定所述操作数据对应的终端数据编号,以及所述内存数据中包含的子内存数据对应的服务数据编号;
选择与所述终端数据编号匹配的目标服务数据编号对应的子内存数据,作为所述目标数据。
8.根据权利要求7所述的数据处理方法,其特征在于,所述在所述目标回合结束的情况下,对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,获得二进制序列步骤执行之前,还包括:
检测所述操作码中是否包含操作数值;
若是,获取与所述初始变量字符串对应的数值变量字符串,并基于所述目标变量字符串确定所述数值变量字符串中的待调整字符;
按照所述操作数值对所述待调整字符进行调整,根据调整结果以及所述数值变量字符串获得目标数值变量字符串。
9.一种数据处理装置,其特征在于,包括:
获取操作码模块,被配置为获取用户终端在游戏的目标回合内上传的至少两次操作对应的操作码;
确定目标数据模块,被配置为确定所述游戏的内存数据,并在所述内存数据中确定所述操作码对应的目标数据,所述目标数据为所述游戏的内存数据中被所述操作码改变的数据;
确定字符串模块,被配置为确定所述内存数据对应的初始变量字符串,其中,所述初始变量字符串根据对所述内存数据划分后的子内存数据的数量生成;
变更字符串模块,被配置为根据所述目标服务数据编号将所述初始变量字符串变更为目标变量字符串,其中,所述目标服务数据编号为所述子内存数据对应的、且与终端数据编号匹配的目标服务数据编号;
序列化处理模块,被配置为在所述目标回合结束的情况下,根据所述目标变量字符串对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,获得二进制序列;
同步数据模块,被配置为根据所述二进制序列和所述目标数据的数据编号生成更新数据,并同步至所述用户终端。
10.一种数据处理系统,其特征在于,包括:
服务端,用户终端;
所述服务端,被配置为接收所述用户终端在游戏的目标回合内上传的第i次操作对应的操作码,其中,i从1开始取值且i为正整数;确定所述游戏的内存数据对应的初始变量字符串,以及在所述内存数据中确定所述操作码对应的目标数据,所述目标数据为所述游戏的内存数据中被所述操作码改变的数据;根据所述目标数据将所述初始变量字符串变更为目标变量字符串,并判断所述目标回合是否结束;若否,i自增1,将所述目标变量字符串作为所述初始变量字符串,并再次执行接收用户终端在游戏的目标回合内上传的第i次对应的操作码步骤;若是,基于所述目标变量字符串对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,根据处理结果和所述目标数据的数据编号生成更新数据同步至所述用户终端,其中,所述初始变量字符串根据对所述内存数据划分后的子内存数据的数量生成;
所述用户终端,被配置为通过对所述更新数据进行解析,获得二进制序列和所述目标数据的数据编号;对所述二进制序列进行反序列化处理获得修改后的目标数据;确定所述目标数据的数据编号对应的终端数据编号,并根据所述修改后的目标数据对所述终端数据编号对应的数据进行更新。
11.一种数据处理系统,其特征在于,包括:
服务端,用户终端;
所述服务端,被配置为接收所述用户终端在游戏的目标回合内上传的至少两次操作对应的操作码;确定所述游戏的内存数据,并在所述内存数据中确定所述操作码对应的目标数据,所述目标数据为所述游戏的内存数据中被所述操作码改变的数据;确定所述内存数据对应的初始变量字符串,根据所述目标服务数据编号将所述初始变量字符串变更为目标变量字符串,其中,所述初始变量字符串根据对所述内存数据划分后的子内存数据的数量生成,所述目标服务数据编号为所述子内存数据对应的、且与终端数据编号匹配的目标服务数据编号;在所述目标回合结束的情况下,根据所述目标变量字符串对所述目标数据进行修改,并对修改后的目标数据进行序列化处理,获得二进制序列;根据所述二进制序列和所述目标数据的数据编号生成更新数据,并同步至所述用户终端;
所述用户终端,被配置为通过对所述更新数据进行解析,获得所述二进制序列和所述目标数据的数据编号;对所述二进制序列进行反序列化处理获得修改后的目标数据;确定所述目标数据的数据编号对应的终端数据编号,并根据所述修改后的目标数据对所述终端数据编号对应的数据进行更新。
12.一种计算设备,其特征在于,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令实现权利要求1至4,6至8任意一项所述数据处理方法的步骤。
13.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1至4,6至8任意一项所述数据处理方法的步骤。
CN202011121390.XA 2020-10-19 2020-10-19 数据处理方法、装置及系统 Active CN112206533B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011121390.XA CN112206533B (zh) 2020-10-19 2020-10-19 数据处理方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011121390.XA CN112206533B (zh) 2020-10-19 2020-10-19 数据处理方法、装置及系统

Publications (2)

Publication Number Publication Date
CN112206533A CN112206533A (zh) 2021-01-12
CN112206533B true CN112206533B (zh) 2023-01-10

Family

ID=74055964

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011121390.XA Active CN112206533B (zh) 2020-10-19 2020-10-19 数据处理方法、装置及系统

Country Status (1)

Country Link
CN (1) CN112206533B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113239001A (zh) * 2021-05-21 2021-08-10 珠海金山网络游戏科技有限公司 一种数据存储方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6386980B1 (en) * 1998-12-26 2002-05-14 Kabushiki Kaisha Sega Enterprises Game apparatus, game system using same, and information processing unit
CN106375314B (zh) * 2016-08-31 2018-10-02 腾讯科技(深圳)有限公司 一种游戏同步方法、游戏客户端及游戏服务器
CN110515605B (zh) * 2019-08-20 2023-08-22 网易(杭州)网络有限公司 属性信息的同步方法及装置、存储介质和处理器
CN111680079B (zh) * 2019-12-18 2024-04-16 北京金山猎豹科技有限公司 一种将Json数据转换为字典数据的方法、装置及电子设备

Also Published As

Publication number Publication date
CN112206533A (zh) 2021-01-12

Similar Documents

Publication Publication Date Title
US10105603B2 (en) Automated tuning of computer-implemented games
CN102195935B (zh) 游戏托管系统及方法
CN109847366B (zh) 用于游戏的数据处理方法和装置
CN112206533B (zh) 数据处理方法、装置及系统
CN108579095A (zh) 游戏中的社交关系推荐方法、装置和计算机可读存储介质
US10403089B2 (en) Automated hand strength estimation for card games
CN105760238B (zh) 图形指令数据的处理方法和装置及系统
CN110841295B (zh) 一种基于人工智能的数据处理方法和相关装置
US9639455B2 (en) Autonomous media version testing
CN110134665A (zh) 基于流量镜像的数据库自学习优化方法及装置
CN106390450A (zh) 一种游戏状态更新方法、装置及系统
CN111310918A (zh) 一种数据处理方法、装置、计算机设备及存储介质
CN110825636A (zh) 一种匹配算法性能测试方法、装置、设备、系统及介质
CN111346377A (zh) 用于网络游戏的记录、回放方法及装置、服务器、终端
CN113827978A (zh) 一种流失用户预测方法、装置及计算机可读存储介质
CN110263937B (zh) 一种数据处理方法、设备及存储介质
CN110555480A (zh) 一种训练数据生成的方法及相关装置
CN112245936A (zh) 账号匹配方法、装置及服务器
KR100881836B1 (ko) 온라인 게임에 있어서의 몬스터 재생성 장치 및 그 방법
CN113946604B (zh) 分阶段围棋教学方法、装置、电子设备及存储介质
CN106953756A (zh) 一种业务数据的模拟延时方法以及服务器
CN112206531B (zh) 游戏创建方法及装置
CN114530073A (zh) 基于虚拟现实的培训方法及装置
CN113827946A (zh) 博弈对局决策方法和装置、电子设备及存储介质
CN113457158A (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 519000 Room 102, 202, 302 and 402, No. 325, Qiandao Ring Road, Tangjiawan Town, high tech Zone, Zhuhai City, Guangdong Province, Room 102 and 202, No. 327 and Room 302, No. 329

Applicant after: Zhuhai Jinshan Digital Network Technology Co.,Ltd.

Address before: 519000 Room 102, 202, 302 and 402, No. 325, Qiandao Ring Road, Tangjiawan Town, high tech Zone, Zhuhai City, Guangdong Province, Room 102 and 202, No. 327 and Room 302, No. 329

Applicant before: ZHUHAI KINGSOFT ONLINE GAME TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant