CN104598832B - 网络游戏中游戏数值防篡改的设备和方法、网络游戏系统 - Google Patents
网络游戏中游戏数值防篡改的设备和方法、网络游戏系统 Download PDFInfo
- Publication number
- CN104598832B CN104598832B CN201510010274.3A CN201510010274A CN104598832B CN 104598832 B CN104598832 B CN 104598832B CN 201510010274 A CN201510010274 A CN 201510010274A CN 104598832 B CN104598832 B CN 104598832B
- Authority
- CN
- China
- Prior art keywords
- game
- numerical value
- value
- data
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2135—Metering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种网络游戏中游戏数值防篡改设备,其包括游戏客户端,以及与游戏客户端相连的游戏服务器。其中,游戏客户端针对每一用户行为基于预定游戏逻辑产生游戏数据,分析所述游戏数据而得到针对每一用户行为需要上传至所述游戏服务器的游戏数据,然后将所述需要上传至所述游戏服务器的游戏数据上传至所述游戏服务器。游戏服务器根据所接收到的游戏数据,通过预先配置于其中的用于验证游戏数值的合理性的表达式对游戏数值的合理性进行验证,如果验证合理,则保存游戏数值,否则不保存。本发明还公开了一种网络游戏中游戏数值防篡改方法以及包含本发明的设备的网络系统。
Description
技术领域
本发明涉及计算机应用及互联网技术领域,尤其涉及网络游戏中游戏数值防篡改的设备和方法、以及用于网络游戏系统。
背景技术
随着计算机网络技术和移动终端的不断发展,游戏已经成为互联网应用的重要组成部分。
传统的单机游戏通常是将游戏存档保存在本地,随着游戏网络化的推进,一些单机游戏转变成网络化的单机游戏,这些单机游戏主要将用户本地数据保存在服务器上。这通过如下两种方式来实现:一种方式是,客户端负责所有的游戏业务逻辑,将用户行为后的结果上传至服务器端保存。这种方式的优点是开发成本低,服务器端只需要保存数据,客户端联网相关的功能开发难度相对简单;缺点是安全性低,客户端数据容易被篡改,服务器端无法对篡改数据进行验证。另一种方式是,服务器端负责游戏业务逻辑,这种方式的优点是安全性高;缺点是开发成本高,服务器端需要实现整体游戏业务逻辑开发,由于游戏业务逻辑都在服务器端进行,所以客户端的游戏业务相关逻辑都要重新开发,并且不同的游戏需要开发各自的服务器端。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的网络游戏中游戏数值防篡改的设备和方法、以及用于网络游戏系统。
根据本发明的一个方面,提供了网络游戏中游戏数值防篡改设备,该设备包括与参与网络游戏的各用户对应的各个游戏客户端,以及与各个游戏客户端相连的游戏服务器,其中,所述游戏客户端针对每一用户行为基于预定游戏逻辑产生游戏数据,分析所述游戏数据而得到针对每一用户行为需要上传至所述游戏服务器的游戏数据,然后将所述需要上传至所述游戏服务器的游戏数据上传至所述游戏服务器,其中,所述需要上传至所述游戏服务器的游戏数据包括预先定义的标识键Key、与所述标识键Key对应的游戏数值Value、以及与生成所述游戏数值Value有关的游戏参数;所述游戏服务器根据所接收到的游戏数据,通过预先配置于其中的用于验证游戏数值Value的合理性的表达式对上传的游戏数值Value的合理性进行验证,如果验证合理,则保存上传的游戏数值Value,否则不保存。
可选地,所述游戏客户端包括数据收集模块、分析模块和上传模块,所述数据收集模块适于在游戏运行过程中收集每一用户行为所产生的游戏数据;所述分析模块适于分析所述数据收集模块所收集的游戏数据,获得针对每一用户行为需要上至游戏服务器的游戏数据,并将其转成标识键Key和游戏数值Value的格式;所述上传模块适于将标识键Key和游戏数值Value的格式的游戏数据上传至游戏服务器。
可选地,所述游戏服务器包括服务器端配置模块、接收模块和验证模块,所述服务器端配置模块适于配置用于验证游戏数值Value的合理性的表达式、以及设定游戏数值Value的误差范围;所述接收模块接收所述游戏客户端上传的针对每一用户行为的游戏数据;所述验证模块包括计算模块和比较模块,其中,所述计算模块适于将所述接收模块所接收的游戏参数代入所述用于验证游戏数值Value的合理性的表达式,计算出游戏数值Value;所述比较模块适于将所计算出的游戏数值Value与上传的游戏数值Value进行比较,如果二者的差值在设定的游戏数值Value的误差范围内,则确定该上传的游戏数值Value是合理的。
可选地,所述游戏客户端还包括客户端配置模块,所述客户端配置模块根据游戏服务器的要求而配置上传的游戏数据;其中,所述分析模块根据所述数据收集模块所收集的数据以及所述客户端配置模块的配置,分析针对每一用户行为需要上传至游戏服务器的游戏数据,并将其转成标识键Key和游戏数值Value的格式。
根据本发明的另一方面,网络游戏中游戏数值防篡改方法,该方法适用于包括游戏客户端和游戏服务器的网络游戏系统,该方法包括:
在游戏客户端,对于每一用户行为,基于预定游戏逻辑产生游戏数据;在游戏客户端分析所述游戏数据而得到针对每一用户行为需要上传至所述游戏服务器的游戏数据,并将其转成标识键Key和游戏数值Value的格式,所述转成标识键Key和游戏数值Value的格式的游戏数据包括预先定义的标识键Key、与所述标识键Key对应的游戏数值Value、以及与所述游戏数值Value有关的游戏参数;将转成标识键Key和游戏数值Value的格式的游戏数据上传至所述游戏服务器;在游戏服务器中验证游戏数值Value的合理性。
可选地,所述在游戏服务器中验证游戏数值Value的合理性的步骤包括:游戏服务器接收游戏客户端上传的针对每一用户行为的游戏数据;以及游戏服务器根据所接收到的游戏数据,通过预先配置于其中的用于验证游戏数值Value的合理性的表达式对上传的游戏数值Value的合理性进行验证,如果验证合理,则保存上传的游戏数值Value,否则不保存。
所述游戏服务器根据所接收到的游戏数据通过预先配置于其中的用于验证游戏数值Value的合理性的表达式对上传的游戏数值Value的合理性进行验证的步骤包括:将所接收的游戏参数代入所述用于验证游戏数值Value的合理性的表达式,计算出游戏数值Value;以及将所计算出的游戏数值Value与上传的游戏数值Value进行比较,如果二者的差值在设定的游戏数值Value的误差范围内,则验证该上传的游戏数值Value是合理的,保存该上传的游戏数值Value,否则不保存。
可选地,在所述游戏客户端对于每一用户行为基于预定游戏逻辑产生游戏数据的步骤之后还包括:根据游戏服务器端的要求配置需要上传的游戏数据。
根据本发明的又一方面,提供一种用于网络游戏系统,其包括前面所述的网络游戏中游戏数值防篡改设备。
本发明通过将游戏数值Value存储在游戏服务器侧,而不是游戏客户端侧,且在游戏服务器侧对游戏客户端上传上来的游戏数值Value进行验证,可以大大增加游戏玩家在游戏客户端侧篡改游戏数值Value的难度。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明的一种实施方式的网络游戏中游戏数值防篡改设备的方框示意图;以及
图2示出了根据本发明的另一种实施方式的网络游戏中游戏数值防篡改方法的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在本发明中,对于网游化的游戏(例如网络游戏、网络化的单机游戏等等),将诸如道具、存档、等级、积分等之类的游戏数值在服务器端存储,通过将在服务器端和客户端存储的游戏数值之间建立一定的关系而防止游戏数值被篡改。具体地,对于每个游戏,为其事先定义好一个或多个标识键Key,其代表可存储的游戏数值的唯一标识,例如游戏道具标识,并在客户端与服务器端分别配置生成与该一个或多个Key对应的游戏数值Value的表达式,从而使得Key对应确定的游戏数值Value。具体地,对应于同一个Key,针对不同的用户行为action,设定生成与该Key对应的Value的不同表达式。另外,对于一个游戏,当定义多个Key时,定义对应于不同的Key的不同的用户行为、并且对于每一Key和对应于其的不同的用户行为,确定不同的生成Value的表达式。通过将在客户端侧生成的Value存储在服务器端,在服务器端验证从客户端上传的Value是否正确,及时发现一些不合理的情况。本发明的实现主要涉及到服务器端与客户端之间的交互。
图1示出了根据本发明的一种实施方式的网络游戏中游戏数值防篡改设备的方框示意图。如图1所示,本发明的设备100包括与参与网络游戏的各用户对应的各个游戏客户端110以及与各个游戏客户端110相连的游戏服务器120。其中,游戏客户端110和游戏服务器120可以为多个,但这里为了使示图简洁、清晰,图1中只画出了一个游戏客户端110和一个游戏服务器120。
对于游戏客户端110,针对每一用户行为,基于预定逻辑产生游戏数据,分析所述游戏数据而得到针对每一用户行为需要上传至所述游戏服务器的游戏数据,然后将所述需要上传至所述游戏服务器的游戏数据上传至游戏服务器120。其中,所述需要上传至所述游戏服务器的游戏数据包括预先定义的标识键Key、与所述标识键Key对应的游戏数值Value、以及与生成所述游戏数值Value有关的游戏参数。针对每一个标识键Key,都有唯一一个与之对应的游戏数值Value。而且,与生成所述游戏数值Value有关的游戏参数通常都有数个,即,影响产生游戏数值Value的因素通常有数个,从而增加了游戏数值Value被改变的难度,使得生成的游戏数值Value不会轻易被篡改。
具体地,游戏客户端110可以包括数据收集模块112、分析模块113和上传模块114。
其中,数据收集模块112收集游戏在运行过程中针对每一用户行为基于预定游戏逻辑产生的游戏数据。每一种游戏在开发时都有其设定好的游戏逻辑,在游戏运行时会基于所述游戏逻辑运行而产生大量的游戏数据。例如,对于用户使用道具这一用户行为,基于游戏逻辑会产生一系列游戏数据;对于用户过关升级这一用户行为,基于游戏逻辑也会产生一系列游戏数据。例如,游戏玩家在玩游戏的过程中,可能先产生游戏数据A,再接下来产生游戏数据B、C、D,然后又产生游戏数据F,然后基于客户端的游戏逻辑(例如客户端游戏逻辑表达式为[A]*10+[B]*5-[C]/[D]+([E]+[F])/5)生成游戏数据L,这里A、B、C、D、E、F、L都是游戏运行过程中产生的游戏数据。其中,L可能是基于事先确定的游戏逻辑根据A、B、C、D、E、F而生成的。分析模块113分析数据收集模块113所收集的游戏数据,提取针对每一用户行为需要提交至游戏服务器的游戏数据,并将其转成标识键Key和游戏数值Value的格式。通常,由数据收集模块113所收集的游戏数据可能有很多,这些游戏数据可以全部上传至服务器端,但如果全部上传,可能会占用比较大的流量,为此,可以只上传一部分游戏数据。通常,需要上传至游戏服务器的数据以及个数,可以基于游戏逻辑预先确定,例如可以默认上传5个游戏数据。具体地,根据针对不同用户行为的不同游戏逻辑,分析某一用户行为在某一时间段所产生的游戏数据,或者分析某一时间段内的多个用户行为所涉及到的数据,将所涉及到的游戏数据进行归类、提取出针对每一用户行为需要上传至服务器的数据,并将这些游戏数据转换成标识键Key和游戏数值Value的格式。例如,分析模块113获得游戏运行过程中使用道具这一用户行为所产生的游戏数据:开始产生的游戏数据A,接下来产生的游戏数据B、C、D,再接着产生的游戏数据E、F,以及基于A、B、C、D、E、F而生成的游戏数据L,然后将其转换成如下的标识键Key和游戏数值Value的格式,L为游戏数据value。具体地,:
其中,action代表用户行为,上述例子中,用户行为具体为action1,例如,对于赛车游戏,action1可以是代表跑完一圈赛道的行为。
可选地,游戏客户端还可以包括客户端配置模块111。客户端配置模块111根据游戏服务器的要求而配置上传的游戏数据,例如,可以在上传原有游戏数据的基础上可以增加上传的游戏数据个数,也可以改变上传的游戏数据。这样,可以根据需要调整需要上传至游戏服务器的游戏数据。例如,在前面所述的例子中,如果游戏运行过程中,不仅产生A-F这6个游戏数据,还产生游戏数据P、N、Q,分析模块113分析数据收集模块113所收集的游戏数据、基于客户端配置模块111所配置的需要上传的游戏数据,获得需要上传至服务器的数据,如果需要上传A、B、C、D、E、F、P、N、Q这些游戏数据时,则将这些游戏数据转换成Key-Value的格式。
上传模块114适于将所述标识键Key、与所述标识键Key对应的游戏数值Value、以及与生成所述游戏数值Value有关的游戏参数上传至游戏服务器,以供游戏服务器120验证所述游戏数值Value的合理性。
游戏服务器120在接收到游戏客户端110上传的游戏数据之后,会根据所接收到的游戏数据,通过预先配置于其中的用于验证游戏数值Value的合理性的表达式对上传的游戏数值Value的合理性进行验证,如果验证合理,则保存游戏客户端110上传的游戏数值Value,否则不保存游戏客户端110上传的游戏数值Value。
具体地,游戏服务器120可以包括服务器端配置模块121、接收模块122和验证模块123。
其中,服务器端配置模块121适于配置用于验证游戏数值Value的合理性的表达式、以及设定游戏数值Value的误差范围。其中用于验证游戏数值Value的合理性的表达式以及设定游戏数值Value的误差范围可以根据情况进行修改,用于验证游戏数值Value的合理性的表达式客户端游戏逻辑表达式可以相同,也可以不同。例如当其被游戏玩家完全破解的情况下,可以重新配置新的验证表达式及验证的误差范围。当验证表达式中涉及的游戏数据越多,验证表达式的变换形式就越多,而且也增加被破解的难度。
对于前面所述的使用道具这一用户行为的例子,服务器端配置模块121对游戏数值Value的验证配置如下的验证表达式rule_expression以及误差范围validate_limit:
可选地,当游戏客户端110设置有客户端配置模块111时,服务器端配置模块121还可以配置游戏客户端110针对每一用户行为需要上传的游戏数据。在游戏在游戏客户端110启动时,客户端配置模块111从游戏服务器120的服务器端配置模块121获取其对游戏客户端110的配置,确定需要上传的游戏数据。例如,增加服务器端验证表达式中的游戏数据,会增加服务器端的验证逻辑(验证表达式)被破解的难度,因为验证表达式中的游戏数据就是从游戏客户端上传的游戏数据的一部分。
接收模块122接收所述游戏客户端110上传的针对每一用户行为的游戏数据。对于前面所述的例子,接收模块122接收游戏客户端110的分析模块112分析所得到的游戏数据:
“key_code”:“k1”,
“value”:“700”,
“action”:“action1”,
“A”:“50”,
“B”:“30”,
“C”:“100”,
“D”:“25”,
“E”:“20”,
“F”:“60”,验证模块123基于接收模块122所接收到的游戏数据,按照服务器端配置模块121所配置的验证逻辑对游戏客户端110上传的游戏数值Value进行验证。具体地,验证模块123可以包括计算模块1231和比较模块1232。
其中,计算模块1231适于将接收模块122接收的游戏参数代入所述用于验证游戏数值Value的合理性的表达式中,计算出游戏数值Value。在前面的例子中,计算模块1231将validation_data中的各参数A、B、C、D、E、F代入在游戏服务器120中预先配置的用于验证k1的游戏数值Value的合理性的表达式"[A]*10+[B]*5-[C]/[D]+([E]+[F])/5",计算得到游戏数值Value为662。
比较模块1232适于将所计算出的游戏数值Value与上传的游戏数值Value进行比较,如果二者的差值在所述设定的游戏数值Value的误差范围内,则确定该上传的游戏数值Value是合理的,否则验证游戏客户端110上传的游戏数据不合理。在前面的例子中,预设的游戏数值Value的误差范围为50,由于(662-50)<700<(662+50),所以,游戏客户端110上传上来的游戏数值Value“700”是合理的,这样,游戏服务器120验证所述上传的游戏数据为合理的。如果游戏客户端110上传的游戏数值Value不在712-612之间,则比较模块1232确定所述上传的游戏数值Value不合理,则验证其为不合理数据。
通常情况下,通过上述验证可以得知游戏客户端上传的游戏数值Value是否合理。有的游戏玩家可能会直接修改所述上传的游戏数值Value,也有可能修改上述A、B、C、D、E、F中的任何一个或多个游戏参数,从而使得所述上传的游戏数值Value相应地被修改。这些情况下,通过服务器端的验证表达式的验证,都可以验证出所述上传的游戏数值Value是否合理。但是如果游戏玩家最终破解了服务器端的验证表达式,而一次将A、B、C、D、E、F全部修改了,则服务器端无法利用当前的验证表达式验证上传的游戏数值Value是否合理。当发现出现这种异常情形时,服务器端配置模块121可以修改验证表达式,从而更有效地禁止游戏玩家篡改游戏数值。另外,游戏服务器120还可以包括保存模块124。该保存模块124适于在比较模块1232确定所述上传的游戏数值Value是合理的情况下,保存所述上传的游戏数值Value,反之,如果比较模块1232确定所述上传的游戏数值Value不合理,则不保存所述上传的游戏数值Value。可选地,可以将所述上传的相关数据存放在日志(Log)中,作为以后进行数据分析而使用,这里的日志可以存放在保存模块124中,也可以存放在独立于保存模块124的日志模块(图中未示出)中。
在本发明的网络游戏中游戏数值防篡改设备中,在游戏服务器120侧预先配置的验证表达式与游戏客户端110侧配置的游戏逻辑表达式(即生成与Key对应的游戏数值Value的表达式)可以相同。
通常,对于游戏数值的更改,都存在着“加”、“减”、“更新”三种操作方式。因此,对于每一个标识键Key,游戏客户端110所生成的与每一标识键Key对应的游戏数值Value可能增加、减少、和更新。相应地,游戏服务器120预先配置有分别用于验证每一标识键Key的游戏数值Value增加、减少、和更新是否合理的表达式,下面对“加”、“减”、“更新”三种操作方式分别举例说明。
实施例1:对于游戏数值Value增加的例子,以“割绳子2社交版游戏”玩家过关获得分数为例进行说明。
在游戏客户端110中,预先设置有对应游戏各关的Key,例如对应游戏第一关的Key为SGS_PREFS_LEVEL_STATUS__0_1,用户行为action对应过关行为SGS_PASS,并预先设置有客户端的游戏逻辑(也称业务逻辑,通常在游戏开发时就已经确定好):生成对应游戏各关的Key的Value的表达式,具体地,例如在游戏客户端针对游戏过关而预先设置的客户端游戏逻辑为:
时间得分=max(0,30秒-实际过关秒数)*100
星星得分=获得星星数*1000
过关消耗=实际过关秒数*10
总得分=时间得分+星星得分–过关消耗
在游戏服务器120中预先进行如下配置:
其中,add_rule_expression为验证表达式;
add_validate_limit为误差范围
a代表max(0,30秒-实际过关秒数),
b代表获得星星数,
c代表实际过关秒数。
游戏玩家在游戏客户端110启动“割绳子2”的游戏后,每过一关时,都会记录相应的游戏参数:获得星星数(即b)、实际过关秒数(即c)、并基于实际过关秒数获得max(0,30秒-实际过关秒数)(即a),并且基于上述获得的游戏参数求得“时间得分”、“星星得分”、“过关消耗”,然后基于游戏客户端110的预定游戏逻辑计算出“总得分”(即游戏数值Value)。每当游戏玩家通过一关后,游戏客户端110将相关游戏数据上传至游戏游戏服务器120。例如,当游戏玩家通过跳绳子的第一关后,游戏客户端110通过如下的形式上传如下游戏数据至游戏服务器120:
其中,SGS_PREFS_LEVEL_STATUS__0_1为预先设定的表示游戏第一关的Key。在游戏玩家通过第一关时,由游戏客户端110上传至游戏服务器120的与SGS_PREFS_LEVEL_STATUS__0_1对应的游戏数值Value为1810。Action表示当前数据是游戏玩家通关的行为。a、b、c是游戏玩家在通关的过程中产生的游戏参数(即在预先设置的游戏逻辑表达式中所使用生成游戏数值Value的游戏参数)。
在上述游戏数据上传至游戏服务器120后,游戏服务器120将validation_data中的各参数a、b、c代入游戏服务器120中预先配置的用于验证SGS_PREFS_LEVEL_STATUS__0_1的游戏数值Value的合理性的表达式,即,"[a]*100+[b]*1000-[c]*10",计算得到游戏数值Value为1810。然后游戏服务器120验证游戏客户端110上传的游戏数值Value是否合理。具体地,在游戏服务器端为SGS_PREFS_LEVEL_STATUS__0_1的游戏数值Value预设的误差范围为50,即,如果游戏客户端110上传到游戏服务器120的游戏数值Value相比于游戏服务器120所计算出来的游戏数值Value在预设的误差范围50内,则说明游戏客户端110上传的游戏数值Value是合理的。由于1810–50<1810<1810+50,即1810在1760-1860之间,所以验证游戏客户端110上传至游戏服务器120的游戏数值Value是合理的,即验证通过,保存游戏客户端110上传的游戏数值Value。如果游戏客户端110上传的游戏数值Value未在1760-1860之间,则不保存游戏客户端110上传的游戏数值Value,可以保存游戏客户端110上传上来的相关游戏参数,供进行游戏数据分析使用。
实施例2:对于游戏数值Value减少的例子,以割绳子2社交版游戏玩家在高难度pvp挑战入场时需要消耗对应配置的积分为例进行说明。
在游戏客户端110,预先配置“挑战奖励”为:pvp挑战时需要消耗5个金币,预先设置有对应pvp挑战的Key为"PVP_CHALLENGE",并预先设置生成pvp挑战的Key的游戏数值Value的客户端游戏逻辑表达式,具体地,为pvp挑战预先设置的客户端游戏逻辑如下:
时间消耗积分=实际挑战时间*5
挑战消耗积分=配置奖励金币*10
随机分值=random(0,100)
系统返还积分=(挑战消耗积分+时间消耗积分+随机分值)/10
总消耗积分=挑战消耗积分+时间消耗积分–系统返回积分
在游戏服务器120中预先进行如下配置:
其中,sub_markup_expression为验证表达式;
sub_validate_limit为误差范围;
a代表实际挑战时间,
b代表配置奖励金币,
c代表随机分值。
游戏玩家在玩“割绳子2”时,如果以高难度pvp挑战入场,在游戏运行过程中,游戏客户端110就会产生相应的游戏参数:实际挑战时间a,配置奖励金币b,随机分值c,以及根据在游戏客户端110的预定游戏逻辑基于“实际挑战时间a”计算得到的“时间消耗积分”,基于“配置奖励金币b”计算得到的“挑战消耗积分”,由此计算出得到的“系统返还积分”,最后计算得出的pvp挑战的总消耗积分,即与PVP_CHALLENGE对应的游戏数值Value。例如,游戏玩家在以pvp挑战入场完成后,游戏客户端110上传如下游戏数据至游戏服务器120:
上面的“SGS_CHALLENGE_REWARD”表示游戏玩家进行pvp挑战的行为。
游戏服务器120在接收到游戏客户端110上传的上述游戏数据后,首先,将validation_data中的各参数a、b、c代入在游戏服务器120中预先配置的用于验证PVP_CHALLENGE的游戏数值Value的合理性的表达式,即,[a]*5+[b]*10-([a]+[b]+[c]/10),计算得到游戏数值Value为399.2。
然后游戏服务器120验证游戏客户端110上传的游戏数值Value是否合理。具体地,从上述游戏器服务器端的配置可知,在游戏服务器120为PVP_CHALLENGE的游戏数值Value预设的误差范围为5,即,如果游戏客户端110上传到游戏服务器120的游戏数值Value相比于游戏服务器120所计算出来的游戏数值Value在预设的误差范围5内,则说明游戏客户端110上传的游戏数值Value是合理的。由于399.2–5<400<399.2+5,即400在394.2-404.2之间,所以验证游戏客户端110上传至游戏服务器120的游戏数值Value是合理的,即验证通过,在游戏服务器120保存游戏客户端110上传的游戏数值Value400。如果游戏客户端110上传的游戏数值Value未在394.2-404.2之间,则不保存游戏客户端110上传的游戏数值Value,可以保存游戏客户端110上传上来的相关游戏参数,供进行游戏数据分析使用。
实施例3:对于游戏数值Value更新的例子,以割绳子2社交版游戏玩家过了指定关后,重新以更高成绩过此关得分覆盖上次得分为例进行说明。
在游戏客户端110中,预先设置有与游戏各关的更新过关得分对应的不同的Key,例如,对应更新游戏第一关过关得分的Key为"SGS_NEXT_PSS_LEVEL_STATUS__0_1",用户行为action对应过关SGS_NEXT_PASS,并预先设置有生成与更新游戏各关的过关得分的Key对应的游戏数值Value的表达式,即预先设置的客户端游戏逻辑,具体地,在游戏客户端为更新游戏过关得分而预先设置的客户端游戏逻辑如下:
时间得分=max(0,30秒-实际过关秒数)*100
星星得分=获得星星数*1000
过关消耗=实际过关秒数*10
总得分=时间得分+星星得分–过关消耗
在游戏服务器120中预先进行如下配置以验证游戏客户端110上传上来的游戏数值是否合理:
其中,update_markup_expression为验证表达式;
update_validate_limit为误差范围;
a代表游戏客户端的max(0,30秒-实际过关秒数);
b代表游戏客户端的获得星星数;
c代表游戏客户端的实际过关秒数。
在游戏服务器120中的验证表达式与游戏客户端110中预先设置的逻辑表达式相同。
如果游戏玩家在游戏客户端110曾经玩过“割绳子2”,则在游戏服务器120侧存储有其曾经通过各关的过关得分。例如,当游戏玩家重新再玩“割绳子2”的第一关时,游戏客户端110会依据预先设定的逻辑对其通过各关的得分重新进行计算,并获得各相关的游戏数据,该游戏数据包括:游戏客户端的max(0,30秒-实际过关秒数),即a;获得星星数,即b;实际过关秒数,即c,以及通过第一关的“总得分”(即游戏数值Value)。然后,游戏客户端110将上面所得到的游戏数据上传至游戏服务器,即,如下所示:
游戏服务器120在接收到游戏客户端110上传的上述游戏数据后,首先,将validation_data中的各参数a、b、c代入在游戏服务器120中预先配置的用于验证与SGS_NEXT_PSS_LEVEL_STATUS__0_1这一Key对应的游戏数值Value的合理性的表达式,即,[a]*100+[b]*1000–[c]*10,计算得到游戏数值Value为4070。
然后游戏服务器120验证游戏客户端110上传的游戏数值Value是否合理。具体地,在游戏服务器120为SGS_NEXT_PSS_LEVEL_STATUS__0_1的游戏数值Value预设的误差范围update_validate_limit为50,即,如果游戏客户端110上传到游戏服务器120的游戏数值Value相比于游戏服务器120所计算出来的游戏数值Value在预设的误差范围50内,则说明游戏客户端110上传的游戏数值Value是合理的。由于4070–50<4070<4070+50,即4070在4020-4120之间,所以验证游戏客户端110上传至游戏服务器120的游戏数值Value是合理的,即验证通过,在游戏服务器120保存游戏客户端110上传的游戏数值Value为4070。如果游戏客户端110上传的游戏数值Value未在4020-4120之间,则不保存游戏客户端110上传的游戏数值Value,可以保存游戏客户端110上传上来的相关游戏参数,供进行游戏数据分析使用。
本发明还提供一种用于网络游戏系统,其具有防止网络游戏中游戏数值被篡改的功能,其包括与参与网络游戏的各用户对应的各个游戏客户端,以及与各个游戏客户端相连的游戏服务器。其中,所述游戏客户端针对每一用户行为基于客户端游戏逻辑产生游戏数据,分析所述游戏数据而得到针对每一用户行为需要上传至所述游戏服务器的游戏数据,将所述需要上传至所述游戏服务器的游戏数据上传至游戏服务器,其中,所述游戏数据包括预先定义的标识键Key、与所述标识键Key对应的游戏数值Value、以及与生成所述游戏数值Value有关的游戏参数。所述游戏服务器根据所接收到的游戏数据,通过预先配置于其中的用于验证游戏数值Value的合理性的表达式对上传的游戏数值Value的合理性进行验证,如果验证合理,则保存上传的游戏数值Value,否则不保存。可选地,游戏服务器中预先配置的所述用于验证游戏数值Value的合理性的表达式与所述游戏客户端中配置的游戏逻辑中所涉及的用于生成游戏数值Value的表达式相同。另外,所述游戏客户端的游戏逻辑包括使对应于所述标识键Key的游戏数值Value增加、减少、和更新的游戏逻辑;所述游戏服务器中预先配置的用于验证游戏数值Value的合理性的表达式包括:验证与所述标识键Key对应的游戏数值Value增加、减少、和更新是否合理的表达式,具体说明详见前面所述,这里为了简洁,不再重复赘述。
另外,可选地,所述游戏客户端可以包括前面所述的数据收集模块112、分析模块113和上传模块114。可选地,所述游戏客户端还可以包括客户端配置模块111。所述游戏服务器可以包括服务器端配置模块121、接收模块122和验证模块123。其中验证模块123可以包括前面所述的计算模块1231和比较模块1232。关于各模块的具体描述详见前面所述,这里为了简洁,不再重复赘述。
上面只示例性地给出本发明的实施方式,但是本发明并不限于上面所述的实施方式。其中所述各个模块可以分别进一步拆分成多个模块,也可以重新进行组合而形成更多或者更少的模块。
需要说明的是,本发明的游戏服务器的所有功能可以放在游戏服务器端,也可以一部分功能放在游戏服务器端,一部分功能放置在游戏客户端,例如游戏服务器端的SDK的一部分放置在游戏服务器端,一部分放置在游戏客户端。本发明中上述的服务器端配置模块121、接收模块122和验证模块123既可以放置于游戏服务器端,也可以作为游戏服务器的SDK的一部分放置于游戏客户端。
本发明还提供一种网络游戏中游戏数值防篡改方法。如图2所示,本发明的网络游戏中游戏数值防篡改方法200起始于步骤S210,在步骤S210中,在游戏客户端,对于每一用户行为,基于预定游戏逻辑产生游戏数据。
其中所述预定游戏逻辑是游戏开发时所设定的游戏逻辑。接下来,在步骤S220,在游戏客户端分析在步骤S210所产生的所述游戏数据,得到针对每一用户行为需要上传至所述游戏服务器的游戏数据,并将其转成标识键Key和游戏数值Value的格式。所述需要上传至所述游戏服务器的游戏数据包括预先定义的标识键Key、与所述标识键Key对应的游戏数值Value、以及与所述游戏数值Value有关的游戏参数。
通常,根据不同用户行为的不同游戏逻辑,分析某一用户行为在某一时间段所产生的游戏数据,或者分析某一时间段内的多个用户行为所涉及到的数据,将所涉及到的游戏数据进行归类、获得针对每一用户行为需要上传至服务器的游戏数据,并将这些游戏数据转换成标识键Key和游戏数值Va l ue的格式。例如,在前面的实施例1中所给出的从游戏客户端110上传至游戏服务器120的游戏数据的格式如下:
接下来,在步骤S230,将转成标识键Key和游戏数值Value的格式的游戏数据上传至游戏服务器。
接下来,在步骤S240,在游戏服务器中验证游戏数值Value的合理性。在游戏服务器中配置有验证游戏数值Value的合理性的表达式和误差范围,由此即可验证上传的游戏数值Value是否合理。具体地,在游戏服务器在接收到游戏客户端上传至其中的游戏数据之后,通过将所接收的游戏数据中的游戏参数代入所述用于验证游戏数值Value的合理性的表达式,计算出一游戏数值Value。这里,游戏服务器中用于验证游戏数值Value的合理性的表达式与游戏客户端中用于生成游戏数值Value的表达式可以相同也可以不同。
然后,将所计算出的游戏数值Value与游戏客户端上传的游戏数值Value进行比较。如果上传到游戏服务器的游戏数值Value与计算得到的游戏数值Value之差在所配置的游戏数值Value的误差范围内,则验证上传至游戏服务器的游戏数据是合理的,否则验证上传的游戏数值Value不合理。如果验证游戏数值Value是合理的,则在游戏服务器中保存游戏客户端所上传的游戏数值Value;如果验证游戏数值Value是不合理的,则在游戏服务器中不保存游戏客户端所上传的游戏数值Value,可选地,可以将所述上传的游戏数据存放在日志(Log)中,供以后进行数据分析而使用。
由于游戏数值Value的变化可能存在多种形式,通常存在游戏数值Value的增加、减少、和更新,例如,当游戏玩家不断地通过游戏的各关时,其得到的游戏数值Value(游戏得分)会逐渐增加;当游戏玩家在玩游戏时进行某种特殊的操作时,则游戏数值Value或者会大幅增加,或者会大幅减少;当游戏玩家重复玩同一关时,其游戏数值Value(游戏得分)可能会比之前的过关得分多或者少,这时需要对原来的游戏数值Value进行更新。针对同一Key在上述不同情况下,在游戏客户端分别配置有游戏数值Value增加、减少、和更新的游戏逻辑(即表达式)。相应地,在游戏服务器侧,可以分别配置验证游戏数值Value增加、减少、和更新是否合理的表达式,例如上面所述的实施例1、实施例2、和实施例3,为了简洁,这里就不再重复描述。
可选地,在本发明的上述方法中,在步骤S210之后,还可以包括步骤:根据游戏服务器端的要求配置需要上传的游戏数据。相应地,在步骤S220,在游戏客户端分析游戏数据时还需要考虑上传至游戏服务器的游戏数据。
本发明通过将游戏数值Value存储在游戏服务器侧,而不是游戏客户端侧,且在游戏服务器侧对游戏客户端上传上来的游戏数值Value进行验证,可以大大增加游戏玩家在游戏客户端侧篡改游戏数值Value的难度。一方面,由于游戏数值Value的生成与多个游戏参数相关,游戏玩家很难确定需要同时修改哪些游戏参数,如果只修改相关游戏参数中的一个或者一部分,在游戏服务器侧进行验证时就会被发现不合理,从而防止游戏玩家篡改游戏数值Value;另一方面,即使游戏玩家破解了表达式的规则(知道同时修改哪些游戏参数),可以修改游戏服务器侧的验证表达式,从而阻止游戏玩家的篡改。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的浏览器客户端中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、网络游戏中游戏数值防篡改设备,该设备包括与参与网络游戏的各用户对应的各个游戏客户端,以及与各个游戏客户端相连的游戏服务器,其中,
所述游戏客户端针对每一用户行为基于预定游戏逻辑产生游戏数据,分析所述游戏数据而得到针对每一用户行为需要上传至所述游戏服务器的游戏数据,然后将所述需要上传至所述游戏服务器的游戏数据上传至所述游戏服务器,其中,所述需要上传至所述游戏服务器的游戏数据包括预先定义的标识键Key、与所述标识键Key对应的游戏数值Value、以及与生成所述游戏数值Value有关的游戏参数;
所述游戏服务器根据所接收到的游戏数据,通过预先配置于其中的用于验证游戏数值Value的合理性的表达式对上传的游戏数值Value的合理性进行验证,如果验证合理,则保存上传的游戏数值Value,否则不保存。
A2、根据A1所述的设备,其中,
所述游戏客户端包括数据收集模块、分析模块和上传模块,
所述数据收集模块适于在游戏运行过程中收集每一用户行为所产生的游戏数据;
所述分析模块适于分析所述数据收集模块所收集的游戏数据,获得针对每一用户行为需要上至游戏服务器的游戏数据,并将其转成标识键Key和游戏数值Value的格式;
所述上传模块适于将标识键Key和游戏数值Value的格式的游戏数据上传至游戏服务器。
A3、根据A1或A2所述的设备,其中,所述游戏服务器包括服务器端配置模块、接收模块和验证模块,
所述服务器端配置模块适于配置用于验证游戏数值Value的合理性的表达式、以及设定游戏数值Value的误差范围;
所述接收模块接收所述游戏客户端上传的针对每一用户行为的游戏数据;
所述验证模块包括计算模块和比较模块,其中,
所述计算模块适于将所述接收模块所接收的游戏参数代入所述用于验证游戏数值Value的合理性的表达式,计算出游戏数值Value;
所述比较模块适于将所计算出的游戏数值Value与上传的游戏数值Value进行比较,如果二者的差值在设定的游戏数值Value的误差范围内,则确定该上传的游戏数值Value是合理的。
A4、根据A3所述的设备,所述游戏服务器还包括保存模块,
所述保存模块适于在比较模块确定所述上传的游戏数值Value是合理的情况下,保存所述上传的游戏数值Value。
A5、根据A2-A4中任何一项所述的设备,其中,所述游戏客户端还包括客户端配置模块,所述客户端配置模块根据游戏服务器的要求而配置上传的游戏数据;
其中,所述分析模块根据所述数据收集模块所收集的数据以及所述客户端配置模块的配置,分析针对每一用户行为需要上传至游戏服务器的游戏数据,并将其转成标识键Key和游戏数值Value的格式。
A6、根据A1-A5中任何一项所述的设备,其中,
所述游戏服务器中预先配置的用于验证游戏数值Value的合理性的表达式包括:验证与所述标识键Key对应的游戏数值Value增加、减少、和更新是否合理的表达式。
B1、网络游戏中游戏数值防篡改方法,该方法适用于包括游戏客户端和游戏服务器的网络游戏系统,该方法包括:
在游戏客户端,对于每一用户行为,基于预定游戏逻辑产生游戏数据;
在游戏客户端分析所述游戏数据而得到针对每一用户行为需要上传至所述游戏服务器的游戏数据,并将其转成标识键Key和游戏数值Value的格式,所述转成标识键Key和游戏数值Value的格式的游戏数据包括预先定义的标识键Key、与所述标识键Key对应的游戏数值Value、以及与所述游戏数值Value有关的游戏参数;
将转成标识键Key和游戏数值Value的格式的游戏数据上传至所述游戏服务器;
在游戏服务器中验证游戏数值Value的合理性。
B2、根据B1所述的方法,其中,所述在游戏服务器中验证游戏数值Value的合理性的步骤包括:
游戏服务器接收游戏客户端上传的针对每一用户行为的游戏数据;以及
游戏服务器根据所接收到的游戏数据,通过预先配置于其中的用于验证游戏数值Value的合理性的表达式对上传的游戏数值Value的合理性进行验证,如果验证合理,则保存上传的游戏数值Value,否则不保存。
B3、根据B2所述的方法,其中,
所述游戏服务器根据所接收到的游戏数据通过预先配置于其中的用于验证游戏数值Value的合理性的表达式对上传的游戏数值Value的合理性进行验证的步骤包括:
将所接收的游戏参数代入所述用于验证游戏数值Value的合理性的表达式,计算出游戏数值Value;以及
将所计算出的游戏数值Value与上传的游戏数值Value进行比较,如果二者的差值在设定的游戏数值Value的误差范围内,则验证该上传的游戏数值Value是合理的,保存该上传的游戏数值Value,否则不保存。
B4、根据B1-B3中任何一项所述的方法,其中,
在所述游戏客户端对于每一用户行为基于预定游戏逻辑产生游戏数据的步骤之后还包括:
根据游戏服务器端的要求配置需要上传的游戏数据。
B5、根据B1-B4中任何一项所述的方法,其中,
所述游戏服务器中预先配置的用于验证游戏数值Value的合理性的表达式包括:验证与所述标识键Key对应的游戏数值Value增加、减少、和更新是否合理的表达式。
C、一种用于网络游戏系统,其包括A1-A6中任何一个所述的网络游戏中游戏数值防篡改设备。
Claims (11)
1.网络游戏中游戏数值防篡改设备,该设备包括与参与网络游戏的各用户对应的各个游戏客户端,以及与各个游戏客户端相连的游戏服务器,其中,
所述游戏客户端针对每一用户行为基于预定游戏逻辑产生游戏数据,分析所述游戏数据而得到针对每一用户行为需要上传至所述游戏服务器的游戏数据,然后将所述需要上传至所述游戏服务器的游戏数据上传至所述游戏服务器,其中,所述需要上传至所述游戏服务器的游戏数据包括预先定义的标识键Key、与所述标识键Key对应的游戏数值Value、以及与生成所述游戏数值Value有关的游戏参数;
所述游戏服务器根据所接收到的游戏数据,将所接收的游戏数据中的游戏参数代入预先配置于其中的用于验证游戏数值Value的合理性的表达式,计算出一游戏数值Value,对上传的游戏数值Value的合理性进行验证,如果验证合理,则保存上传的游戏数值Value,否则不保存;以及
若用户破解了表达式的规则,则修改游戏服务器侧的验证表达式,以阻止用户的篡改。
2.根据权利要求1所述的设备,其中,
所述游戏客户端包括数据收集模块、分析模块和上传模块,
所述数据收集模块适于在游戏运行过程中收集每一用户行为所产生的游戏数据;
所述分析模块适于分析所述数据收集模块所收集的游戏数据,获得针对每一用户行为需要上至游戏服务器的游戏数据,并将其转成标识键Key和游戏数值Value的格式;
所述上传模块适于将标识键Key和游戏数值Value的格式的游戏数据上传至游戏服务器。
3.根据权利要求1或2所述的设备,其中,所述游戏服务器包括服务器端配置模块、接收模块和验证模块,
所述服务器端配置模块适于配置用于验证游戏数值Value的合理性的表达式、以及设定游戏数值Value的误差范围;
所述接收模块接收所述游戏客户端上传的针对每一用户行为的游戏数据;
所述验证模块包括计算模块和比较模块,其中,
所述计算模块适于将所述接收模块所接收的游戏参数代入所述用于验证游戏数值Value的合理性的表达式,计算出游戏数值Value;
所述比较模块适于将所计算出的游戏数值Value与上传的游戏数值Value进行比较,如果二者的差值在设定的游戏数值Value的误差范围内,则确定该上传的游戏数值Value是合理的。
4.根据权利要求3所述的设备,所述游戏服务器还包括保存模块,
所述保存模块适于在比较模块确定所述上传的游戏数值Value是合理的情况下,保存所述上传的游戏数值Value。
5.根据权利要求2所述的设备,其中,所述游戏客户端还包括客户端配置模块,所述客户端配置模块根据游戏服务器的要求而配置上传的游戏数据;
其中,所述分析模块根据所述数据收集模块所收集的数据以及所述客户端配置模块的配置,分析针对每一用户行为需要上传至游戏服务器的游戏数据,并将其转成标识键Key和游戏数值Value的格式。
6.根据权利要求1或2所述的设备,其中,
所述游戏服务器中预先配置的用于验证游戏数值Value的合理性的表达式包括:验证与所述标识键Key对应的游戏数值Value增加、减少、和更新是否合理的表达式。
7.网络游戏中游戏数值防篡改方法,该方法适用于包括游戏客户端和游戏服务器的网络游戏系统,该方法包括:
在游戏客户端,对于每一用户行为,基于预定游戏逻辑产生游戏数据;
在游戏客户端分析所述游戏数据而得到针对每一用户行为需要上传至所述游戏服务器的游戏数据,并将其转成标识键Key和游戏数值Value的格式,所述转成标识键Key和游戏数值Value的格式的游戏数据包括预先定义的标识键Key、与所述标识键Key对应的游戏数值Value、以及与所述游戏数值Value有关的游戏参数;
将转成标识键Key和游戏数值Value的格式的游戏数据上传至所述游戏服务器;
游戏服务器接收游戏客户端上传的针对每一用户行为的游戏数据;
游戏服务器根据所接收到的游戏数据,将所接收到的游戏数据中的游戏参数代入预先配置于其中的用于验证游戏数值Value的合理性的表达式,计算出一游戏数值Value,对上传的游戏数值Value的合理性进行验证,如果验证合理,则保存上传的游戏数值Value,否则不保存;以及
若用户破解了表达式的规则,则修改游戏服务器侧的验证表达式,以阻止用户的篡改。
8.根据权利要求7所述的方法,其中,
所述游戏服务器根据所接收到的游戏数据通过预先配置于其中的用于验证游戏数值Value的合理性的表达式对上传的游戏数值Value的合理性进行验证的步骤包括:
将所接收的游戏参数代入所述用于验证游戏数值Value的合理性的表达式,计算出游戏数值Value;以及
将所计算出的游戏数值Value与上传的游戏数值Value进行比较,如果二者的差值在设定的游戏数值Value的误差范围内,则验证该上传的游戏数值Value是合理的,保存该上传的游戏数值Value,否则不保存。
9.根据权利要求7或8所述的方法,其中,
在所述游戏客户端对于每一用户行为基于预定游戏逻辑产生游戏数据的步骤之后还包括:
根据游戏服务器端的要求配置需要上传的游戏数据。
10.根据权利要求7或8所述的方法,其中,
所述游戏服务器中预先配置的用于验证游戏数值Value的合理性的表达式包括:验证与所述标识键Key对应的游戏数值Value增加、减少、和更新是否合理的表达式。
11.一种用于游戏数值防篡改的网络游戏系统,其包括权利要求1-6中任何一个所述的网络游戏中游戏数值防篡改设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510010274.3A CN104598832B (zh) | 2015-01-08 | 2015-01-08 | 网络游戏中游戏数值防篡改的设备和方法、网络游戏系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510010274.3A CN104598832B (zh) | 2015-01-08 | 2015-01-08 | 网络游戏中游戏数值防篡改的设备和方法、网络游戏系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104598832A CN104598832A (zh) | 2015-05-06 |
CN104598832B true CN104598832B (zh) | 2018-01-09 |
Family
ID=53124609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510010274.3A Active CN104598832B (zh) | 2015-01-08 | 2015-01-08 | 网络游戏中游戏数值防篡改的设备和方法、网络游戏系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104598832B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105302559B (zh) * | 2015-11-03 | 2019-02-22 | 竞技世界(杭州)网络技术有限公司 | 用户行为实时处理方法 |
CN105677318A (zh) * | 2015-12-28 | 2016-06-15 | 心动网络股份有限公司 | 一种防止游戏被内存修改器修改的方法 |
CN108111464B (zh) * | 2016-11-24 | 2020-11-10 | 腾讯科技(深圳)有限公司 | 一种数据校验方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101527722A (zh) * | 2009-04-23 | 2009-09-09 | 腾讯科技(北京)有限公司 | 登录网络游戏的方法、系统及登录服务器 |
EP2425599A4 (en) * | 2009-04-28 | 2013-04-03 | Ongame Services Ab | CLIENT ACCOUNT MANAGEMENT ARRANGEMENT ON AN ONLINE GAMING SYSTEM |
EP2306685A1 (en) * | 2009-10-02 | 2011-04-06 | Thomson Licensing, Inc. | Secure provision of access to an online user account |
CN102571695B (zh) * | 2010-12-16 | 2016-08-03 | 腾讯科技(深圳)有限公司 | 一种数据同步方法和游戏服务器 |
CN102510378B (zh) * | 2011-10-31 | 2015-03-18 | 福建天晴数码有限公司 | 一种通过移动设备登陆网络游戏的方法 |
CN102769616B (zh) * | 2012-07-04 | 2015-03-25 | 珠海金山网络游戏科技有限公司 | 一种基于游戏移动逻辑客户端与服务端同步的延迟计算方法 |
CN103731340B (zh) * | 2013-12-27 | 2017-01-11 | 北京像素软件科技股份有限公司 | 一种网络游戏系统的通信方法 |
-
2015
- 2015-01-08 CN CN201510010274.3A patent/CN104598832B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN104598832A (zh) | 2015-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107770154B (zh) | 基于云存储的区块链可靠数据存储方法、终端及系统 | |
CN109814955B (zh) | 阵容确定的方法、装置及电子设备 | |
US20190022531A1 (en) | Automated tuning of computer-implemented games | |
CN111738294B (zh) | Ai模型的训练方法、使用方法、计算机设备及存储介质 | |
US20090186679A1 (en) | Prediction game system and method | |
US20190262713A1 (en) | Incentivizing players to engage in competitive gameplay | |
US9956488B2 (en) | System and method for video game skill level adjustment | |
CN104598832B (zh) | 网络游戏中游戏数值防篡改的设备和方法、网络游戏系统 | |
US10304290B2 (en) | Systems, apparatus and methods for slot-style games having a symbol locking feature | |
CN107335220A (zh) | 一种消极用户的识别方法、装置及服务器 | |
CN107551541A (zh) | 用于多玩家在线计算机游戏的改进的玩家评级系统 | |
CN108066987A (zh) | 应用场景关卡组合的分配方法、装置及服务器 | |
CN104667511A (zh) | 一种基于大数据的比赛排位晋级系统及其方法 | |
AU2022203306A1 (en) | Computerized gaming system and method of operating thereof | |
CN116629988A (zh) | 一种基于区块链的投标数据处理方法及装置 | |
US11458397B1 (en) | Automated real-time engagement in an interactive environment | |
CN111598234B (zh) | Ai模型的训练方法、使用方法、计算机设备及存储介质 | |
US20210146254A1 (en) | Ai-based content generation for gaming applications | |
CN106039711B (zh) | 一种用户身份认证方法和装置 | |
Seth et al. | A Deep Learning Framework for Ensuring Responsible Play in Skill-based Cash Gaming | |
CN109550236A (zh) | 游戏实例的生成 | |
Lorenzo et al. | Use all your skills, not only the most popular ones | |
CN113988199A (zh) | Ai下棋模型的分级处理方法、装置及相关设备 | |
Costa et al. | Artificial intelligence in MOBA games: a multivocal literature mapping | |
Selbirak | Some concepts of non-myopic equilibria in games with finite strategy sets and their properties |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180522 Address after: 100020 Beijing Chaoyang District East Bridge Road 12, 1, 5, 506 rooms. Patentee after: Beijing science and Technology Co., Ltd. Address before: 100020 Chaoyang District, Beijing Chao Wai Street B 6, 10, 1118 Patentee before: MENGYOU (BEIJING) TECHNOLOGY CO., LTD. |