CN106131038B - 对象的创建方法和装置 - Google Patents
对象的创建方法和装置 Download PDFInfo
- Publication number
- CN106131038B CN106131038B CN201610589509.3A CN201610589509A CN106131038B CN 106131038 B CN106131038 B CN 106131038B CN 201610589509 A CN201610589509 A CN 201610589509A CN 106131038 B CN106131038 B CN 106131038B
- Authority
- CN
- China
- Prior art keywords
- data
- message
- range
- shell
- role
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
Abstract
本发明涉及对象的创建方法和装置。其中,该方法包括:接收第一消息,其中,第一消息中携带有第一数据;根据第一数据创建壳对象,其中,壳对象用于在游戏中代表对象;接收第二消息,其中,第二消息中携带有第二数据,第二数据用于创建壳对象对应的对象;至少根据第二数据创建对象。通过本发明从而解决了相关技术中对象同步方法所导致的问题,减少了网络流量。
Description
技术领域
本发明涉及软件处理领域。具体而言,本发明涉及一种对象的创建方法和装置。
背景技术
兴趣区域(Area Of Interest,英文缩写为AOI)在大型多人在线角色扮演游戏(massively multiplayer online role-playing game,英文缩写为MMORPG)服务器上是不可或缺的技术,通俗的说,就是玩家角色能实时看到的场景中的区域,玩家能看到场景的大小称之为视野,在视野范围内能感知周围对象(其他玩家、NPC、子弹等)的进入和离开,通常的AOI算法是基于玩家视野大小,服务器根据一定的算法,计算各个同步对象间的距离,根据距离和玩家视野大小来触发进入或者离开视野的消息。
通常,玩家指玩游戏的人,有时候也指游戏中玩家操作的角色。同步指玩家的移动、动作等状态除了自己看到,需要将这些状态实时的通知给看到自己的其他玩家的过程。视野指玩家角色可以看到场景中多大的范围。同步对象指需要进行同步的服务器对象,如:玩家、场景中NPC、子弹等对象。
视野的大小会对服务器的性能和网络流量产生很大的影响,在相关技术方案中,视野是玩家为中心点的圆形或者正方形的区域。图1是根据相关技术的AOI的示意图,如图1所示,D代表一个主角(玩家),圆圈区域A1表示的主角服务器端AOI的视野范围,圆圈区域A2代表主角摄像机可见区域(即,视锥),通常情况下,只要有其他玩家S1(或者NPC)进入圆圈区域A1,服务器AOI模块就会发送玩家S1(或NPC)进入视野的消息给游戏逻辑服务器,逻辑服务器收到后,将进入视野的玩家数据打包,发送给主角D,通知主角D创建S1这个玩家。
这种以圆形和方形视野的同步方案虽然实现简单,但也造成了网络流量的浪费,一般情况下2.5D或者3D游戏中,玩家是以斜视角的方式进行游戏(如图1),主角D只关心视锥(圆圈区域A2)内的同步对象(可见玩家或NPC等,如S4),对于视锥外同步对象(如S2、S3)并不关心,而服务器的同步范围(视野范围)要大于客户端可见范围,造成了服务器、客户端CPU和网络流量的浪费。
针对上述的问题,目前尚未提出有效地解决方案。
发明内容
本发明实施例提供了对象的创建方法和装置,解决了相关技术中对象同步方法所导致的问题。
根据本发明的一个方面,提供了一种对象的创建方法,包括:接收第一消息,其中,所述第一消息中携带有第一数据;根据所述第一数据创建壳对象,其中,所述壳对象用于在游戏中表示所述对象;接收第二消息,其中,所述第二消息中携带有第二数据,所述第二数据用于创建所述壳对象对应的对象;至少根据所述第二数据创建所述对象。
根据本发明的另一个方面,还提供了一种对象的创建方法,包括:发送第一消息,其中,所述第一消息中携带有第一数据,所述第一数据用于创建壳对象,所述壳对象用于在游戏中表示所述对象;发送第二消息,其中,所述第二消息中携带有第二数据,所述第二数据用于创建所述壳对象对应的对象。
根据本发明的另一个方面,还提供了一种对象的创建装置,包括:第一模块,用于接收第一消息,其中,所述第一消息中携带有第一数据;第二模块,用于根据所述第一数据创建壳对象,其中,所述壳对象用于在游戏中表示所述对象;第三模块,用于接收第二消息,其中,所述第二消息中携带有第二数据,所述第二数据用于创建所述壳对象对应的对象;第四模块,用于至少根据所述第二数据创建所述对象。
根据本发明的另一个方面,还提供了一种对象的创建装置,包括:第一模块,用于发送第一消息,其中,所述第一消息中携带有第一数据;所述第一数据用于创建壳对象,所述壳对象用于在游戏中表示所述对象;第二模块,用于发送第二消息,其中,所述第二消息中携带有第二数据,所述第二数据用于创建所述壳对象对应的对象。
在本发明实施例中采用了先创建壳对象,在创建壳对象对应的对象的方式,从而解决了相关技术中对象同步方法所导致的问题,减少了网络流量。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术的AOI的示意图;
图2是根据本发明的一个实施例的对象的创建方法的流程图;
图3是根据本发明的一个实施例的对象的创建装置的示意图;
图4是根据本发明的另一个实施例的对象的创建方法的流程图;
图5是根据本发明的示例性实施例的对象的创建装置的示意图;
图6是根据本发明实施例的客户端和服务器的交互的流程图;
图7是根据本发明实施例的创建同步对象的另一个实施方式的AOI示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。
根据本发明实施例,提供了一种可以通过本申请装置实施例执行的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本发明实施例,提供了一种对象的创建方法。图2是根据本发明的一个实施例的对象的创建方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,接收第一消息,其中,该第一消息中携带有第一数据;
步骤S204,根据第一数据创建壳对象,其中,该壳对象用于在游戏中代表对象;
步骤S206,接收第二消息,其中,该第二消息中携带有第二数据,第二数据用于创建该壳对象对应的对象;
步骤S208,至少根据第二数据创建对象。
通过上述步骤,将对象创建的步骤分为两个阶段。
在第一个阶段,如步骤S202和步骤S204所示的,仅仅接收用于创建在游戏中代表对象的壳对象的第一数据,由于游戏中的对象可能不全处于玩家的兴趣区域中,因此不需要接收所有对象的全部数据,所以在该第一阶段,对于所有对象仅仅接收能够在游戏中代表对象的数据,即创建壳对象的第一数据即可。通过这样的方式,可以显著减少接收的数据量。由此,对于需要创建对象可以选择性地发起同步。
在第二个阶段,如步骤S206和步骤S208所示的,对于想要创建的对象,接收创建对象所需的第二数据以最终创建对象。
由于在该方法中,仅用第二数据创建对象,而对其余对象,仅创建在游戏中代表其即可的壳对象,以这样的方式,对象的创建可以选择性地进行,使得需要接收的数据量大大减少,节约了带宽和性能消耗。
为了创建在游戏中代表对象的壳对象以及创建对象,可选地,第二数据为创建对象需要的全部数据,第一数据为第二数据的一部分;或者,第一数据与第二数据的和为创建对象需要的全部数据。
第一数据只要能够创建一个壳对象即可,在实施的过程中可以根据实际情况的需要来进行选择。在一个可选的实施例中,第一数据可以包括以下至少之一:对象的标识信息、对象在游戏中的位置信息。标识信息可以起到标识对象的作用,位置信息可以起到为对象占位的作用,在该可选实施例中,使用这样的第一数据相比创建对象的数据量明显减少,并且使用这些数据能够在游戏中代表对象,却无需包括对象的全部数据,由此创建的对象因此称为“壳对象”。
为了确定需要创建壳对象的对象,在一个可选实施例中,可以在对象进入角色的同步范围之后,接收第一消息,其中,角色为玩家在游戏中控制的角色。当然,也可以在其他的情况下接收第一消息以创建壳对象。以此可选实施例中的方式,对于角色同步范围内的全部对象将被创建壳对象,而不是直接创建包含全部对象数据的对象,减少了需要接收的数据。
在上述步骤中,只接收了代表对象所需的壳对象的数据,还需要接收用于创建对象所需的第二数据。在一个可选实施例中,接收该第二数据包括在对象进入角色在游戏中的预定范围之后,接收第二消息,其中,该预定范围小于同步范围。通过这样的方式可以在所有壳对象中进行选择,选出进入角色在游戏中的预定范围的对象进行创建。当然,也可以以其他的标准进行壳对象中要创建的对象的选择。以此可选实施例中的方式,创建壳对象对应的需要创建的对象。
可选地,在本实施例中,选择对象基于角色的主角摄像机可见区域进行。对于进入主角摄像机可见区域的对象,可以接收同步该对象所需的数据。此外,由于网络延时的存在,对象进入角色的主角摄像机可见区域至控制角色的玩家可见有一定的延时,因此,可以根据角色的移动速度、网络延时情况和角色在游戏中的主角摄像机可见区域大小大概计算出一个比主角摄像机可见区域大的虚拟视野,基于该虚拟视野选择对象。因此,在一个可选实施例中,预定范围为第一范围或第二范围,该第一范围是角色的主角摄像机可见区域,该第二范围大于等于该第一范围,该第二范围是根据角色的移动速度、网络延时情况和该第一范围计算得到的。以此可选实施例中的方式,从壳对象中选择进入主角摄像机可见区域的对象以创建对象,此外,可以一定程度上缓解延时的情况。
在可选实施例中,在接收第二消息之前,可以判断对象是否进入角色在游戏中的预定范围;在对象进入该预定范围之后,发送请求消息,其中,该请求消息用于请求第二数据。以此可选实施例的方式,可以确定对象进入预定范围,从而请求创建对象所需的数据。
对于进入预定范围,或主角摄像机可见区域或虚拟视野的对象的筛选可以以建立筛选列表的形式进行,可选地,根据本实施例的方法还包括:在对象进入预定范围之后,发送请求消息包括:从筛选列表中筛选出进入角色的预定范围的壳对象,其中,该壳对象在被建立之后加入到该筛选列表中;将筛选出的壳对象放入列表中;从该列表中读取壳对象并发送请求消息,该请求消息用于请求该壳对象对应的对象的第二数据。需要理解的是,可以定时进行筛选,筛选的时间间隔是可以根据网络和游戏环境按需调整的。以此可选实施例中的方式,通过建立筛选列表筛选进入预定范围的壳对象,再通过建立列表的方式,请求列表中的壳对象对应的需要创建的对象的数据。
此外应理解的是,本实施例中的对象是游戏中的其他玩家、NPC或子弹中的至少之一,也可以是对象在本领域中的其他表达形式。本实施例中的角色的同步范围可以是兴趣区域,该兴趣区域可以是由服务器计算得出的,还应理解,兴趣区域也可以是以任何合适的方式计算得出的兴趣区域。
通过本实施例描述的方法,既减少了需要接收的数据量,又保证了选择性地接收需要创建对象的数据以创建对象,有效降低了创建同步对象的数量,节约了网络流量和CPU性能。
相应地,根据本发明实施例也可以提供一种可以执行根据上述实施例的方法的装置。图3是根据本发明的一个实施例的对象的创建装置的示意图,如图3所示,该装置包括如下模块。
第一模块301,用于接收第一消息,其中,第一消息中携带有第一数据;
第二模块303,用于根据第一数据创建壳对象,其中,该壳对象用于在游戏中代表对象;
第三模块305,用于接收第二消息,其中,第二消息中携带有第二数据,第二数据用于创建与该壳对象对应的对象;
第四模块307,用于至少根据第二数据创建对象。
本实施例中的对象的创建装置可以执行参考上述实施例中描述的对象的创建方法,本实施例在此不再赘述。
以上是根据本发明实施例的客户端侧的方法和装置,其从客户端侧完成壳对象和与该壳对象对应的对象的创建。根据本发明的实施例还包括服务器侧的方法和装置,其细节在以下内容中详细描述。
根据本发明的另一个实施例,还提供了一种对象的创建方法。图4是根据本发明的另一个实施例的对象的创建方法的流程图,在该流程中执行与如上客户端侧的方法相对应的方法。如图4所示,该方法的流程如下。
步骤S402,发送第一消息,其中,第一消息中携带有第一数据;
第一数据用于创建壳对象,其中,该壳对象用于在游戏中代表对象;
步骤S404,发送第二消息,其中,第二消息中携带有第二数据,第二数据用于创建与该壳对象对应的对象。
通过上述步骤,将对象创建的步骤分为两个阶段。
在第一个阶段,如步骤S402所示的,仅仅发送用于创建在游戏中代表对象的壳对象的第一数据,由于游戏中的对象可能不全处于玩家的兴趣区域中,因此不需要发送所有对象的全部数据,所以在该第一阶段,对于所有对象仅仅发送能够在游戏中代表对象的数据,即创建壳对象的第一数据即可。通过这样的方式,可以显著减少发送的数据量,由此,对于需要创建对象可以选择性地发起同步。
在第二个阶段,如步骤S404所示的,对于想要创建的对象,发送用于最终创建对象的创建对象所需的第二数据。
由于在该方法中,仅用第二数据创建对象,而对其余对象,仅创建在游戏中代表其即可的壳对象,以这样的方式,对象的创建可以选择性地进行,使得需要发送的数据量大大减少,节约了带宽和性能消耗。
为了创建在游戏中代表对象的壳对象以及创建对象,可选地,第二数据为创建对象需要的全部数据,第一数据为第二数据的一部分;或者,第一数据与第二数据的和为创建对象需要的全部数据。
第一数据只要能够创建一个壳对象即可,在实施的过程中可以根据实际情况的需要来进行选择。在一个可选的实施例中,第一数据可以包括以下至少之一:对象的标识信息、对象在游戏中的位置信息。标识信息可以起到标识对象的作用,位置信息可以起到为对象占位的作用,在该可选实施例中,使用这样的第一数据相比创建对象的数据量明显减少,并且使用这些数据能够在游戏中代表对象,却无需包括对象的全部数据,由此创建“壳对象”。
为了确定需要创建壳对象的对象,在一个可选实施例中,可以在对象进入角色的同步范围之后,发送第一消息,其中,角色为玩家在游戏中控制的角色。当然,也可以在其他的情况下发送第一消息以创建壳对象。以此可选实施例中的方式,对于角色同步范围内的全部对象将被创建壳对象,而不是直接创建包含全部对象数据的对象,减少了需要接收的数据。
在一个可选的实施例中,发送第一消息可以包括判断对象是否进入角色的同步范围;在确定对象进入该同步范围之后,发送第一消息。以此方式,根据该可选实施例的方法可以确定角色是否进入同步范围。
在上述步骤中,只发送了代表对象所需的壳对象的数据,还需要发送用于创建对象所需的第二数据。在一个可选实施例中,发送该第二数据包括在对象进入角色在游戏中的预定范围之后,发送第二消息,其中,该预定范围小于同步范围。通过这样的方式可以在所有壳对象中进行选择,选出进入角色在游戏中的预定范围的对象进行创建。当然,也可以以其他的标准进行壳对象中要创建的对象的选择。以此可选实施例中的方式,创建壳对象对应的需要创建的对象。
在可选实施例中,在发送第二消息之前,可以接收请求消息,其中,该请求消息用于请求第二数据。以此可选实施例的方式,可以发送创建所请求的确定进入预定范围的对象所需的数据。
可选地,在本实施例中,选择对象基于角色的主角摄像机可见区域进行。对于进入主角摄像机可见区域的对象,可以接收同步该对象所需的数据。此外,由于网络延时的存在,对象进入角色的主角摄像机可见区域至控制角色的玩家可见有一定的延时,因此,可以根据角色的移动速度、网络延时情况和角色在游戏中的主角摄像机可见区域大小大概计算出一个比主角摄像机可见区域大的虚拟视野,基于该虚拟视野选择对象。因此,在一个可选实施例中,预定范围为第一范围或第二范围,该第一范围是角色的主角摄像机可见区域,该第二范围大于等于该第一范围,该第二范围是根据角色的移动速度、网络延时情况和该第一范围计算得到的。当然,对第二范围的计算可以在客户端侧进行,也可以在服务端进行。以此可选实施例中的方式,从壳对象中选择进入主角摄像机可见区域的对象以创建对象,此外,可以一定程度上缓解延时的情况。
此外应理解的是,本实施例中的对象是游戏中的其他玩家、NPC或子弹中的至少之一,也可以是对象在本领域中的其他表达形式。本实施例中的角色的同步范围可以是兴趣区域,该兴趣区域可以是由服务器计算得出的,还应理解,兴趣区域也可以是以任何合适的方式计算得出的兴趣区域。
通过本实施例描述的方法,既减少了需要接收的数据量,又保证了选择性地接收需要创建对象的数据以创建对象,有效降低了创建同步对象的数量,节约了网络流量和CPU性能。
相应地,根据本发明实施例也可以提供一种可以执行根据上述实施例的方法的装置。图5是根据本发明的示例性实施例的对象的创建装置的示意图,如图5所示,该方法包括如下模块。
第一模块501,用于发送第一消息,其中,第一消息中携带有第一数据;
第一数据用于创建壳对象,其中,该壳对象用于在游戏中代表对象;
第二模块503,用于发送第二消息,其中,第二消息中携带有第二数据,该第二数据用于创建该壳对象对应的对象。
本实施例中的对象的创建装置可以执行参考上述实施例中描述的服务器侧的对象的创建方法,本实施例在此不再赘述。
在以上内容中描述了根据本发明实施例的对象的创建方法和装置,在以上实施例中,客户端侧和服务器侧的方法和装置既可以单独实施,也可以同时实施。
本发明的实施例在现有的服务器同步策略的基础上改进对象创建流程,将客户端视锥筛选融入到现有的同步策略中,减少视锥外同步的数量,包括:
修改服务器同步创建协议,将原来的创建对象消息携带的大量数据去除,仅发送对象ID,位置等简单消息通知客户端同步对象已进入到本客户端主角视野中。
客户端收到该创建协议后,根据对象ID,位置创建该对象的壳对象(该客户端对象,仅仅只有对象ID和位置等简单数据,非真正的客户端同步对象,故而简称为壳对象)。
将该壳对象放入到客户端视锥筛选列表中,参与视锥筛选。
客户端定时视锥筛选,进入视锥的壳对象放入到待创建列表中。
客户从待创建列表中取出壳对象,获取对象id,发送创建对象消息,请求创建真正的同步对象。
服务器收到客户端请求创建的消息,将对应的同步对象数据打包发送给客户端。
客户端收到同步对象数据,创建真正的同步对象,至此,同步对象创建完成。
基于此,本发明示例性实施例还提供了一种创建对象的客户端和服务器的示例性交互。图6是根据本发明实施例的客户端和服务器的交互的流程图,本图只画出本发明的核心模块,其他外围的辅助或者无关的内容不在这里阐述。下面详细介绍下各个模块之间的交互。如图6所示,
S601是服务器(server)的AOI模块进行同步计算后,将计算结果返回结果给服务器逻辑。
S602服务器逻辑收到AOI模块返回结果,将结果通知服务器同步对象预创建模块。
S603服务器同步对象预创建模块打包同步壳对象所需的简单数据(对象Id,位置等),将数据发送给对应的客户端CL。
S604客户端收到服务器发来的同步壳对象创建消息,然后通知同步壳对象创建模块创建同步壳对象,然后将壳对象插入到视锥筛选列表中。
S605客户端视锥筛选模块对视锥筛选列表进行视锥筛选,将进入视锥的壳对象放入待创建同步对象列表中。
S606同步对象请求模块将创建同步对象列表中的数据取出,向服务器请求相应同步对象的创建数据。
S607服务器同步创建模块接收到客户端请求,打包对应的同步对象数据,发送给相应客户端。
S608客户端同步对象创建模块收到服务器发来的数据,根据数据创建同步对象。
至此对象创建完成。
相应地,本发明示例性实施例还提供了一种创建对象的客户端和服务器的示例性布置,根据本发明的一个实施方式的系统包括如下模块。
AOI模块:服务器模块,负责服务器对象AOI计算,并将计算结果通知服务器(server)。
服务器同步对象预创建模块:服务器模块,负责将同步对象对应的客户端壳对象所需的数据打包,通知到对应的客户端CL,该模块的输入端是服务器AOI模块输出的AOI结果,根据AOI模块的结果,将对应的同步对象数据打包发送给特定的客户端创建壳对象。该模块实现上述实施例中的服务器侧的第一模块501的作用。
客户端同步壳对象创建模块:客户端模块,负责接收服务器同步对象创建模块发送来的同步对象消息,创建对于的客户端同步对象。该模块实现上述实施例中的客户端侧的第一模块301和第二模块303的作用。
客户端视锥筛选模块:客户端模块,该发明核心模块,利用客户端摄像机视锥对客户端壳对象进行视锥筛选,将进入视锥的壳对象输出给客户端同步对象请求创建模块。
客户端同步对象请求模块:客户端模块,该模块负责向服务器请求同步对象数据,该模块根据客户端视锥筛选模块的输出结果,向服务器发送同步对象创建请求。
服务器同步对象创建模块:服务器模块,负责接收客户端同步对象请求消息,将对象的同步对象数据打包发送给请求的客户端。该模块实现上述实施例中的服务器侧的第二模块503的作用。
客户端对象创建模块:客户端模块,根据服务器发返回的同步对象数据创建真正的客户端同步对象。该模块实现上述实施例中的客户端侧的第三模块305和第四模块307的作用。
本技术方案有效降低了创建同步对象的数量,节约了网络流量和CPU性能。
下面结合图7描述根据本发明的另一个实施方式的创建同步对象的方法。
图7是根据本发明实施例的创建同步对象的另一个实施方式的AOI示意图。
由于该技术方案是进入视锥后才向服务器请求数据创建同步对象,由于网络延时的存在,对象进入视锥到玩家可见有一定的延时。可在本发明的基础上,根据玩家的移动速度、网络延时情况和玩家视锥大小大概计算出一个比真实的相机视锥大的虚拟视锥做筛选,一定程度上缓解了延时的情况。
在图7中,圆圈区域A1是主角服务器端AOI的视野范围,圆圈区域A2是主角视锥范围,D代表主角(玩家),S1、S2、S3和S4代表对象(其他玩家或NPC等),圆圈区域A3为大于圆圈区域A2的区域。
例如,当S1进入圆圈区域A2时,由于网络延时的存在,使得主角D没有在S1进入圆圈区域S2的同时得到S1进入其视锥的同步信息。基于此,服务器根据玩家的移动速度、网络延时情况和与圆圈区域A2的大小大概计算出比圆圈区域大的圆圈区域A3。例如,当S1进入圆圈区域A3时,就对S1进行上文中的对象同步处理。由此,既一定程度上缓解了延时的情况,又避免了对整个服务器视野范围内的对象执行同步处理,节约了客户端带宽和性能消耗。
在如上的实施方式中描述了本发明的各个实施例。本发明在现有的服务器同步策略的基础上改进对象创建流程,将客户端视锥筛选融入到现有的同步策略中,减少视锥外同步的数量。
在本发明的实施方式中描述的技术方案中,仅同步了视锥内同步对象的同步数据,对于在服务器视野范围内,不在视锥内的同步对象,只同步壳对象需要的极少量数据,大大减少了同步的数据量和打包同步数据的CPU消耗,节约了服务器带宽和性能消耗,同样,客户端也减少网络消耗和解压同步数据的压力,节约了客户端带宽和性能消耗。
此外,同步对象的减少,大大缓解了客户端IO的压力和创建对象造成的消耗,从而使客户端更加流畅。
而且,该发明让客户端成为创建同步对象的发起端,让客户端有了参与同步创建的机会,可以根据客户端情况采取更多的创建策略。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种对象的创建方法,其特征在于,包括:
接收第一消息,其中,所述第一消息中携带有第一数据;
根据所述第一数据创建壳对象,其中,所述壳对象用于在游戏中表示所述对象;
接收第二消息,其中,所述第二消息中携带有第二数据,所述第二数据用于创建所述壳对象对应的对象;
至少根据所述第二数据创建所述对象;
其中,接收所述第一消息包括:在所述对象进入角色的同步范围之后,接收所述第一消息,其中,所述角色为玩家在所述游戏中控制的角色;
接收所述第二消息包括:在所述对象进入所述角色在所述游戏中的预定范围之后,接收所述第二消息,其中,所述预定范围小于所述同步范围;
其中,所述第二数据为创建所述对象需要的全部数据,所述第一数据为所述第二数据的一部分;或者,
所述第一数据与所述第二数据的和为创建所述对象需要的全部数据。
2.根据权利要求1所述的方法,其特征在于,所述第一数据包括以下至少之一:
所述对象的标识信息、所述对象在所述游戏中的位置信息。
3.根据权利要求1所述的方法,其特征在于,
所述预定范围为第一范围或第二范围,所述第一范围是所述角色的主角摄像机可见区域,所述第二范围大于等于第一范围,所述第二范围是根据所述角色的移动速度、网络延时情况和所述第一范围计算得到的。
4.根据权利要求1所述的方法,其特征在于,在接收所述第二消息之前,所述方法还包括:
判断所述对象是否进入所述角色在所述游戏中的预定范围;
在所述对象进入所述预定范围之后,发送请求消息,其中,所述请求消息用于请求所述壳对象对应的对象的所述第二数据。
5.根据权利要求4所述的方法,其特征在于,在所述对象进入所述预定范围之后,发送所述请求消息包括:
从筛选列表中筛选出进入所述角色的预定范围的壳对象,其中,所述壳对象在被建立之后加入到所述筛选列表中;
将筛选出的壳对象放入列表中;
从所述列表中读取壳对象并发送所述请求消息,所述请求消息用于请求该壳对象对应的对象的第二数据。
6.一种对象的创建方法,其特征在于,包括:
发送第一消息,其中,所述第一消息中携带有第一数据,所述第一数据用于创建壳对象,所述壳对象用于在游戏中表示所述对象;
发送第二消息,其中,所述第二消息中携带有第二数据,所述第二数据用于创建所述壳对象对应的对象;
其中,发送所述第一消息包括:在所述对象进入角色的同步范围之后,发送所述第一消息,其中,所述角色为玩家在所述游戏中控制的角色;
发送所述第二消息包括:在所述对象进入所述角色在所述游戏中的预定范围之后,发送所述第二消息,其中,所述预定范围小于所述同步范围;
其中,所述第二数据为创建所述对象需要的全部数据,所述第一数据为所述第二数据的一部分;或者,
所述第一数据与所述第二数据的和为创建所述对象需要的全部数据。
7.根据权利要求6所述的方法,其特征在于,所述第一数据包括以下至少之一:
所述对象的标识信息、所述对象在所述游戏中的位置信息。
8.根据权利要求6所述的方法,其特征在于,发送所述第一消息包括:
判断所述对象是否进入所述角色的同步范围;
在确定所述对象进入所述同步范围之后,发送所述第一消息。
9.根据权利要求6所述的方法,其特征在于,在发送所述第二消息之前,所述方法还包括:
接收请求消息,其中,所述请求消息用于请求所述壳对象对应的对象的第二数据。
10.根据权利要求6所述的方法,其特征在于,
所述预定范围为第一范围或第二范围,所述第一范围是所述角色的主角摄像机可见区域,所述第二范围大于等于第一范围,所述第二范围是根据所述角色的移动速度、网络延时情况和所述第一范围计算得到的。
11.一种对象的创建装置,其特征在于,包括:
第一模块,用于接收第一消息,其中,所述第一消息中携带有第一数据;
第二模块,用于根据所述第一数据创建壳对象,其中,所述壳对象用于在游戏中表示所述对象;
第三模块,用于接收第二消息,其中,所述第二消息中携带有第二数据,所述第二数据用于创建所述壳对象对应的对象;
第四模块,用于至少根据所述第二数据创建所述对象;
其中,所述第一模块还用于在所述对象进入角色的同步范围之后,接收所述第一消息,其中,所述角色为玩家在所述游戏中控制的角色;
所述第二模块还用于在所述对象进入所述角色在所述游戏中的预定范围之后,接收所述第二消息,其中,所述预定范围小于所述同步范围,
其中,所述第二数据为创建所述对象需要的全部数据,所述第一数据为所述第二数据的一部分;或者,
所述第一数据与所述第二数据的和为创建所述对象需要的全部数据。
12.一种对象的创建装置,其特征在于,包括:
第一模块,用于发送第一消息,其中,所述第一消息中携带有第一数据;所述第一数据用于创建壳对象,所述壳对象用于在游戏中表示所述对象;
第二模块,用于发送第二消息,其中,所述第二消息中携带有第二数据,所述第二数据用于创建所述壳对象对应的对象;
其中,所述第一模块还用于在所述对象进入角色的同步范围之后,发送所述第一消息,其中,所述角色为玩家在所述游戏中控制的角色;
所述第二模块还用于在所述对象进入所述角色在所述游戏中的预定范围之后,发送所述第二消息,其中,所述预定范围小于所述同步范围,
其中,所述第二数据为创建所述对象需要的全部数据,所述第一数据为所述第二数据的一部分;或者,
所述第一数据与所述第二数据的和为创建所述对象需要的全部数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610589509.3A CN106131038B (zh) | 2016-07-21 | 2016-07-21 | 对象的创建方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610589509.3A CN106131038B (zh) | 2016-07-21 | 2016-07-21 | 对象的创建方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106131038A CN106131038A (zh) | 2016-11-16 |
CN106131038B true CN106131038B (zh) | 2019-03-19 |
Family
ID=57290061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610589509.3A Active CN106131038B (zh) | 2016-07-21 | 2016-07-21 | 对象的创建方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106131038B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7689717B1 (en) * | 2001-08-08 | 2010-03-30 | Munshi Aaftab A | Method and system for digital rendering over a network |
CN104754622A (zh) * | 2013-12-31 | 2015-07-01 | 中兴通讯股份有限公司 | 指示信息的发送方法、装置及用户设备 |
CN105031922A (zh) * | 2015-07-07 | 2015-11-11 | 网易(杭州)网络有限公司 | 游戏数据的处理方法、游戏服务端及游戏客户端 |
CN105117296A (zh) * | 2015-09-11 | 2015-12-02 | 网易(杭州)网络有限公司 | 同步游戏中对象的状态的方法和系统 |
-
2016
- 2016-07-21 CN CN201610589509.3A patent/CN106131038B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7689717B1 (en) * | 2001-08-08 | 2010-03-30 | Munshi Aaftab A | Method and system for digital rendering over a network |
CN104754622A (zh) * | 2013-12-31 | 2015-07-01 | 中兴通讯股份有限公司 | 指示信息的发送方法、装置及用户设备 |
CN105031922A (zh) * | 2015-07-07 | 2015-11-11 | 网易(杭州)网络有限公司 | 游戏数据的处理方法、游戏服务端及游戏客户端 |
CN105117296A (zh) * | 2015-09-11 | 2015-12-02 | 网易(杭州)网络有限公司 | 同步游戏中对象的状态的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106131038A (zh) | 2016-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6069528B2 (ja) | 画像処理装置、画像処理システム、画像処理方法、及び記憶媒体 | |
JP6310073B2 (ja) | 描画システム、制御方法、及び記憶媒体 | |
WO2022022281A1 (zh) | 一种游戏数据处理方法、装置、计算机及可读存储介质 | |
Bettner et al. | 1500 archers on a 28.8: Network programming in Age of Empires and beyond | |
US20150367238A1 (en) | Game system, game apparatus, a method of controlling the same, a program, and a storage medium | |
EP3592441A1 (en) | A user-driven spectator channel for live game play in multi-player games | |
CN108619720A (zh) | 动画的播放方法和装置、存储介质、电子装置 | |
CN111617487B (zh) | 游戏应用中的帐号接入方法和装置、存储介质及电子设备 | |
CN107479699A (zh) | 虚拟现实交互方法、装置及系统 | |
US20160110903A1 (en) | Information processing apparatus, control method and program | |
CN102470275A (zh) | 虚拟形象显示的修改 | |
WO2021143290A1 (zh) | 虚拟道具的显示方法和装置、存储介质及电子装置 | |
CN104820542A (zh) | 移动端游戏操作界面的显示方法和设备 | |
WO2020048288A1 (zh) | 信息同步方法、装置及存储介质 | |
WO2002092177A3 (en) | Method and arrangement for providing an interactive game including three-dimensional graphics | |
TWI637772B (zh) | 透過網路傳送媒體的系統及方法 | |
JP2016524730A (ja) | 情報処理装置並びにその制御方法、及びプログラム | |
US9904972B2 (en) | Information processing apparatus, control method, program, and recording medium | |
CN107172136A (zh) | 体素数据的同步方法和装置 | |
CN113244609A (zh) | 多画面的显示方法和装置、存储介质及电子设备 | |
US20180353853A1 (en) | Systems and methods for mass user multi input control of a common display | |
CN101420347B (zh) | 一种将Flash单机双人游戏在双主机上同步运行的方法 | |
CN110898425B (zh) | 信息同步方法和装置、存储介质及电子装置 | |
CN106131038B (zh) | 对象的创建方法和装置 | |
CN109936539A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |