CN100473006C - 一种网络游戏中动作合成的方法 - Google Patents

一种网络游戏中动作合成的方法 Download PDF

Info

Publication number
CN100473006C
CN100473006C CNB2005100706059A CN200510070605A CN100473006C CN 100473006 C CN100473006 C CN 100473006C CN B2005100706059 A CNB2005100706059 A CN B2005100706059A CN 200510070605 A CN200510070605 A CN 200510070605A CN 100473006 C CN100473006 C CN 100473006C
Authority
CN
China
Prior art keywords
action
server
synthetic
game
scope
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
CNB2005100706059A
Other languages
English (en)
Other versions
CN1866829A (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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CNB2005100706059A priority Critical patent/CN100473006C/zh
Publication of CN1866829A publication Critical patent/CN1866829A/zh
Application granted granted Critical
Publication of CN100473006C publication Critical patent/CN100473006C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种网络游戏中动作合成的方法,其包括以下步骤:设置一合成服务器;确定合成范围;将合成范围发送给客户端,当客户端再次发送动作时,先判断该动作是否属于合成范围,如果属于合成范围,将该动作发送到游戏的合成服务器;如果不属于合成范围,客户端将该动作发送给通信服务器;所述合成服务器定期接收客户端发送来的动作,将动作分类进行组合,所述合成服务器将大量同一种类型的动作合成为一个或者少量的动作;所述合成服务器将这些合成后的动作发送给游戏服务器。本发明方法降低了游戏服务器的工作量;解决了小区域大量用户同时动作带来的问题,最终使游戏能够平稳的运行。

Description

一种网络游戏中动作合成的方法
技术领域
本发明涉及一种网络游戏中的动作合成方法,尤其涉及的是一种针对网络游戏中大量用户同时向服务器发送动作非常多的情况下的降低游戏服务器负载的动作合成方法。
背景技术
目前大规模的网络游戏在国内外发展迅速,它已逐渐成为网络使用者的一项持久性娱乐项目。随着网络游戏用户的增多,设计一款性能卓越、内容丰富的网络游戏的设计成为一种挑战。目前大型网络游戏基本都属于CMS(Cliect-Multi-Server)结构。CMS机构基本结构如图1所示,分为3个层次,服务器层运行一系列游戏服务器,各服务器并行执行,以及使用同步信号进行数据同步。通信层负责从客户端接收各种命令分配到相应服务器。应用层是游戏用户直接面对的客户端,它接收用户的命令,发送给通信层,然后从服务层接收执行结果和游戏中虚拟世界的状态信息,并实时显示给用户。
但是对于大规模多用户的网络游戏难免遇到的一个问题是,在当大量的用户同时进行游戏时,各种游戏动作数量巨大、用户交互作用非常多,游戏服务器负载过重,这时游戏经常出现停顿现象。虽然目前采用网格技术并行处理游戏,但是同样存在问题,那就是同步问题。如果希望达到非常好的数据同步,就非常耗费时间,游戏速度就会下降;相反如果提高游戏服务器的响应速度,那么服务器的同步范围就会缩小。目前大部分的游戏采用一个服务器或者多个服务器来管理游戏虚拟世界的一个区域,随着游戏用户数量的增多,服务器的数量也随之增大。但是维护同一区域的服务器不能无限制增长,因为服务器数量达到一定程度后,服务器之间的同步会耗费很多时间,响应速度就会下降。
因此,现有技术存在缺陷,而有待于改进和发展。
发明内容
本发明的目的就在于提供一种网络游戏中动作合成的方法,为了解决现有技术的区域小、用户多带来的问题,提出一种解决方法——动作合成法,通过对游戏的各个游戏用户相似动作的合并,减少客户端对服务器的动作请求数量,从而降低服务器的工作量,提高游戏的执行效率,保证游戏的正常运行。
本发明的技术方案如下:
一种网络游戏中动作合成的方法,其包括以下步骤:
1)设置一合成服务器,负责游戏动作的合成;
2)游戏服务器确定合成范围,合成范围是能够进行动作合成的多方面条件的组合,所述条件包括某个用户、某类动作、某个区域和某个时间的组合;
3)将合成范围发送给客户端,当客户端再次发送动作时,先判断该动作是否属于合成范围,如果属于合成范围,将该动作发送到游戏的合成服务器;如果不属于合成范围,客户端将该动作发送给通信服务器;
4)所述合成服务器定期接收客户端发送来的动作,将动作分类进行组合,所述合成服务器将大量同一种类型的动作合成为一个或者少量的动作;
5)所述合成服务器将这些合成后的动作发送给游戏服务器。
所述的方法,其中,所述步骤4)中合成服务器对动作的合成采用单点合成方法,其步骤包括:
a1)游戏服务器保存游戏用户的各个动作,作为确定合成范围的基础数据;
b1)当游戏服务器负载达到预定程度时,游戏服务器设置并统计用户的火力点,所述火力点指游戏中接受其他用户动作的主要对象,即接受动作最多的一些对象;
c1)游戏服务器确定合成范围,单点合成方法的合成范围是使用单点动作作用在火力点的动作集合,然后将合成范围发送给所有客户端;所述单点动作是指只对一个游戏用户起作用而不会影响到其他的游戏用户的动作;
d1)客户端接收到合成范围,当再次发送动作命令时,先判断该动作是否属于合成范围,如果属于合成范围,将这个动作发送到游戏的合成服务器,如果不属于合成范围,就发送给通信服务器;
e1)合成服务器以固定周期接收这些动作,然后使用单点合成法将他们合成;
f1)合成服务器将合成的结果发送给游戏服务器进行执行。
所述的方法,其中,所述步骤b1)中统计现存用户接收到其他用户对其的动作次数,并形成列表;
所述步骤e1)中使用的单点合成法包括:合成服务器以一定周期接收针对不同火力点的各种动作,将它们按接收者分组,每组同类的动作合并到一起,形成一个或几个动作,再将合成后的动作发送给游戏服务器处理。
所述的方法,其中,所述步骤4)中合成服务器对动作的合成采用区域合成方法,其步骤包括:
a2)游戏服务器保存游戏用户的各个动作,作为确定合成范围的基础数据;
b2)当游戏服务器负载达到预定程度时,游戏服务器统计用户的密集区域,密集区域指游戏中用户密集的区域或者同组用户密集的区域;
c2)游戏服务器确定合成范围,区域合成方法的合成范围是使用区域动作作用密集区域的动作集合,区域动作指对一个区域内的所有游戏用户起作用的动作,并不针对某一特定游戏用户;将合成范围发送给所有客户端;
d2)客户端接收到合成范围,当再次发送动作命令时,先判断该动作是否属于合成范围,如果属于合成范围,将这个动作发送到合成服务器;如果不属于合成范围,就发送给通信服务器;
e2)合成服务器以固定周期接收这些动作,然后使用区域合成法将他们合成;
f2)合成服务器将合成的结果发送给游戏服务器进行执行。
所述的方法,其中,所述步骤b2)中所进行的密集区域统计,先将游戏地图进行分割,每个分割区域作为区域动作的作用标准;每隔一段时间,游戏服务器统计这些区域内整体用户数量和各支队伍的用户数量,形成区域用户数量列表,并确定密集区域;
所述步骤e2)中使用的区域合成法包括:合成服务器以一定周期接收针对各个密集区域的各种动作,将它们按区域和动作类型分组;并对同一区域内的同一种动作,进行模糊合成。
所述的方法,其中,所述模糊合成采用相近叠加法,将两两相近的动作力度简单叠加到一起,其中所述相近动作的相近程度依据游戏具体情况而定。
所述的方法,其中,所述模糊合成还包括然后使用一次三点归一法,即:选择三点动作的重心,将相近的三个动作进行合成到它们的重心处,重心点就是合成后的作用点;作用力度是各个被合成动作力度的简单叠加;作用范围是能够包含所有被合成动作的动作范围的最小平滑封闭区域;
接着重复使用三点归一法直至该密集区域的所有同类动作合成为一个动作或两个动作。
本发明所提供的一种网络游戏中动作合成的方法,通过两种合成方法将同时产生的大量相似动作合成为几个动作发送给游戏服务器,降低了游戏服务器的工作量;解决了小区域大量用户同时动作带来的问题,最终使游戏能够平稳的运行。
附图说明
图1是现有技术的通常网络游戏的基本结构示意图;
图2是本发明的使用动作合成方法改进的网络游戏基本结构示意图;
图3是本发明的网络游戏中动作合成的方法一次战役过程中统计的各个玩家接收单点动作数量的列表;
图4是本发明的网络游戏中动作合成的方法某个队伍玩家分布在已分割的各个区域的模拟显示图;
图5是本发明的网络游戏中动作合成的方法对A000001作用的单点动作分类及合成过程的各项数值列表的变化图;
图6是本发明的网络游戏中动作合成的方法对区域3的动作点的分布图;
图7是本发明的网络游戏中动作合成的方法对区域3的动作进行相近叠加的结果示意图;
图8是本发明的网络游戏中动作合成的方法对区域3的动作进行第一次三点归一法合成的结果示意图;
图9是本发明的网络游戏中动作合成的方法对区域3的动作进行第二次三点归一法合成的结果示意图。
具体实施方式
以下结合附图,将对本发明的具体实施例加以详细说明。
本发明的所述网络游戏中动作合成的方法,如图2(a)和图2(b)所示的,其包括以下步骤:
6)首先对原有游戏基本结构进行改进,在原有的体系结构内加入一个合成服务器,如图2(a)所示,该合成服务器位于通信层内,由它来负责游戏动作的合成。也可以将动作合成方法放在游戏服务器中进行,如图2(b)所示。同样放在某个用户的客户端也可以实现。
7)然后确定合成范围。合成范围是能够进行动作合成的多方面条件的组合,如:某个用户、某类动作、某个区域和某个时间等条件的组合。
8)将合成范围发送给客户端,当客户端再次发送动作时,先判断一下该动作是否属于合成范围,如果属于合成范围,将这个动作发送到游戏的合成服务器;如果不属于合成范围,客户端还是将该动作发送给通信服务器。
9)合成服务器定期接收客户端发送来的动作,将各种动作分类进行组合,所述合成服务器将大量同一种类型的动作合成为一个或者少量的动作。
10)所述合成服务器将这些合成后的动作发送给游戏服务器。
通过上面的合成方法,游戏服务器接收到的动作会大大降低,缓解了游戏服务器的工作负载。这种动作合成方法非常多,下面是两种具体的动作合成方法:单点合成和区域合成。
单点合成方法的实施过程如下:
a1)游戏服务器保存游戏用户的各个动作,作为确定合成范围的基础数据。
b1)当游戏服务器负载过重时,游戏服务器统计用户的火力点。火力点是指游戏中接受其他用户动作的主要对象,即接受动作最多的一些对象,如:战斗游戏中某一方的领军人物,因为他们常常是被打击的重点。
c1)游戏服务器确定合成范围。单点合成方法的合成范围是使用单点动作作用火力点的动作集合。单点动作是指只对一个游戏用户起作用的动作,不会影响到其他的游戏用户。然后将合成范围发送给所有客户端。
d1)客户端接收到合成范围,当再次发送动作命令时,先判断一下该动作是否属于合成范围,如果属于合成范围,将这个动作发送到游戏的合成服务器。如果不属于合成范围,就发送给通信服务器。
e1)合成服务器以固定周期接收这些动作,然后使用单点合成法将他们合成。
f1)最后合成服务器将合成的结果发送给游戏服务器进行执行。
在过程b1)中主要统计现存用户接收到其他动作次数,并形成列表。哪些用户接收到其他用户的动作最多,就将他们列为火力点。这些火力点并不是固定不变的,在以下两种情况火力点需要变化:一、火力点消失,如:死亡、退出等,这时需要寻找新的火力点,在用没有消失的非火力点中接收动作最多的用户添加到火力点列表;二、定期更新时,每隔一段时间重新统计排名,更新火力点列表。
另外火力点的数量也非固定不变的,它可以随着游戏服务器的负载程度动态调整。当服务器将要过载时,起初可能只有几个火力点,但是如果这样服务器依然过载,可以逐渐增加火力点的数量。相反,随着游戏的进行,一些用户的消失,服务器负载逐渐变轻时,火力点的数量也随之变小,最终至没有火力点。
在过程e1)中使用单点合成法。单点合成法为:合成服务器以一定周期接收针对不同火力点的各种动作后,将它们按接收者分组。每组同类的动作合并到一起,如:对火力点的攻击力叠加,失明概率叠加,攻击力共同减弱等各种类型的动作分别合并,形成一个或几个动作。然后将合成后的动作发送给服务器处理。这样可能同时对某火力点发生100个动作,但是通过单点合并发送给服务器的只是几个动作命令。这样大大减少了服务器的工作量从而达到使游戏平滑运行的目的。
区域合成方法的实施过程如下:
a2)游戏服务器保存游戏用户的各个动作,作为确定合成范围的基础数据。
b2)当游戏服务器负载过重时,游戏服务器统计用户的密集区域。密集区域是指游戏中用户密集的区域或者同组用户密集的区域;
c2)游戏服务器确定合成范围。区域合成方法的合成范围是使用区域动作作用密集区域的动作集合。区域动作是指对一个区域内的所有游戏用户起作用的动作,并不针对某一特定游戏用户。然后将合成范围发送给所有客户端。
d2)客户端接收到合成范围,当再次发送动作命令时,先判断一下该动作是否属于合成范围,如果属于合成范围,将这个动作发送到游戏的合成服务器。如果不属于合成范围,就发送给通信服务器。
e2)合成服务器以固定周期接收这些动作,然后使用区域合成法将他们合成。
f2)最后合成服务器将合成的结果发送给游戏服务器进行执行。
在步骤b2)中所进行的密集区域统计,首先将游戏地图进行分割,每个分割区域作为区域动作的作用标准。每隔一段时间,游戏服务器统计这些区域内整体用户数量和各支队伍的用户数量,形成区域用户数量列表,然后确定密集区域。密集区域与火力点相似,密集区域的选择也随着游戏服务器的负载变化而增加或减少。
在步骤e2)中使用区域合成法。区域合成法是针对那些具有大规模作用能力的动作而定的合成方法。合成服务器以一定周期接收针对各个密集区域的各种动作后,将它们按区域和动作类型分组。由于在同一区域内对于同一种动作,其作用位置不可能完全一致,而且作用范围也不尽相同,那么对于它们的合成不能采用简单的叠加,需要对其进行模糊合成。合成可以使用相近叠加法和三点归一法对各个动作进行合成。首先使用相近叠加法,将相近的动作简单叠加到一起。此处相近多少可以进行合成需要看游戏具体情况而定。然后使用一次三点归一法,即:选择三点动作的重心,将相近的三个动作进行合成到它们的重心处。重心点就是合成后的作用点;作用力度是各个被合成动作的叠加;作用范围是能够包含所有被合成的动作范围的最小平滑封闭区域。接着重复使用三点归一法直至该密集区域的所有同类动作合成为一个动作或两个动作,合成到最后可能剩下两个点,可以不进行合成。
当游戏某一区域发生大规模战役时,游戏服务器保存该区域游戏玩家的各个动作。根据动作类表形成一个接收单点动作数量的列表,如图3所示。在这个表中可以看出被单点作用的排名,可以根据当前游戏服务器的负载情况选择火力点数,显然A000001和B000005可以作为火力点。对密集区域的选择先将区域分割,然后统计各个区域的人数。如图4所示是对某个队伍玩家分布的模拟显示,其中区域3和区域6显然符合密集区域的条件。然后游戏服务器将火力点A000001和B000005、区域3和区域6、以及对应的动作发送给客户端。这里对应的动作因游戏差异而不同。
客户端接收到这些信息,当再次发送动作命令时,分成两部分发送。如果是作用A000001或B000005并且属于单点动作,就发送给合成服务器;如果是大规模作用动作且在区域3和区域6内,也发送给合成服务器。其他的所有动作发送给通信服务器。
合成服务器定期接收客户端发送来的动作,然后将这些动作分类。然后对同类的动作进行合成,如图5所示是作用A000001的动作分类及合成过程各项数值变化列表。从而完成单点合成,只要将两个动作发送给游戏服务器即可。
然后进行区域合成,假设对区域3的动作点分布如图6所示。首先进行相近叠加得到如图7所示的结果,动作力度合成方式与单点合成相同;然后进行两次三点归一法合成,分别得到如图8和如图9所示的结果。而动作作用区域随着不同游戏的各种动作作用范围不同而变化。
如此,本发明的所述网络游戏中动作合成的方法,通过两种合成方法将同时产生的大量相似动作合成为几个动作发送给游戏服务器,降低了游戏服务器的工作量;解决了小区域大量用户同时动作带来的问题,最终使游戏能够平稳的运行。
应当理解的是,本发明上述针对具体实施例的描述比较具体,并不能因此而理解为对本发明的专利保护范围的限制,本发明的专利保护范围应以所附权利要求为准。

Claims (2)

1、一种网络游戏中动作合成的方法,其包括以下步骤:
1)设置一合成服务器,负责游戏动作的合成;
2)游戏服务器确定合成范围,合成范围是能够进行动作合成的多方面条件的组合,所述条件包括某个用户、某类动作、某个区域和某个时间的组合;
3)将合成范围发送给客户端,当客户端再次发送动作时,先判断该动作是否属于合成范围,如果属于合成范围,将该动作发送到游戏的合成服务器;如果不属于合成范围,客户端将该动作发送给通信服务器;
4)所述合成服务器定期接收客户端发送来的动作,将动作分类进行组合,所述合成服务器将大量同一种类型的动作合成为一个或者少量的动作;
5)所述合成服务器将这些合成后的动作发送给游戏服务器。
2、根据权利要求1所述的方法,其特征在于,所述步骤4)中合成服务器对动作的合成采用单点合成方法,其步骤包括:
a1)游戏服务器保存游戏用户的各个动作,作为确定合成范围的基础数据;
b1)当游戏服务器负载达到预定程度时,游戏服务器设置并统计用户的火力点,所述火力点指游戏中接受其他用户动作的主要对象,即接受动作最多的一些对象;
c1)游戏服务器确定合成范围,单点合成方法的合成范围是使用单点动作作用在火力点的动作集合,然后将合成范围发送给所有客户端;所述单点动作是指只对一个游戏用户起作用而不会影响到其他的游戏用户的动作;
d1)客户端接收到合成范围,当再次发送动作命令时,先判断该动作是否属于合成范围,如果属于合成范围,将这个动作发送到游戏的合成服务器,如果不属于合成范围,就发送给通信服务器;
e1)合成服务器以一定周期接收针对不同火力点的各种动作,将它们按接收者分组,每组同类的动作合并到一起,形成一个或几个动作作为合成结果;
f1)合成服务器将合成的结果发送给游戏服务器进行执行。
CNB2005100706059A 2005-05-17 2005-05-17 一种网络游戏中动作合成的方法 Active CN100473006C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100706059A CN100473006C (zh) 2005-05-17 2005-05-17 一种网络游戏中动作合成的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100706059A CN100473006C (zh) 2005-05-17 2005-05-17 一种网络游戏中动作合成的方法

Publications (2)

Publication Number Publication Date
CN1866829A CN1866829A (zh) 2006-11-22
CN100473006C true CN100473006C (zh) 2009-03-25

Family

ID=37425721

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100706059A Active CN100473006C (zh) 2005-05-17 2005-05-17 一种网络游戏中动作合成的方法

Country Status (1)

Country Link
CN (1) CN100473006C (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201044185A (en) * 2009-06-09 2010-12-16 Zillians Inc Virtual world simulation systems and methods utilizing parallel coprocessors, and computer program products thereof

Also Published As

Publication number Publication date
CN1866829A (zh) 2006-11-22

Similar Documents

Publication Publication Date Title
JP5937711B2 (ja) プログラム、記録媒体、情報処理装置及び制御方法
US20220355204A1 (en) Game data processing method and apparatus, computer, and readable storage medium
US8057307B2 (en) Handling of players and objects in massive multi-player on-line games
US20100113159A1 (en) Method and apparatus for partitioning virtual worlds using prioritized topic spaces in virtual world systems
US9203880B2 (en) Position tracking in a virtual world
KR100598481B1 (ko) 동적 대역폭 제어
CN101266633B (zh) 无缝超大规模虚拟游戏世界平台
CN106502670A (zh) 一种游戏场景切换方法与装置
CN108619720A (zh) 动画的播放方法和装置、存储介质、电子装置
WO2019105395A1 (zh) 对象操作的处理、对象操作数据的生成方法及计算机设备
WO1999021117A1 (en) Distributed virtual environment
WO2023279917A1 (zh) 弹幕显示方法、弹幕发送方法、装置、计算机设备、计算机可读存储介质及计算机程序产品
CN101005514A (zh) 用于网络游戏的多服务器组织方法
CN1835782B (zh) 分级装置和分级方法
Chen et al. Inter-player delay optimization in multiplayer cloud gaming
CN114404987A (zh) 虚拟对象的控制方法、装置、设备、介质及程序产品
CN101072160A (zh) 分布式虚拟环境的管理方法、系统及节点
CN100473006C (zh) 一种网络游戏中动作合成的方法
Bezerra et al. Adaptive load-balancing for MMOG servers using KD-trees
Bezerra et al. A3: A novel interest management algorithm for distributed simulations of mmogs
Jiang et al. Latency and scalability: a survey of issues and techniques for supporting networked games
McLoone et al. An enhanced dead reckoning model for physics-aware multiplayer computer games
Bezerra et al. A fine granularity load balancing technique for MMOG servers using a kd-tree to partition the space
KR20020039696A (ko) 영상 처리 방법, 영상 처리 장치 및 컴퓨터 프로그램
CN113018845A (zh) 一种操作指令执行方法、客户端、服务端及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant