CN114285888A - 一种实现无缝大世界的方法及其系统 - Google Patents
一种实现无缝大世界的方法及其系统 Download PDFInfo
- Publication number
- CN114285888A CN114285888A CN202111579431.4A CN202111579431A CN114285888A CN 114285888 A CN114285888 A CN 114285888A CN 202111579431 A CN202111579431 A CN 202111579431A CN 114285888 A CN114285888 A CN 114285888A
- Authority
- CN
- China
- Prior art keywords
- block
- entity
- player
- blocks
- players
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种实现无缝大世界的方法,该方法为:1、把游戏的大世界切分成众多的区块;2、管理各区块的所有实体,将一个区块产生的其他玩家需要看到的玩家行为进行同步给所有玩家;3、查找空闲的服务器,把有玩家进入的区块分配给空闲的服务器,在分配的服务器上运行区块;4、查看区块内的实体位置变化,判断实体是否跨区块,否,不进行操作;是,判断实体新进入的区块是否在其他服务器,是,则同步实体的所有属性到其他区块所在的服务器,实体从旧的区块删除,加入新的区块,同时把实体同步给新进入视野的其他区块的玩家;否,则实体从旧的区块删除,加入新的区块,同时把实体同步给新进入视野的其他区块的玩家,从而实现无缝大世界。
Description
技术领域
本发明涉及游戏开发技术领域,适用于大规模多人在线的服务端,特别是一种实现无缝大世界的方法及其系统。
背景技术
传统的游戏受限于单台服务器的cpu、内存等硬件资源限制,只能支持有限大小的地图。
无缝大世界可以提供更大甚至无限的的游戏世界空间,支持无缝大世界可以为产品提供更多的玩法设计空间和灵活性,为产品带来跨越式的体验。因为一台服务器的cpu、内存等硬件资源是固定的,单台服务器无法支撑无缝大世界并提供给大规模玩家体验。因此要实现无缝大世界并提供给大规模玩家体验,需要对世界进行分割,由多台服务器共同支撑整个大世界。要实现无缝大世界有多个问题需要解决:
1、如何合理分割游戏世界?
2、如何分摊服务器负载?
3、如何处理边界对象,以保证体验正常?
4、边界对象的数据如何在不同服务节点之间高效同步?
5、怎么保证对象跨边界位移后的平滑体验,避免出现卡顿或者正在加载loading的问题?
发明内容
为克服上述问题,本发明的目的是提供一种实现无缝大世界的方法,通过分割无缝大世界并分摊给不同的服务器共同运行,解决了单台服务器因为资源限制无法支撑的问题。
本发明采用以下方案实现:一种实现无缝大世界的方法,所述方法包括如下步骤:
步骤S1、把游戏的大世界切分成众多的区块,所述区块分为两类:包含玩家聚集点的活动区块和不包含玩家聚集点的活动区块;切分出的包含玩家聚集点的区块的大小要小于不包含玩家聚集点的区块;
步骤S2、管理各区块的所有实体,将一个区块产生的其他玩家需要看到的玩家行为进行同步给所有玩家;
步骤S3、查找空闲的服务器,把有玩家进入的区块分配给空闲的服务器,在分配的服务器上运行区块;
步骤S4、查看区块内的实体位置变化,判断实体是否跨区块,未跨区,不进行操作,结束流程;是跨区,判断实体新进入的区块是否在其他服务器,是,则同步实体的所有属性到其他区块所在的服务器,实体从旧的区块删除,加入新的区块,同时把实体同步给新进入视野的其他区块的玩家;否,则实体从旧的区块删除,加入新的区块,判断新进入视野的其他区块是否再其他服务器,否,把实体同步给新进入视野的其他区块的玩家;是,同步实体需要的数据到其他区块所在的服务器,同时把实体同步给新进入视野的其他区块的玩家,从而实现无缝大世界。
进一步的,所述步骤S1进一步具体为:把游戏的大世界切分成众多的区块时,判断切出来的区块是否包含玩家聚集点,否,切分出不包含聚集点的区块,该区块大小大于包含聚集点的区块;是,切分出包含聚集点的区块,该区块大小小于不包含聚集点的区块;其中,所述聚集点包括主城、城镇、村庄、或者补给区;切分的两类区块的大小都比玩家的可视范围大,判断整个大世界是否切分完成,否,继续切分,是,进入步骤S2。
进一步的,所述步骤S4进一步具体为:实体从一个区块移动到另一区块时,如果另一区块没在其他服务器节点,实体从旧的区块删除并加入到新的区块,把实体同步给新增的能看到新区块的其他区块的玩家,如果新增的能看到新区块的其他区块在其他服务器,需要先把实体在场景中的最小化属性集快速同步到其他区块所在的服务器,然后再同步;最小化属性集包括:位置和其他玩家可直接看到的名字和外观属性;
如果另一区块在其他服务器节点,把实体在场景中需要的所有数据同步到其他区块所在的服务器;同步后根据同步的数据在当前服务器建立完整实体,并且玩家业务迁移到当前服务器管理,把实体同步给新增的能看到新区块的其他区块的玩家,旧区块的实体转变为当前实体的拷贝,后续只负责同步给当前服务器的其他玩家,不再参与其他业务的处理;
通过只在必要的时候在不同服务器间同步最小化的属性集和只在真正跨区块的时候才异步同步场景业务相关的完整数据,实现减少并加快不同服务器间的数据同步,实现跨边界位移的平滑处理。
进一步的,所述实体包括玩家、非玩家角色NPC、怪物、以及物件。
本发明还提供了一种实现无缝大世界的系统,所述系统包括切分模块、区块管理模块、动态负载处理模块、以及跨区块同步模块;
所述切分模块,把游戏的大世界切分成众多的区块,所述区块分为两类:包含玩家聚集点的活动区块和不包含玩家聚集点的活动区块;切分出的包含玩家聚集点的区块的大小要小于不包含玩家聚集点的区块;
所述区块管理模块,管理各区块的所有实体,将一个区块产生的其他玩家需要看到的玩家行为进行同步给所有玩家;
所述动态负载处理模块,查找空闲的服务器,把有玩家进入的区块分配给空闲的服务器,在分配的服务器上运行区块;
所述跨区块同步模块,查看区块内的实体位置变化,判断实体是否跨区块,未跨区,不进行操作,结束流程;是跨区,判断实体新进入的区块是否在其他服务器,是,则同步实体的所有属性到其他区块所在的服务器,实体从旧的区块删除,加入新的区块,同时把实体同步给新进入视野的其他区块的玩家;否,则实体从旧的区块删除,加入新的区块,判断新进入视野的其他区块是否再其他服务器,否,把实体同步给新进入视野的其他区块的玩家;是,同步实体需要的数据到其他区块所在的服务器,同时把实体同步给新进入视野的其他区块的玩家,从而实现无缝大世界。
进一步的,所述切分模块的实现方式进一步具体为:把游戏的大世界切分成众多的区块时,判断切出来的区块是否包含玩家聚集点,否,切分出不包含聚集点的区块,该区块大小大于包含聚集点的区块;是,切分出包含聚集点的区块,该区块大小小于不包含聚集点的区块;其中,所述聚集点包括主城、城镇、村庄、或者补给区;切分的两类区块的大小都比玩家的可视范围大,判断整个大世界是否切分完成,否,继续切分,是,执行区块管理模块。
进一步的,所述跨区块同步模块的实现方式进一步具体为:实体从一个区块移动到另一区块时,如果另一区块没在其他服务器节点,实体从旧的区块删除并加入到新的区块,把实体同步给新增的能看到新区块的其他区块的玩家,如果新增的能看到新区块的其他区块在其他服务器,需要先把实体在场景中的最小化属性集快速同步到其他区块所在的服务器,然后再同步;最小化属性集包括:位置和其他玩家可直接看到的名字和外观属性;
如果另一区块在其他服务器节点,把实体在场景中需要的所有数据同步到其他区块所在的服务器;同步后根据同步的数据在当前服务器建立完整实体,并且玩家业务迁移到当前服务器管理,把实体同步给新增的能看到新区块的其他区块的玩家,旧区块的实体转变为当前实体的拷贝,后续只负责同步给当前服务器的其他玩家,不再参与其他业务的处理;
通过只在必要的时候在不同服务器间同步最小化的属性集和只在真正跨区块的时候才异步同步场景业务相关的完整数据,实现减少并加快不同服务器间的数据同步,实现跨边界位移的平滑处理。
进一步的,所述实体包括玩家、非玩家角色NPC、怪物、以及物件。
本发明的有益效果在于:1、本发明通过分割无缝大世界并分摊给不同的服务器共同运行,解决了单台服务器因为资源限制无法支撑的问题。
2、本发明通过动态的把无缝大世界的区块分配给空闲的服务器运行,保证玩家的流畅体验和服务器资源的合理使用。
3、本发明解决无缝大世界分摊到不同服务器运行后不同区块和服务器需要同步的问题;达到玩家感受不到世界是被切割成不同的区块,并被分配给不同的服务器运行的细节。
4、本发明实现了无缝大世界,相较于传统的有限的地图,实现了世界大小的无限扩展。
附图说明
图1是本发明的方法流程示意图。
图2是本发明一实施例中方法步骤1的具体流程示意图。
图3是本发明一实施例中方法步骤2的具体流程示意图。
图4是本发明一实施例中方法步骤3的具体流程示意图。
图5是本发明一实施例中方法步骤4的具体流程示意图。
图6是本发明的系统原理框图。
具体实施方式
下面结合附图对本发明做进一步说明。
请参阅图1所示,本发明的一种实现无缝大世界的方法,所述方法包括如下步骤:
步骤S1、把游戏的大世界切分成众多的区块,所述区块分为两类:包含玩家聚集点的活动区块和不包含玩家聚集点的活动区块;切分出的包含玩家聚集点的区块的大小要小于不包含玩家聚集点的区块;
步骤S2、管理各区块的所有实体,将一个区块产生的其他玩家需要看到的玩家行为进行同步给所有玩家;
步骤S3、查找空闲的服务器,把有玩家进入的区块分配给空闲的服务器,在分配的服务器上运行区块;
步骤S4、查看区块内的实体位置变化,判断实体是否跨区块,未跨区,不进行操作,结束流程;是跨区,判断实体新进入的区块是否在其他服务器,是,则同步实体的所有属性到其他区块所在的服务器,实体从旧的区块删除,加入新的区块,同时把实体同步给新进入视野的其他区块的玩家;否,则实体从旧的区块删除,加入新的区块,判断新进入视野的其他区块是否再其他服务器,否,把实体同步给新进入视野的其他区块的玩家;是,同步实体需要的数据到其他区块所在的服务器,同时把实体同步给新进入视野的其他区块的玩家,从而实现无缝大世界。
下面结合一具体实施例对本发明作进一步说明:
本发明通过将无缝大世界按规则切分成众多小区块,并动态分配给不同服务器共同支撑无缝大世界,该一种实现无缝大世界的方法为:
1、大世界进行切分(参见图2所示):
把无缝大世界切分成众多的小区块。区块分两类:包含玩家聚集点(主城、城镇、村庄、补给区等)的活动区块和不包含玩家聚集点(城外、森林、海洋等)的活动区块,两类区块的大小都比玩家的可视范围更大,以提高效率。切分无缝大世界时,同一区块只会包含一到多个玩家会聚集的活动区块,以便把无缝大世界的资源消耗(cpu、内存、网络)分摊到众多的服务器节点。切分无缝大世界时,不包含玩家会聚集的活动区块会切区得更大,以减少玩家跨区块的同步处理消耗(cpu、内存、网络),另外也会适当控制大小,以保证整体的资源消耗(cpu、内存、网络)可控。其中,把游戏的大世界切分成众多的区块时,判断切出来的区块是否包含玩家聚集点,否,切分出不包含聚集点的区块,该区块大小大于包含聚集点的区块;是,切分出包含聚集点的区块,该区块大小小于不包含聚集点的区块;切分的两类区块的大小都比玩家的可视范围大,判断整个大世界是否切分完成,否,继续切分,是,执行后续步骤。
2、管理区块(参见图3所示):
管理本区块的所有实体(玩家、NPC、怪物、物件等)。在一个区块产生的其他玩家需要看到的玩家行为会同步给所有玩家;即查看玩家行为,进行玩家行为处理,向可视范围的其他玩家同步玩家行为。
3、动态负载处理区块(参见图4所示):
基于每个服务器的当前和后续可能的状态(繁忙、空闲),把新激活的区块(原来没有玩家,现在有玩家要进到这个区块)分配到空闲的服务器上运行。
4、跨区块数据同步(参见图5所示):
实体从一个区块移动到另一区块时,如果另一区块没在其他服务器节点,实体从旧的区块删除并加入到新的区块,把实体同步给新增的可以看到新区块的其他区块的玩家,如果新增的可以看到新区块的其他区块在其他服务器,需要先把实体在场景中的最小化属性集(位置和其他玩家可直接看到的名字和外观等属性)快速同步到其他区块所在的服务器,然后再同步。如果另一区块在其他服务器节点,负责把实体在场景中需要的所有数据(除了位置和其他玩家可见的属性,还包括场景业务涉及到的其他玩家不能直观看到的数据,比如游戏战斗情景中会影响战斗结果的玩家等级、攻击力、防御力等其他属性数据。)同步到其他区块所在的服务器。同步后根据同步的数据在当前服务器建立完整实体,并且玩家业务迁移到当前服务器管理,把实体同步给新增的可以看到新区块的其他区块的玩家,旧区块的实体转变为当前实体的拷贝,后续只负责同步给当前服务器的其他玩家,不再参与其他业务的处理。通过只在必要的时候在不同服务器间同步最小化的属性集和只在真正跨区块的时候才异步同步场景业务相关的完整数据,实现减少并加快不同服务器间的数据同步,实现跨边界位移的平滑处理。
参见图6所示,本发明还提供了一种实现无缝大世界的系统,所述系统包括切分模块、区块管理模块、动态负载处理模块、以及跨区块同步模块;
所述切分模块,把游戏的大世界切分成众多的区块,所述区块分为两类:包含玩家聚集点的活动区块和不包含玩家聚集点的活动区块;切分出的包含玩家聚集点的区块的大小要小于不包含玩家聚集点的区块;
所述区块管理模块,管理各区块的所有实体,将一个区块产生的其他玩家需要看到的玩家行为进行同步给所有玩家;所述实体包括玩家、非玩家角色NPC、怪物、以及物件。
所述动态负载处理模块,查找空闲的服务器,把有玩家进入的区块分配给空闲的服务器,在分配的服务器上运行区块;
所述跨区块同步模块,查看区块内的实体位置变化,判断实体是否跨区块,未跨区,不进行操作,结束流程;是跨区,判断实体新进入的区块是否在其他服务器,是,则同步实体的所有属性到其他区块所在的服务器,实体从旧的区块删除,加入新的区块,同时把实体同步给新进入视野的其他区块的玩家;否,则实体从旧的区块删除,加入新的区块,判断新进入视野的其他区块是否再其他服务器,否,把实体同步给新进入视野的其他区块的玩家;是,同步实体需要的数据到其他区块所在的服务器,同时把实体同步给新进入视野的其他区块的玩家,从而实现无缝大世界。
所述切分模块的实现方式进一步具体为:把游戏的大世界切分成众多的区块时,判断切出来的区块是否包含玩家聚集点,否,切分出不包含聚集点的区块,该区块大小大于包含聚集点的区块;是,切分出包含聚集点的区块,该区块大小小于不包含聚集点的区块;其中,所述聚集点包括主城、城镇、村庄、或者补给区;切分的两类区块的大小都比玩家的可视范围大,判断整个大世界是否切分完成,否,继续切分,是,执行区块管理模块。
所述跨区块同步模块的实现方式进一步具体为:实体从一个区块移动到另一区块时,如果另一区块没在其他服务器节点,实体从旧的区块删除并加入到新的区块,把实体同步给新增的能看到新区块的其他区块的玩家,如果新增的能看到新区块的其他区块在其他服务器,需要先把实体在场景中的最小化属性集快速同步到其他区块所在的服务器,然后再同步;最小化属性集包括:位置和其他玩家可直接看到的名字和外观属性;
如果另一区块在其他服务器节点,把实体在场景中需要的所有数据(除了位置和其他玩家可见的属性,还包括场景业务涉及到的其他玩家不能直观看到的数据,比如游戏战斗情景中会影响战斗结果的玩家等级、攻击力、防御力等其他属性数据。)同步到其他区块所在的服务器;同步后根据同步的数据在当前服务器建立完整实体,并且玩家业务迁移到当前服务器管理,把实体同步给新增的能看到新区块的其他区块的玩家,旧区块的实体转变为当前实体的拷贝,后续只负责同步给当前服务器的其他玩家,不再参与其他业务的处理;
通过只在必要的时候在不同服务器间同步最小化的属性集和只在真正跨区块的时候才异步同步场景业务相关的完整数据,实现减少并加快不同服务器间的数据同步,实现跨边界位移的平滑处理。
下面通过几个例子,说明如何基于本系统实现无缝大世界:
例子:虚拟的无缝大世界的面积有5.1亿平方千米,有五大洲六大洋,每个大洲有几十个国家,每个国家有成千上万个城市。每个城市都有成千上万的玩家。
切分模块从无缝大世界的一个点开始切区块出来,包含城市的区块切分得小一点,不包含城市的区块(非聚集区域)适当的切得更大一点,通过这种方式把整个虚拟的无缝大世界切出成无数个区域。
某个城市的区域很大或者玩家数量很多,可以进一步切分成更小的区块。
例子:玩家登录服务器,进入到A1个城市。
动态负载处理模块把A1城市分配给空闲的服务器1运行。玩家登录的时候动态负载处理模块让玩家连接到服务器1,玩家连接服务器1后进入A1城市,进入A1城市后受到区块管理模块的管理。
例子:玩家在A1城市移动。
玩家1在A1城市移动,负责城市1的区块管理模块会把玩家1的移动信息同步给A1城市的所有其他玩家,其他玩家可以看到玩家1在移动。
例子:玩家从A1城市进入到A2城市,A1城市和A2城市分属不同的服务器管理。
玩家1从A1城市进入到A2城市,跨区块同步模块会把玩家1的全部信息同步给A2城市的所在服务器2,负责A2城市的区块管理模块会把玩家1同步给A2城市的原有其他玩家,其他玩家可以看到A2城市新增了玩家1。
例子:玩家从A1城市进入到A2城市,A1城市和A2城市属相同的服务器管理。
玩家1从A1城市进入到A2城市,负责A2城市的区块管理模块会把玩家1同步给A2城市的原有其他玩家,其他玩家可以看到A2城市新增了玩家1。
例子:玩家在A1和A2城市的边缘移动,可以被A2城市的玩家看到。A1城市和A2城市分属不同的服务器管理。
玩家在A1和A2城市的边缘移动,跨区块同步模块会把玩家1的必要信息同步给A2城市的所在服务器2,负责A2城市的区块管理模块会把玩家1同步给A2城市的原有其他玩家,其他玩家可以看到A2城市的边缘新增了玩家1。
例子:玩家在A1和A2城市的边缘移动,可以被A2城市的玩家看到。A1城市和A2城市属相同的服务器管理。
玩家在A1和A2城市的边缘移动,负责A2城市的区块管理模块会把玩家1同步给A2城市的原有其他玩家,其他玩家可以看到A2城市的边缘新增了玩家1。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (8)
1.一种实现无缝大世界的方法,其特征在于:所述方法包括如下步骤:
步骤S1、把游戏的大世界切分成众多的区块,所述区块分为两类:包含玩家聚集点的活动区块和不包含玩家聚集点的活动区块;切分出的包含玩家聚集点的区块的大小要小于不包含玩家聚集点的区块;
步骤S2、管理各区块的所有实体,将一个区块产生的其他玩家需要看到的玩家行为进行同步给所有玩家;
步骤S3、查找空闲的服务器,把有玩家进入的区块分配给空闲的服务器,在分配的服务器上运行区块;
步骤S4、查看区块内的实体位置变化,判断实体是否跨区块,未跨区,不进行操作,结束流程;是跨区,判断实体新进入的区块是否在其他服务器,是,则同步实体的所有属性到其他区块所在的服务器,实体从旧的区块删除,加入新的区块,同时把实体同步给新进入视野的其他区块的玩家;否,则实体从旧的区块删除,加入新的区块,判断新进入视野的其他区块是否再其他服务器,否,把实体同步给新进入视野的其他区块的玩家;是,同步实体需要的数据到其他区块所在的服务器,同时把实体同步给新进入视野的其他区块的玩家,从而实现无缝大世界。
2.根据权利要求1所述的一种实现无缝大世界的方法,其特征在于:所述步骤S1进一步具体为:把游戏的大世界切分成众多的区块时,判断切出来的区块是否包含玩家聚集点,否,切分出不包含聚集点的区块,该区块大小大于包含聚集点的区块;是,切分出包含聚集点的区块,该区块大小小于不包含聚集点的区块;其中,所述聚集点包括主城、城镇、村庄、或者补给区;切分的两类区块的大小都比玩家的可视范围大,判断整个大世界是否切分完成,否,继续切分,是,进入步骤S2。
3.根据权利要求1所述的一种实现无缝大世界的方法,其特征在于:所述步骤S4进一步具体为:实体从一个区块移动到另一区块时,如果另一区块没在其他服务器节点,实体从旧的区块删除并加入到新的区块,把实体同步给新增的能看到新区块的其他区块的玩家,如果新增的能看到新区块的其他区块在其他服务器,需要先把实体在场景中的最小化属性集快速同步到其他区块所在的服务器,然后再同步;最小化属性集包括:位置和其他玩家可直接看到的名字和外观属性;
如果另一区块在其他服务器节点,把实体在场景中需要的所有数据同步到其他区块所在的服务器;同步后根据同步的数据在当前服务器建立完整实体,并且玩家业务迁移到当前服务器管理,把实体同步给新增的能看到新区块的其他区块的玩家,旧区块的实体转变为当前实体的拷贝,后续只负责同步给当前服务器的其他玩家,不再参与其他业务的处理;
通过只在必要的时候在不同服务器间同步最小化的属性集和只在真正跨区块的时候才异步同步场景业务相关的完整数据,实现减少并加快不同服务器间的数据同步,实现跨边界位移的平滑处理。
4.根据权利要求1所述的一种实现无缝大世界的方法,其特征在于:所述实体包括玩家、非玩家角色NPC、怪物、以及物件。
5.一种实现无缝大世界的系统,其特征在于:所述系统包括切分模块、区块管理模块、动态负载处理模块、以及跨区块同步模块;
所述切分模块,把游戏的大世界切分成众多的区块,所述区块分为两类:包含玩家聚集点的活动区块和不包含玩家聚集点的活动区块;切分出的包含玩家聚集点的区块的大小要小于不包含玩家聚集点的区块;
所述区块管理模块,管理各区块的所有实体,将一个区块产生的其他玩家需要看到的玩家行为进行同步给所有玩家;
所述动态负载处理模块,查找空闲的服务器,把有玩家进入的区块分配给空闲的服务器,在分配的服务器上运行区块;
所述跨区块同步模块,查看区块内的实体位置变化,判断实体是否跨区块,未跨区,不进行操作,结束流程;是跨区,判断实体新进入的区块是否在其他服务器,是,则同步实体的所有属性到其他区块所在的服务器,实体从旧的区块删除,加入新的区块,同时把实体同步给新进入视野的其他区块的玩家;否,则实体从旧的区块删除,加入新的区块,判断新进入视野的其他区块是否再其他服务器,否,把实体同步给新进入视野的其他区块的玩家;是,同步实体需要的数据到其他区块所在的服务器,同时把实体同步给新进入视野的其他区块的玩家,从而实现无缝大世界。
6.根据权利要求5所述的一种实现无缝大世界的系统,其特征在于:所述切分模块的实现方式进一步具体为:把游戏的大世界切分成众多的区块时,判断切出来的区块是否包含玩家聚集点,否,切分出不包含聚集点的区块,该区块大小大于包含聚集点的区块;是,切分出包含聚集点的区块,该区块大小小于不包含聚集点的区块;其中,所述聚集点包括主城、城镇、村庄、或者补给区;切分的两类区块的大小都比玩家的可视范围大,判断整个大世界是否切分完成,否,继续切分,是,执行区块管理模块。
7.根据权利要求5所述的一种实现无缝大世界的系统,其特征在于:所述跨区块同步模块的实现方式进一步具体为:实体从一个区块移动到另一区块时,如果另一区块没在其他服务器节点,实体从旧的区块删除并加入到新的区块,把实体同步给新增的能看到新区块的其他区块的玩家,如果新增的能看到新区块的其他区块在其他服务器,需要先把实体在场景中的最小化属性集快速同步到其他区块所在的服务器,然后再同步;最小化属性集包括:位置和其他玩家可直接看到的名字和外观属性;
如果另一区块在其他服务器节点,把实体在场景中需要的所有数据同步到其他区块所在的服务器;同步后根据同步的数据在当前服务器建立完整实体,并且玩家业务迁移到当前服务器管理,把实体同步给新增的能看到新区块的其他区块的玩家,旧区块的实体转变为当前实体的拷贝,后续只负责同步给当前服务器的其他玩家,不再参与其他业务的处理;
通过只在必要的时候在不同服务器间同步最小化的属性集和只在真正跨区块的时候才异步同步场景业务相关的完整数据,实现减少并加快不同服务器间的数据同步,实现跨边界位移的平滑处理。
8.根据权利要求5所述的一种实现无缝大世界的系统,其特征在于:所述实体包括玩家、非玩家角色NPC、怪物、以及物件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111579431.4A CN114285888B (zh) | 2021-12-22 | 2021-12-22 | 一种实现无缝大世界的方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111579431.4A CN114285888B (zh) | 2021-12-22 | 2021-12-22 | 一种实现无缝大世界的方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114285888A true CN114285888A (zh) | 2022-04-05 |
CN114285888B CN114285888B (zh) | 2023-08-18 |
Family
ID=80873681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111579431.4A Active CN114285888B (zh) | 2021-12-22 | 2021-12-22 | 一种实现无缝大世界的方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114285888B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101753534A (zh) * | 2008-12-10 | 2010-06-23 | 徐文祥 | 基于集群服务器的分区自适应网络系统及其构建方法 |
US20110269540A1 (en) * | 2007-03-01 | 2011-11-03 | Sony Computer Entertainment Europe Limited | Entertainment device and method |
CN102255930A (zh) * | 2010-05-21 | 2011-11-23 | 国际商业机器公司 | 用于提供虚拟世界的场景数据的方法和系统 |
CN109364483A (zh) * | 2018-10-10 | 2019-02-22 | 苏州好玩友网络科技有限公司 | 大场景地图分割方法及应用其的玩家视角场景更新方法 |
CN113470169A (zh) * | 2021-06-30 | 2021-10-01 | 完美世界(北京)软件科技发展有限公司 | 游戏场景生成方法、装置、计算机设备及可读存储介质 |
CN113797528A (zh) * | 2020-09-23 | 2021-12-17 | 完美世界(北京)软件科技发展有限公司 | 游戏副本的展示方法及装置、存储介质、电子装置 |
-
2021
- 2021-12-22 CN CN202111579431.4A patent/CN114285888B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110269540A1 (en) * | 2007-03-01 | 2011-11-03 | Sony Computer Entertainment Europe Limited | Entertainment device and method |
CN101753534A (zh) * | 2008-12-10 | 2010-06-23 | 徐文祥 | 基于集群服务器的分区自适应网络系统及其构建方法 |
CN102255930A (zh) * | 2010-05-21 | 2011-11-23 | 国际商业机器公司 | 用于提供虚拟世界的场景数据的方法和系统 |
CN109364483A (zh) * | 2018-10-10 | 2019-02-22 | 苏州好玩友网络科技有限公司 | 大场景地图分割方法及应用其的玩家视角场景更新方法 |
CN113797528A (zh) * | 2020-09-23 | 2021-12-17 | 完美世界(北京)软件科技发展有限公司 | 游戏副本的展示方法及装置、存储介质、电子装置 |
CN113470169A (zh) * | 2021-06-30 | 2021-10-01 | 完美世界(北京)软件科技发展有限公司 | 游戏场景生成方法、装置、计算机设备及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
刘茂雄;施霖;: "基于构件动态迁移解决MMORPG负载问题的研究", 科技广场, no. 08 * |
Also Published As
Publication number | Publication date |
---|---|
CN114285888B (zh) | 2023-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110247984B (zh) | 业务处理方法、装置及存储介质 | |
CN108280080A (zh) | 一种数据同步方法、装置以及电子设备 | |
CN101266633A (zh) | 无缝超大规模虚拟游戏世界平台 | |
CN110935169B (zh) | 虚拟对象的控制方法、信息显示方法、装置、设备及介质 | |
CN103678892A (zh) | 一种角色对象管理的方法和装置 | |
Douglas et al. | Enabling massively multi-player online gaming applications on a p2p architecture | |
CN101719148B (zh) | 三维空间信息的存储方法、装置、系统及查询系统 | |
CN112988377B (zh) | 用于云服务的资源分配方法、系统和介质 | |
CN108073423A (zh) | 一种加速器加载方法、系统和加速器加载装置 | |
CN111367649A (zh) | 高精地图数据并行处理方法和装置 | |
Donkervliet et al. | Towards supporting millions of users in modifiable virtual environments by redesigning {Minecraft-Like} games as serverless systems | |
CN102103657A (zh) | 虚拟世界系统及实现虚拟世界的方法 | |
CN113546416B (zh) | 游戏场景处理方法、装置、计算机设备及存储介质 | |
Deen et al. | Running Quake II on a grid | |
CN111327719B (zh) | 业务处理方法、装置、业务服务器及介质 | |
CN114285888A (zh) | 一种实现无缝大世界的方法及其系统 | |
CN111026425A (zh) | 服务更新方法、装置、服务器及介质 | |
Steed et al. | Supporting scalable peer to peer virtual environments using frontier sets | |
CN109011568B (zh) | 游戏地图的分配方法及系统 | |
Farooq et al. | Faster dynamic spatial partitioning in opensimulator | |
CN113713381B (zh) | 对象管理方法、装置、设备、存储介质及系统 | |
Ng et al. | A performance study on multi-server DVE systems | |
CN112156475B (zh) | 一种业务数据处理方法、装置、电子设备及存储介质 | |
CN111800742B (zh) | 一种移动位置数据的管理方法、装置、存储介质及终端 | |
US11909601B1 (en) | Implementing a scalable 3D simulation using a distributed 3D keyspace |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |