CN113827957A - 虚拟游戏角色的部署方法、装置、存储介质和电子装置 - Google Patents
虚拟游戏角色的部署方法、装置、存储介质和电子装置 Download PDFInfo
- Publication number
- CN113827957A CN113827957A CN202110950896.XA CN202110950896A CN113827957A CN 113827957 A CN113827957 A CN 113827957A CN 202110950896 A CN202110950896 A CN 202110950896A CN 113827957 A CN113827957 A CN 113827957A
- Authority
- CN
- China
- Prior art keywords
- virtual game
- data
- target
- inherited
- terrain
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 108
- 238000003860 storage Methods 0.000 title claims abstract description 18
- 238000010586 diagram Methods 0.000 claims description 78
- 238000009826 distribution Methods 0.000 claims description 70
- 230000015572 biosynthetic process Effects 0.000 claims description 22
- 230000008859 change Effects 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 14
- 230000000694 effects Effects 0.000 abstract description 17
- 238000013473 artificial intelligence Methods 0.000 description 45
- 230000006870 function Effects 0.000 description 11
- 238000007726 management method Methods 0.000 description 11
- 241000251730 Chondrichthyes Species 0.000 description 9
- 241000282994 Cervidae Species 0.000 description 8
- 230000002159 abnormal effect Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 8
- 238000013500 data storage Methods 0.000 description 7
- 230000001960 triggered effect Effects 0.000 description 7
- 241000283086 Equidae Species 0.000 description 6
- 230000009471 action Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 238000013479 data entry Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000004043 dyeing Methods 0.000 description 5
- 235000019580 granularity Nutrition 0.000 description 5
- 230000008676 import Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000000605 extraction Methods 0.000 description 4
- 230000000717 retained effect Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 241000282836 Camelus dromedarius Species 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 238000010186 staining Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 235000004522 Pentaglottis sempervirens Nutrition 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000012876 topography Methods 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Abstract
本发明公开了一种虚拟游戏角色的部署方法、装置、存储介质和电子装置。该方法包括:确定至少一个原始虚拟游戏角色;获取至少一个原始虚拟游戏角色的待继承数据;至少基于待继承数据在游戏场景中确定目标区域,并在目标区域中部署多个目标虚拟游戏角色,其中,目标虚拟游戏角色与原始虚拟游戏角色相关联,目标虚拟游戏角色用于继承待继承数据。通过本发明,达到了降低虚拟游戏角色的数据对磁盘和内存空间的占用率的技术效果。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种虚拟游戏角色的部署方法、装置、存储介质和电子装置。
背景技术
目前,在游戏场景比较大的情况下,需要在游戏场景中部署的虚拟游戏角色的总数量也非常多。
在相关技术中,通常在对虚拟游戏角色部署结束之后,对每个虚拟游戏角色的数据都全量存储,即使大多数的虚拟游戏角色有很多的数据是相同的,也不得不存储所有虚拟游戏角色的完整数据,从而导致用于数据存储的文件磁盘和内存占用率都非常高。
针对现有技术中虚拟游戏角色的数据对磁盘和内存空间的占用率高的技术问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种虚拟游戏角色的部署方法、装置、存储介质和电子装置,以至少解决虚拟游戏角色的数据对磁盘和内存空间的占用率高的技术问题。
为了实现上述目的,根据本发明的一个方面,提供了一种虚拟游戏角色的部署方法,其特征在于,包括:确定至少一个原始虚拟游戏角色;获取至少一个原始虚拟游戏角色的待继承数据;至少基于待继承数据在游戏场景中确定目标区域,并在目标区域中部署多个目标虚拟游戏角色,其中,目标虚拟游戏角色与原始虚拟游戏角色相关联,目标虚拟游戏角色用于继承待继承数据。
可选地,该方法还包括:将至少一个原始虚拟游戏角色划分为第一数量的原始虚拟游戏角色集合;在多个目标虚拟游戏角色中,获取关联每个原始虚拟游戏角色集合的第二数量的目标虚拟游戏角色集合,其中,每个目标虚拟游戏角色集合的阵营属性相同,每个目标虚拟游戏角色集合的阵营属性用于表示每个目标虚拟游戏角色集合所属的阵营;获取至少一个原始虚拟游戏角色的待继承数据,包括:获取第一数量的原始虚拟游戏角色集合的待继承数据;在目标区域中部署多个目标虚拟游戏角色,包括:在目标区域中部署关联每个原始虚拟游戏角色集合的第二数量的目标虚拟游戏角色集合。
可选地,获取第一数量的原始虚拟游戏角色集合的待继承数据,包括:确定第一数量的原始虚拟游戏角色集合的阵营属性,其中,每个原始虚拟游戏角色集合的阵营属性用于表示每个原始虚拟游戏角色集合所属的阵营,待继承数据包括阵营属性。
可选地,至少基于待继承数据在游戏场景中确定目标区域,包括:至少基于第一数量的原始虚拟游戏角色集合的阵营属性,在游戏场景中确定出目标区域,其中,至少一个原始虚拟游戏角色包括第一数量的原始虚拟游戏角色集合,待继承数据包括阵营属性。
可选地,该方法还包括:确定游戏场景中地形的多个地形网格的阵营属性,其中,每个地形网格的阵营属性用于表示每个地形网格所属的阵营;至少基于第一数量的原始虚拟游戏角色集合的阵营属性,在游戏场景中确定出目标区域,包括:基于多个地形网格的阵营属性和第一数量的原始虚拟游戏角色集合的阵营属性,在多个地形网格中确定每个原始虚拟游戏角色集合对应的多个子地形网格,其中,每个子地形网格的阵营属性与每个原始虚拟游戏角色集合的阵营属性相同;至少基于多个子地形网格在游戏场景中确定出目标区域。
可选地,在多个地形网格中确定每个原始虚拟游戏角色集合对应的多个子地形网格之后,该方法还包括:确定每个原始虚拟游戏角色集合分配到每个子地形网格的分配概率;至少基于多个子地形网格在游戏场景中确定出目标区域,包括:基于多个子地形网格和分配概率在游戏场景中确定出目标区域。
可选地,在确定游戏场景中地形的多个地形网格的阵营属性之前,该方法还包括:通过目标图形文件获取阵营数据,其中,目标图形文件的像素尺寸与游戏场景的面积成目标比例;确定游戏场景中地形的多个地形网格的阵营属性,包括:基于阵营数据确定多个地形网格的阵营属性。
可选地,至少基于待继承数据在游戏场景中确定目标区域之前,该方法还包括:在游戏场景的地形上确定多个预定位置,其中,每个预定位置用于使部署到每个预定位置上的虚拟游戏角色执行的目标逻辑处于正常状态;至少基于待继承数据在游戏场景中确定目标区域,包括:在多个预定位置中,基于待继承数据确定多个目标位置,其中,多个目标位置为符合部署多个目标虚拟游戏角色的位置;在目标区域中部署多个目标虚拟游戏角色,包括:在多个目标位置上部署多个目标虚拟游戏角色。
可选地,该方法还包括:在检测到游戏场景中地形变化的情况下,对多个预定位置进行调整,并确定每个原始虚拟游戏角色集合分配到变化后的地形的每个地形网格的分配概率;至少在多个预定位置中,基于待继承数据确定多个目标位置,包括:在调整后的多个预定位置中,基于待继承数据和分配概率确定多个目标位置。
可选地,在目标区域中部署多个目标虚拟游戏角色包括:确定与目标区域对应的第三数量,其中,第三数量为目标区域允许部署的目标虚拟游戏角色的最大数量;在目标区域中部署不超过第三数量的目标虚拟游戏角色。
可选地,在目标区域中部署多个目标虚拟游戏角色之后,方法还包括:生成热力图,其中,热力图用于表征多个目标虚拟游戏角色在游戏场景中的分布情况。
可选地,在获取至少一个原始虚拟游戏角色的待继承数据之后,该方法还包括:对待继承数据进行变更;至少基于待继承数据在游戏场景中确定目标区域,包括:至少基于变更后的待继承数据确定目标区域。
可选地,至少基于待继承数据在游戏场景中确定目标区域,包括:基于待继承数据和多个目标虚拟游戏角色的增量数据确定目标区域,其中,增量数据为目标虚拟游戏角色的数据中不同于待继承数据的数据。
为了实现上述目的,根据本发明的另一方面,还提供了一种虚拟游戏角色的部署方法。该方法可以包括:响应作用于图形用户界面的第一操作指令,确定至少一个原始虚拟游戏角色,且生成在游戏场景中待部署的多个目标虚拟游戏角色,其中,多个目标虚拟游戏角色与至少一个原始虚拟游戏角色相关联,目标虚拟游戏角色用于继承原始虚拟游戏角色的待继承数据;响应作用于图形用户界面的第二操作指令,在图形用户界面上显示目标区域,并在目标区域中部署多个目标虚拟游戏角色,其中,目标区域至少根据待继承数据在游戏场景中确定出。
可选地,该方法还包括:响应作用于图形用户界面的第三操作指令,导入目标图形文件,其中,目标图形文件的像素尺寸与游戏场景的面积成目标比例;通过目标图形文件获取阵营数据,并基于阵营数据确定游戏场景中地形的多个地形网格的阵营属性;基于多个地形网格的阵营属性和待继承数据在游戏场景中确定目标区域。
可选地,该方法还包括:响应作用于图形用户界面的第四操作指令,在图形用户界面上显示热力图,其中,热力图用于表征多个目标虚拟游戏角色在游戏场景中的分布情况。
为了实现上述目的,根据本发明的另一方面,还提供了一种虚拟游戏角色的部署装置。该装置可以包括:第一确定单元,用于确定至少一个原始虚拟游戏角色;获取单元,用于获取至少一个原始虚拟游戏角色的待继承数据;第二确定单元,用于至少基于待继承数据在游戏场景中确定目标区域,并在目标区域中部署多个目标虚拟游戏角色,其中,目标虚拟游戏角色与原始虚拟游戏角色相关联,目标虚拟游戏角色用于继承待继承数据。
为了实现上述目的,根据本发明的另一方面,还提供了另一种虚拟游戏角色的部署装置。该装置可以包括:第三确定单元,用于响应作用于图形用户界面的第一操作指令,确定至少一个原始虚拟游戏角色,且生成在游戏场景中待部署的多个目标虚拟游戏角色,其中,多个目标虚拟游戏角色与至少一个原始虚拟游戏角色相关联,目标虚拟游戏角色用于继承原始虚拟游戏角色的待继承数据;显示单元,用于响应作用于图形用户界面的第二操作指令,在图形用户界面上显示目标区域,并在目标区域中部署多个目标虚拟游戏角色,其中,目标区域至少根据待继承数据在游戏场景中确定出。
为了实现上述目的,根据本发明的另一方面,还提供了一种计算机可读存储介质。该计算机可读存储介质中存储有计算机程序,其中,在计算机程序被处理器运行时控制计算机可读存储介质所在设备执行本发明实施例的虚拟游戏角色的部署方法。
为了实现上述目的,根据本发明的另一方面,提供了一种电子装置。该电子装置包括存储器和处理器,其特征在于,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行本发明实施例的虚拟游戏角色的部署方法。
在该实施例中,确定至少一个原始虚拟游戏角色;获取至少一个原始虚拟游戏角色的待继承数据;至少基于待继承数据在游戏场景中确定目标区域,并在目标区域中部署多个目标虚拟游戏角色,其中,目标虚拟游戏角色与原始虚拟游戏角色相关联,目标虚拟游戏角色用于继承待继承数据。也就是说,本申请对虚拟游戏角色的数据进行抽象,通过多个目标虚拟游戏角色继承至少一个原始虚拟游戏角色的待继承数据,这样多个目标虚拟游戏角色就没必要记录待继承数据了,进而至少通过待数据实现对多个目标虚拟游戏角色在游戏场景中的部署,解决了虚拟游戏角色的数据对磁盘和内存空间的占用率高的技术问题,达到了降低虚拟游戏角色的数据对磁盘和内存空间的占用率的技术效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种虚拟游戏角色的部署方法的移动终端的硬件结构框图;
图2A是根据本发明实施例的一种虚拟游戏角色的部署方法的流程图;
图2B是根据本发明实施例的另一种虚拟游戏角色的部署方法的流程图;
图3是根据相关技术中的一种单位部署的示意图;
图4是根据相关技术中的一种单位的示意图;
图5是根据相关技术中的另一种单位部署的示意图;
图6是根据相关技术中的另一种单位部署的示意图;
图7是根据本发明实施例的一种新建基础单位的示意图;
图8A是根据本发明实施例的一种实例化单位和基础单位的关系的示意图;
图8B是根据本发明实施例的一种常规单位窗口和模板库窗口的示意图;
图8C是根据本发明实施例的另一种实例化单位和基础单位的关系的示意图;
图9是根据本发明实施例的一种默认单位模板的数据、基础单位的数据、实例化单位的数据之间的关系的示意图;
图10是根据本发明实施例的一种小队结构的示意图;
图11是根据本发明实施例的一种PNG阵营染色功能的示意图;
图12是根据本发明实施例的一种地形网格权重的示意图;
图13是根据本发明实施例的一种地形网格的可视化表现的示意图;
图14是根据本发明实施例的一种未显示怪物分布热力图的表现;
图15是根据本发明实施例的一种显示怪物分布热力图的示意图;
图16是根据本发明实施例的一种单位分布情况的局部鸟瞰图;
图17是根据本发明实施例的一种大世界自动加权随机部署所有单位的执行方法的流程图;
图18是根据本发明实施例的一种单位部署时的数据结构的示意图;
图19A是根据本发明实施例的一种地形网格的容量的示意图;
图19B是根据本发明实施例的一种区域属性限制的最大队伍数的示意图;
图19C是根据本发明实施例的一种大世界自动加权随机部署单位执行日志的示意图;
图20是根据本发明实施例的一种单位编辑器中触发大世界自动加权随机部署单位的示意图;
图21是根据本发明实施例的一种通过POPO指令触发大世界自动加权随机部署单位的示意图;
图22A是根据本发明实施例的一种虚拟游戏角色的部署装置的示意图;
图22B是根据本发明实施例的另一种虚拟游戏角色的部署装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种虚拟游戏角色的部署方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的一种数据处理的方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器202远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述移动终端的一种虚拟游戏角色的部署方法,图2A是根据本发明实施例的一种虚拟游戏角色的部署方法的流程图。如图2A所示,该方法可以包括如下步骤:
步骤S202,确定至少一个原始虚拟游戏角色。
在本发明上述步骤S202提供的技术方案中,可以是确定游戏场景中的至少一个原始虚拟游戏角色,该游戏场景可以为大世界场景,也即,一种巨大的游戏场景,比如,大世界面积为16k*16k,仅靠单个游戏进程无法承载整个场景,会通过将单个大的场景根据物理位置拆分成多个部分分散在多个进程承载其业务逻辑运行,玩家在游戏场景中移动涉及到服务器进程的切换,对于客户端玩家来说无感知,达到无缝体验。
可选地,在该实施例的游戏场景中可以部署的虚拟角色也可以称为单位,其可以为游戏场景中的非玩家控制角色(Non-Player Character,简称为NPC)。
该实施例的上述每个原始虚拟游戏角色也可以称为基础单位,其类似于面向对象语言中的父类,保存的是一类虚拟游戏角色的基础属性,以用于被继承。可选地,该实施例的至少一个原始虚拟游戏角色可以由用户进行创建,比如,游戏策划人员或开发人员可以通过在模板库窗口新建至少一个原始虚拟游戏角色。
步骤S204,获取至少一个原始虚拟游戏角色的待继承数据。
在本发明上述步骤S204提供的技术方案中,在确定至少一个原始虚拟游戏角色之后,获取至少一个原始虚拟游戏角色的待继承数据(一个python dict数据)。
在该实施例中,获取到的至少一个原始虚拟游戏角色的待继承数据可以为属性数据,其可以由其它的需要在游戏场景中部署的目标虚拟游戏角色继承。可选地,在模板库窗口中选中至少一个原始虚拟游戏角色之后,可以显示出至少一个虚拟游戏角色的上述待继承数据,其可以是在单位基础属性面板处进行显示,在此处也可以对至少一个虚拟游戏角色的待继承数据进行编辑。
可选地,上述待继承数据可以包括在通过默认单位模板(一个python dict数据)记录的一个完整的虚拟游戏角色在游戏场景中部署所需要的数据中,该数据可以是部署虚拟游戏角色所需要的所有默认数据,通过其可以创建出一个默认的虚拟游戏角色。可选地,该实施例的默认单位模板可以只有一份数据,该一份数据可以由程序进行控制,而用户无权配置,这份数据主要是作为对于数据完整性的一个最低保障。
可选地,该实施例的待继承数据可以是原始虚拟游戏角色的阵营属性、对于游戏场景中每一种地形地貌的随机概率设置的权重,以及除了目标虚拟游戏角色的标识、位置、继承的至少一个原始虚拟游戏角色的标识之外的其它用于目标虚拟游戏角色在游戏场景中进行部署所需要的数据等,此处不做具体限制。
步骤S206,至少基于待继承数据在游戏场景中确定目标区域,并在目标区域中部署多个目标虚拟游戏角色,其中,目标虚拟游戏角色与原始虚拟游戏角色相关联,目标虚拟游戏角色用于继承待继承数据。
在本发明上述步骤S206提供的技术方案中,在获取至少一个原始虚拟游戏角色的待继承数据之后,至少基于待继承数据在游戏场景中确定目标区域,并在目标区域中部署多个目标虚拟游戏角色。
在该实施例中,多个目标虚拟游戏角色为需要在游戏场景中部署的对象,其总数量不是普通游戏可以比拟的,可以很大,比如,不低于10万,以给玩家带来较好的体验。该实施例的多个目标虚拟游戏角色与原始虚拟游戏角色相关联,该关联关系可以是指目标虚拟游戏角色的部署需要借助于原始虚拟游戏角色来实现的关系,可以是目标虚拟游戏角色与原始虚拟游戏角色之间的映射关系,也即,当确定了原始虚拟游戏角色时,可以根据映射关系确定继承原始虚拟游戏角色的对象为目标虚拟游戏角色,当确定了目标虚拟游戏角色时,可以根据映射关系确定目标虚拟游戏角色所继承的对象为原始虚拟游戏角色,可选地,上述关系包括目标虚拟游戏角色继承原始虚拟游戏角色的待继承数据的关系。可选地,当部署目标虚拟游戏角色所需要的数据包括原始虚拟游戏角色的待继承数据,且原始虚拟游戏角色的待继承数据允许被目标虚拟游戏角色继承时,则可以建立上述关联关系,尤其是在目标虚拟游戏角色的数量大于目标阈值的情况下,其中,目标阈值为用于衡量目标虚拟游戏角色的数量比较大的临界值,以避免对每个目标虚拟游戏角色的待继承数据还要分别进行存储。可选地,接收并响应用户的选取操作指令,可以选取原始虚拟游戏角色作为被继承的对象,选取目标虚拟游戏角色作为继承原始虚拟游戏角色的对象,进而建立原始虚拟游戏角色与目标虚拟游戏角色之间的上述关联关系。
可选地,上述获取至少一个原始虚拟游戏角色的待继承数据也是由于多个目标虚拟游戏角色可以继承至少一个原始虚拟游戏角色的待继承数据,进而基于该待继承数据在游戏场景中确定出目标区域,该目标区域也即多个目标虚拟游戏角色进行部署时的分布区域,进而在该目标区域中对多个目标虚拟游戏角色进行自动部署。
可选地,该实施例的上述目标虚拟游戏角色可以为相对于上述基础单位而言的实例化单位,其对应于面向对象语言中的子类。在该实施例中,目标虚拟游戏角色有一个特殊的属性条目为继承的原始虚拟游戏角色标识(ID),其也可以称为继承的基础单位ID,用于选择目标虚拟游戏角色需要继承的原始虚拟游戏角色的ID,进而基于所选择的原始虚拟游戏角的待继承数据在游戏场景中确定目标区域,并在目标区域中自动部署多个目标虚拟游戏角色。可选地,当检测到已设置原始虚拟游戏角色,待部署的目标虚拟游戏角色所需要的数据包括上述原始虚拟游戏角色的待继承数据,且原始虚拟游戏角色的待继承数据允许被继承时,则可以使得上述属性条目标非空,也即,可以在属性条目处设置原始虚拟游戏角色标识,以表示目标虚拟游戏角色可以继承原始虚拟游戏角色的待继承数据;可选地,当未检测到已设置原始虚拟游戏角色,或者虽然已设置原始虚拟游戏角色,但待部署的目标虚拟游戏角色所需要的数据未包括上述原始虚拟游戏角色的待继承数据,或者虽然已设置原始虚拟游戏角色,且待部署的目标虚拟游戏角色所需要的数据包括上述原始虚拟游戏角色的待继承数据,但原始虚拟游戏角色的待继承数据不允许被目标虚拟游戏角色所继承,则可以使得上述属性条目标为空。
作为一种可选的实施方式,获取目标模板,并基于目标模板中的数据建立目标虚拟游戏角色;检测到原始虚拟游戏角色,并获取目标虚拟游戏角色的数据与原始虚拟游戏角色的数据中的相同数据;将相同数据确定为待继承数据,并在目标虚拟游戏角色的数据中删除待继承数据;记录删除待继承数据后的目标虚拟游戏角色的数据。
在该实施例中,上述目标模板可以为默认单位模板,其可以记录有一个完整的虚拟游戏角色所需要的数据。该实施例可以先拷贝上述目标模板中的数据,基于该目标中的数据新建出一个目标虚拟游戏角色,该目标虚拟游戏角色中可以默认原始虚拟游戏角色标识的条目数据为空,因而目标虚拟游戏角色的状态对应于没有继承父类的类,这时需要保存的是目标虚拟游戏角色的全量数据。可选地,检测到原始虚拟游戏角色,可以设置原始虚拟游戏角色标识的条目数据非空,也即,检测到了一个原始虚拟游戏角色作为被继承对象,可以获取目标虚拟游戏角色的数据与原始虚拟游戏角色的数据中的相同数据,该相同数据可以由目标虚拟游戏角色从原始虚拟游戏角色中继承,从而可以将该相同数据确定为待继承数据,在目标虚拟游戏角色的数据中删除该待继承数据,这时只需要记录删除待继承数据后的目标虚拟游戏角色的数据,而没必要再去记录待继承数据了。
作为另一种可选的实施方式,响应作用于编辑器上的选择操作指令,选择原始虚拟对象;当成功选择原始虚拟对象时,编辑器确定已检测到原始虚拟游戏角色,删除目标虚拟游戏角色的数据与原始虚拟游戏角色的数据中的相同数据。
在该实施例中,用户可以对编辑器进行触发,产生选择操作指令,该选择操作指令可以用于选择一个原始虚拟游戏角色,从而编辑器响应该选择操作指令,选择了一个原始虚拟游戏角色作为被继承对象。当成功选择原始虚拟对象时,编辑器确定已检测到原始虚拟游戏角色,此时编辑器就会获取目标虚拟游戏角色的数据与原始虚拟游戏角色的数据中的相同数据,可以删除目标虚拟游戏角色中的上述相同数据,此时目标虚拟游戏角色保留的是删除相同数据后的目标虚拟游戏角色的数据。因为在对目标虚拟游戏角色进行部署时所需要的上述相同数据是可以通过获取原始虚拟游戏角色的待继承数据而实现的,这样目标虚拟游戏角色就没必要再去记录了,而仅需要记录删除相同数据后的目标虚拟游戏角色的数据,从而可以降低虚拟游戏角色的数据对磁盘和内存空间的占用率。其中,上述编辑器可以为单位编辑器,其为一套基于Sunshine编辑器开发的用于编辑游戏单位数据的插件,其中包含了大量对于虚拟游戏角色操作的功能。
可选地,在编辑器中选择了继承的原始虚拟游戏角色标识后,又对目标虚拟游戏角色进行了修改,那么可以理解成需要调整默认单位模板的默认数据,类似于类数据的重写,则需要覆盖原始虚拟游戏角色的数据,编辑器会重新保留这个数据条目的数据。因而,该实施例的目标虚拟游戏角色最终保存的是和所继承的原始虚拟游戏角色所不同的部分数据,也即,为目标虚拟游戏角色的数据中不同于待继承数据的数据,是一份缺省的数据,且也可以称为增量数据(一个python dict数据),也用于对目标虚拟游戏角色在游戏场景中进行自动部署。
由上述可知,在该实施例中,对虚拟游戏角色的数据进行了抽象,将虚拟游戏角色的数据抽象成了默认单位模板、对应于面向对象语言的父类的至少一个原始虚拟游戏角色(基础单位)、对应于面向对象语言的子类的多个目标虚拟游戏角色(实例化单位)三大类数据类型。如果现在游戏场景中部署多个目标虚拟游戏角色,在现有的相关技术中,需要新建并保存多个目标虚拟游戏角色的完整数据。而在该实施例中,只需要新建至少一个原始虚拟游戏角色,对于每个原始虚拟游戏角色而言,可以新建多个目标虚拟游戏角色去继承上述每个原始虚拟游戏角色的待继承数据,也即,每个实例化单位只能继承一个单位,每个目标虚拟游戏角色需要保留的数据可能仅仅是目标虚拟游戏角色的标识、位置、继承的至少一个原始虚拟游戏角色的标识这三个信息,其余数据可以由至少一个原始虚拟游戏角色作为待继承数据来提供,其中,标识可以为编号,从而大大地提高了用户对于部署目标虚拟游戏角色的数据准备时的效率,从而实现了对目标虚拟游戏角色的数据的高效管理,并且目标虚拟游戏角色的数据的磁盘占用率也可以降低到传统数据存储方案的1/5,从而极大地降低了目标虚拟游戏角色的数据对于磁盘和内存空间的占用率。
举例而言,用于在游戏场景中部署ID为“121212121”的目标虚拟游戏角色的数据其实大部分数据是和ID为“base|1000000012”的原始虚拟游戏角色的数据基本保持一致,也就是说,目标虚拟游戏角色实际保留的缺省的增量数据非常的少,可以仅需要留编号,继承的原始虚拟游戏角色的编号、位置、角度、单位头衔这五个条目信息,比起全量保存单位信息,显而易见地节省了的磁盘以及内存空间的占用率。
通过本申请上述步骤S202至步骤S206,确定至少一个原始虚拟游戏角色;获取至少一个原始虚拟游戏角色的待继承数据;至少基于待继承数据在游戏场景中确定目标区域,并在目标区域中部署多个目标虚拟游戏角色,其中,目标虚拟游戏角色与原始虚拟游戏角色相关联,目标虚拟游戏角色用于继承待继承数据。也就是说,本申请对虚拟游戏角色的数据进行抽象,通过多个目标虚拟游戏角色继承至少一个原始虚拟游戏角色的待继承数据,这样多个目标虚拟游戏角色就没必要记录待继承数据了,进而至少通过待数据实现对多个目标虚拟游戏角色在游戏场景中的部署,解决了虚拟游戏角色的数据对磁盘和内存空间的占用率高的技术问题,达到了降低虚拟游戏角色的数据对磁盘和内存空间的占用率的技术效果。
下面对该实施例的简化游戏场景的虚拟游戏角色的数据管理方法进行介绍。
作为一种可选的实施方式,该方法还包括:将至少一个原始虚拟游戏角色划分为第一数量的原始虚拟游戏角色集合;在多个目标虚拟游戏角色中,获取关联每个原始虚拟游戏角色集合的第二数量的目标虚拟游戏角色集合,其中,每个目标虚拟游戏角色集合的阵营属性相同,每个目标虚拟游戏角色集合的阵营属性用于表示每个目标虚拟游戏角色集合所属的阵营;步骤S204,获取至少一个原始虚拟游戏角色的待继承数据,包括:获取第一数量的原始虚拟游戏角色集合的待继承数据;在目标区域中部署多个目标虚拟游戏角色,包括:在目标区域中部署关联每个原始虚拟游戏角色集合的第二数量的目标虚拟游戏角色集合。
在该实施例中,为了方便对虚拟游戏角色的数据进行管理,可以将一些虚拟游戏角色组织成集合,通过集合统一管理,比如,将一些单位组织成小队,该小队包括多个单位,以通过小队人工智能(Artificial Intelligence,简称为AI)进行统一管理。该实施例可以将至少一个原始虚拟游戏角色划分为第一数量的原始虚拟游戏角色集合,其可以是第一数量的基础小队。该实施例可以在多个目标虚拟游戏角色中,获取关联每个原始虚拟游戏角色集合的第二数量的目标虚拟游戏角色集合,可以通过编辑器批量生成第二数量的目标虚拟游戏角色集合,其可以继承每个原始虚拟游戏角色集合的待继承数据,可以是第二数量的实例化小队。该实施例可以对游戏场景进行自动部署的时候实际上部署的是各个目标虚拟游戏角色集合。
可选地,在该实施中,每个目标虚拟游戏角色集合可以包括相同数量的目标虚拟游戏角色,且每个目标虚拟游戏角色集合的阵营属性相同,比如,继承同一个基础小队的实例化小队会拥有相同的队员数量,以及相同的阵营属性,以对其进行批处理,其中,队员相当于上述的目标虚拟游戏角色,每个目标虚拟游戏角色集合的阵营属性用于表示每个目标虚拟游戏角色集合所属的阵营,从而该实施例可以是在目标区域中部署关联每个原始虚拟游戏角色集合的第二数量的目标虚拟游戏角色集合。
作为一种可选的实施方式,获取第一数量的原始虚拟游戏角色集合的待继承数据,包括:确定第一数量的原始虚拟游戏角色集合的阵营属性,其中,每个原始虚拟游戏角色集合的阵营属性用于表示每个原始虚拟游戏角色集合所属的阵营,待继承数据包括阵营属性。
在该实施例中,原始虚拟游戏角色集合的待继承数据除了包括一些必要的属性之外,还可以包括阵营属性,通过该阵营属性可以确定每个原始虚拟游戏角色集合所属的阵营,从而该实施例可以确定第一数量的原始虚拟游戏角色集合的阵营属性,这样多个目标虚拟游戏角色就可以直接继承该阵营属性。
作为一种可选的实施方式,步骤S206,至少基于待继承数据在游戏场景中确定目标区域,包括:至少基于第一数量的原始虚拟游戏角色集合的阵营属性,在游戏场景中确定出目标区域,其中,至少一个原始虚拟游戏角色包括第一数量的原始虚拟游戏角色集合,待继承数据包括阵营属性。
在该实施例中,可以在确定第一数量的原始虚拟游戏角色集合的阵营属性之后,多个目标虚拟游戏角色继承该阵营属性,该阵营属性用于划分多个目标虚拟游戏角色可以分配到的区域,可以至少基于该阵营属性在游戏场景中确定出目标区域,进而对多个目标虚拟游戏角色在目标区域中进行部署。
作为一种可选的实施方式,该方法还包括:确定游戏场景中地形的多个地形网格的阵营属性,其中,每个地形网格的阵营属性用于表示每个地形网格所属的阵营;至少基于第一数量的原始虚拟游戏角色集合的阵营属性,在游戏场景中确定出目标区域,包括:基于多个地形网格的阵营属性和第一数量的原始虚拟游戏角色集合的阵营属性,在多个地形网格中确定每个原始虚拟游戏角色集合对应的多个子地形网格,其中,每个子地形网格的阵营属性与每个原始虚拟游戏角色集合的阵营属性相同;至少基于多个子地形网格在游戏场景中确定出目标区域。
在该实施例中,为了让所有的目标虚拟游戏角色集合在目标地区之内进行随机部署,可以将游戏场景分割成多个地形网格,比如,将16K*16K的无缝开发游戏场景分割成无数个64m*64m的地形网格,每个网格除了一些必要的属性外,还包含阵营属性,其用于表示每个地形网格所属的阵营。在对多个目标虚拟游戏角色集合进行部署时,可以基于多个地形网格的阵营属性和第一数量的原始虚拟游戏角色集合的阵营属性,在多个地形网格中确定每个原始虚拟游戏角色集合对应的多个子地形网格,这种对应关系可以是多个目标虚拟游戏角色集合可以被随机分配到和自己相同阵营属性的子地形网格上,比如,被随机分配到和自己相同阵营属性的地形网格的AI出生点上,该AI出生点可以确保目标虚拟游戏角色一定部署在地形网格上,确保目标虚拟游戏角色可以正常执行AI逻辑,从而上述和多个目标虚拟游戏角色集合相同阵营属性的地形网格的AI出生点可以为地形网格上符合部署目标虚拟游戏角色的要求的点,进而至少基于多个子地形网格在游戏场景中确定出目标区域,这样就可以保证用户随心所欲的控制目标虚拟游戏角色的目标区域。
需要说明的是,该实施例的上述阵营属性只能由用户通过目标图形文件进行设置,不会随地形的变化而改变,其中,目标图形文件可以为可移植网络图形格式(PortableNetwork Graphic Format,简称为PNG)文件。
作为一种可选的实施方式,可选地,在多个地形网格中确定每个原始虚拟游戏角色集合对应的多个子地形网格之后,该方法还包括:确定每个原始虚拟游戏角色集合分配到每个子地形网格的分配概率;至少基于多个子地形网格在游戏场景中确定出目标区域,包括:基于多个子地形网格和分配概率在游戏场景中确定出目标区域。
在该实施例中,为了使得游戏场景中的目标虚拟游戏角色所部署的目标区域更为合理,比如,目标虚拟游戏角色为鲨鱼,其只能在水域,目标虚拟游戏角色为骆驼,其只能在沙漠,该实施例使用了加权随机分布的方法。该实施例可以确定每个原始虚拟游戏角色集合分配到每个子地形网格的分配概率,可以是确定每个子地形网格对应的权重,该权重可以用于表示每个原始虚拟游戏角色集合分配(部署)到每个子地形网格的目标位置(AI出生点)上的分配概率,而实际分配到每个子地形网格上的是继承每个原始虚拟游戏角色集合的目标虚拟游戏角色集合,也即,该实施例的每个子地形网格所包含的权重记录的是每一种基础小队分配到该子地形网格的概率,而实际分配到每个子地形网格上的是继承该基础小队的实例化小队,其中,权重和地形有关,可以由预置的配表决定,但是对于地形网格而言,可以理解为地形已知,同理权重也已知。
在该实施例中,上述权重可以存储在表格中(execl文件),地形网格对应的地理信息可以包括子地形网格的地形、地貌。可选地,由于该实施例部署的目标虚拟游戏角色集合继承了原始虚拟游戏角色集合,因而上述权重可以是对每个原始虚拟游戏角色集合属于具有每个子地形网格对应的地理信息的区域的随机概率,而所设置的一个加权值(对于每一种地形地貌的随机概率设置的一个加权值),其越大,则表示与每个原始虚拟游戏角色集合关联的第二数量的目标虚拟游戏角色集合被分配到具有子地形网格对应的地理信息的区域的概率就越大,也即,具有子地形网格对应的地理信息的区域成为目标区域的概率就越大。
在确定每个子地形网格对应的地理信息的权重之后,可以基于多个子地形网格和每个子地形网格对应的地理信息的权重在游戏场景中确定出目标区域,可以将游戏场景的虚拟游戏角色部署的更加合理以及合法,增强玩家的游戏代入感。
举例而言,目标虚拟游戏角色可以为鲨鱼,将鲨鱼所属的原始虚拟游戏角色集合在水域的权重设置成100,从而水域成为目标区域的概率就很大,然后其它地形、地貌的权重设置成0,也即,其它地形、地貌成为目标区域的概率就很小,则鲨鱼部署到的目标区域可以只为水域。如果目标虚拟游戏角色为鹿,可以将鹿所属的至少一个原始虚拟游戏角色集合在森林的权重设置成1000,在平原的权重设置成10,则所有鹿部署到的目标区域可以主要是森林,而只有少数是平原,这样可以使得游戏场景的虚拟游戏角色的部署更加合理以及合法,增强玩家的游戏代入感。
作为一种可选的实施方式,在确定游戏场景中地形的多个地形网格的阵营属性之前,该方法还包括:通过目标图形文件获取阵营数据,其中,目标图形文件的像素尺寸与游戏场景的面积成目标比例;确定游戏场景中地形的多个地形网格的阵营属性,包括:基于阵营数据确定多个地形网格的阵营属性。
在该实施例中,为了简化设置地形网格的阵营属性的操作,该实施例可以采用通过目标图形文件导入阵营数据,通过该阵营数据确定多个地形网格的阵营属性,其中,目标图形文件可以为PNG文件。在该实施例中,目标图形文件可以为一张和游戏场景的地图等比缩放成512*512像素的PNG图,通过对目标图形文件进行染色,然后将染色后的目标图形文件导入系统,系统会自动对目标图形文件中的阵营数据进行解析,得到游戏场景的地图对应的多个地形网格所属的阵营属性,然后将该多个地形网格设置成对应的阵营属性。
在该实施例中,为了确保对目标图形文件染色正确,系统提供了文件导入预览功能,可以将染色后的各个地形网格的阵营属性的情况反向生成各个阵营分布的情况图,以供用户校验导入的这张目标图形文件是否达到想要的阵营设置效果(预览功能不会真正修改地形网格的阵营属性,只产出阵营的分布图,主要是避免染色时候产生的误差)。如果预览图无误,用户就可以正式执行目标图形文件的导入,通过目标图形文件获取阵营数据,基于阵营数据确定多个地形网格的阵营属性,进而对多个地形网格的阵营属性进行批量设置。
作为一种可选的实施方式,在步骤S206,至少基于待继承数据在游戏场景中确定目标区域之前,该方法还包括:在游戏场景的地形上确定多个预定位置,其中,每个预定位置用于使部署到每个预定位置上的虚拟游戏角色执行的目标逻辑处于正常状态;至少基于待继承数据在游戏场景中确定目标区域,包括:在多个预定位置中,基于待继承数据确定多个目标位置,其中,多个目标位置为符合部署多个目标虚拟游戏角色的位置;在目标区域中部署多个目标虚拟游戏角色,包括:在多个目标位置上部署多个目标虚拟游戏角色。
在该实施例中,为了确保目标虚拟游戏角色一定部署在地形网格上,确保目标虚拟游戏角色执行的目标逻辑处于正常状态,可以在游戏场景的地形上确定多个预定位置,该每个预定位置用于使部署到每个预定位置上的虚拟游戏角色执行的目标逻辑处于正常状态,比如,多个预定位置为大量的AI出生点,可以是事先通过撒点的方式,在地形上撒上大量的AI出生点,可以确保单位分配到这个AI出生点上后处于导航网格上,且可以确保正常执行AI逻辑。该实施例可以在上述多个预定位置中,基于待继承数据确定符合部署目标虚拟游戏角色要求的多个目标位置,由于待继承数据包括原始虚拟游戏角色集合的阵营属性,可以是结合对于地形网格的阵营属性(地形数据)的提取,在多个预定位置中保留地形网格的阵营属性与每个原始虚拟游戏角色集合的阵营属性相同的多个目标位置,将该多个目标位置作为目标虚拟游戏角色集合的分配点,进而在多个目标位置上部署多个目标虚拟游戏角色,从而确保目标虚拟游戏角色的位置的合法性。可选地,该实施例在每次地形变化或采集资源更新时,都会自动触发上述流程,确保了AI出生点的正确性。上述步骤是对于用户无感的,用户在部署目标虚拟游戏角色的时候是不需要关心的。
需要说明的是,该实施例的上述目标虚拟游戏角色集合只能部署在AI出生点(具体是目标位置)上,该AI出生点可以保证在其上分布目标虚拟游戏角色集合之后,虚拟游戏角色集合的导航、寻路逻辑可以正常执行,如果目标虚拟游戏角色集合未分配到AI出生点上,则有可能出现AI行为异常的情况。
作为一种可选的实施方式,该方法还包括:在检测到游戏场景中地形变化的情况下,对多个预定位置进行调整,并确定每个原始虚拟游戏角色集合分配到变化后的地形的每个地形网格的分配概率;至少在多个预定位置中,基于待继承数据确定多个目标位置,包括:在调整后的多个预定位置中,基于待继承数据和分配概率确定多个目标位置。
在该实施例中,每个地形网格的地理信息在每次地形变化之后都是确定的。游戏场景中地形变化改变的是地形网格的预定位置的位置信息,比如,地形变化改变的是该地形网格的AI出生点的位置信息。并且由于每个目标虚拟游戏角色集合分配到地形网格的预定位置(比如,地形网格的AI出生点)的分配概率,是通过该地形网格的地理信息(地形、地貌)控制的,因而地形变化也影响每个原始虚拟游戏角色集合分配到地形网格的分配概率(实际分配的是继承该原始虚拟游戏角色集合的目标虚拟游戏角色集合),也即,地形变化影响该地形网格对于每个AI小队的分配概率,比如,当地形变化时,有可能地形网格之前对应的水域变成了沙漠,这时候对于各个目标虚拟游戏角色集合,分配到该地形网格上的概率是发生变化的,之前分配到这里的鲨鱼,显然需要调整到其它区域,就不能出现在现在的沙漠中。
该实施例可以在调整后的多个预定位置中,基于待继承数据和上述分配概率确定多个目标位置。由于待继承数据包括原始虚拟游戏角色集合的阵营属性,可以是结合对于地形网格的阵营属性的提取,在多个预定位置中保留地形网格的阵营属性与每个原始虚拟游戏角色集合的阵营属性相同,且满足上述分配概率的多个目标位置,其中,每个目标位置所在的地形网格的。
需要说明的是,该实施例的地形变化只会调整各个原始虚拟游戏角色集合分配到地形网格上的预定位置的分配概率以及预定位置的位置信息,而不会修改地形网格的阵营属性,该地形网格的阵营属性可以由用户通过修改PNG图实现;随着地形变化,预定位置也会做新的校准,以确保虚拟游戏角色集合在分配到这个预定位置上之后,其导航、寻路等AI逻辑可以正常执行,从而避免AI逻辑出现异常的情况发生。
为了避免游戏场景中地形发生变化时,由于用户没有及时重新部署目标虚拟游戏角色而导致的目标虚拟游戏角色表现异常,该实施例新增了一个自动化流程,当检查到游戏场景中地形发生变化,则会自动触发自动部署目标虚拟游戏角色的流程,可以对多个预定位置进行调整,并确定每个原始虚拟游戏角色集合分配到变化后的地形的每个地形网格的分配概率,在调整后的多个预定位置中,基于待继承数据和分配概率确定多个目标位置,以此实现自适应地形变化,达到一次配置永久有效的效果,避免了每当地形变化都需要用户重新部署游戏场景中的目标虚拟游戏角色的问题。
需要说明的是,该实施例在地形变化后,调整的是各个原始虚拟游戏角色集合分配到地形网格上的预定位置的分配概率以及预定位置的位置信息,如果不进行上述自动化流程去校准上述分配概率以及位置信息,则目标虚拟游戏角色集合没有分配在预定位置,会导致虚拟游戏角色集合执行的目标逻辑异常。
作为一种可选的实施方式,步骤S206,在目标区域中部署多个目标虚拟游戏角色包括:确定与目标区域对应的第三数量,其中,第三数量为目标区域允许部署的目标虚拟游戏角色的最大数量;在目标区域中部署不超过第三数量的目标虚拟游戏角色。
在该实施例中,在实现在目标区域中部署多个目标虚拟游戏角色时,除了会确保目标虚拟游戏角色集合会以权重随机分配到和自己拥有相同阵营属性的子地形网格上的预定位置上之外,还可以是确定目标区域对应的第三数量,该第三数量为目标区域允许部署的目标虚拟游戏角色的最大数量,可以确定部署的目标虚拟游戏角色在目标区域中的密度,该实施例可以在目标区域中部署不超过第三数量的目标虚拟游戏角色,从而达到对目标虚拟游戏角色的密度进行有效控制。
可选地,在预定位置上对目标虚拟游戏角色集合进行部署之前,该实施例还可以对目标虚拟游戏角色的密度进行多个维度的控制,可以是在64*64m、128*128m、256*256m、2048*2048m四个范围内最多各部署多少个目标虚拟游戏角色,以及整个游戏场景中最多部署多少个目标虚拟游戏角色。该实施例可以先计算各个目前仍有容量剩余的地形网格是否符合五种粒度的密度控制,也就是检查如果在某个地形网格上分配上目前待分配的目标虚拟游戏角色集合,是否满足在64m*64m的范围不超过a个单位,在128m*128m的范围内不超过b个单位,在256m*256m的范围内不超过c个单位,在2048m*2048m的范围内不超过d个单位,在整个大世界范围内不超过e个单位的这五种范围粒度的数量限制规则。如果不满足,则会将这个地形网格从本次的随机库中暂时排除,仅提取出所有符合规则的地形网格,组成新的临时随机库。需要说明的是,这里进行单位密度规则检查的地形网格都是还有网格容量剩余的,仅仅是不符合当前类型的目标虚拟游戏角色的分配,可能可以被其他目标虚拟游戏角色使用,所以是暂时过滤,而不是直接从待选库中删除。
其中,上述a,b,c,d,e并不直接满足倍数关系,因为我允许局部小范围内的目标虚拟游戏角色位密集,但整体上需要趋于平衡,比如,可以设置a=8,b=16,c=40,d=1600,e=10w(当前参数仅做示例),以此达到在宏观角度的目标虚拟游戏角色是趋于平稳分布的,但是局部存在密度比较高的情况,比如,可能某些地方为了配合某些玩法,以及使得游戏场景看起来比较自然,64m*64m的范围内可以部署8个目标虚拟游戏角色,远大于10w个目标虚拟游戏角色平均分配到16*1024m*16*1024m(16k*16k)的整个游戏场景中得出的1.52个目标虚拟游戏角色的结果。
可选地,如果某些地形网格在某个目标虚拟游戏角色集合分配结束后,不能再容纳更多的目标虚拟游戏角色集合时,则可以自动剔除所有剩余的预定位置,确保不会再有目标虚拟游戏角色集合被分配至此。由于各种限制,所以不能避免的是在部分极端情况下,会有剩余的虚拟游戏角色集合无法正常分配到合法的预定位置上,此时可以将目标虚拟游戏角色集合的是否在游戏场景中创建的属性设置成假(False),并在本次分配结束后将所有异常的目标虚拟游戏角色集合分配失败的原因反馈给用户,以使用户进行解决。
可选地,每个地形网格的容量大小由该地形网格范围内的预定位置的数量以及区域属性共同确定,地形网格的容量=min(该地形网格范围内的预定位置的数量,区域属性对应的最大目标虚拟游戏角色集合的数量)。
作为一种可选的实施方式,在目标区域中部署多个目标虚拟游戏角色之后,该方法还包括:生成热力图,其中,热力图用于表征多个目标虚拟游戏角色在游戏场景中的分布情况。
在该实施例中,为了方便用户确认本次部署多个目标虚拟游戏角色的结果是否符合预期,该实施例开发了在游戏场景中生成多个目标虚拟游戏角色的热力图的功能,该热力图也即怪物分布热力图,可以将当前游戏场景的多个目标虚拟游戏角色的大体分布情况做一个可视化的展示,便于用户直观了解到当前游戏场景中所有的目标虚拟游戏角色的分布情况,比如,热力图展示的多个目标虚拟游戏角色在游戏场景的东南部布置。
该实施例通过上述方法可以有效地控制多个目标虚拟游戏角色在游戏场景中合理地分布。第二数量的目标虚拟游戏角色在游戏场景中的分布是符合随机性分布原则的,然后对比每个地形网格上的目标虚拟游戏角色集合,会发现每个目标虚拟游戏角色集合出现的概率,是符合它所继承的原始虚拟游戏角色集合在这个地形网格上的权重对应的概率的。
作为一种可选的实施方式,在步骤S204,获取至少一个原始虚拟游戏角色的待继承数据之后,该方法还包括:对待继承数据进行变更;至少基于待继承数据在游戏场景中确定目标区域,包括:至少基于变更后的待继承数据确定目标区域。
在现有的相关技术中,由于是新建并保存多个目标虚拟游戏角色的完整数据,如果目标虚拟游戏角色的某个数据需要进行调整,则需要用户手动修改每个目标虚拟游戏角色的数据。而在该实施例中,如果多个目标虚拟游戏角色继承的某个数据需要进行变更,则可以仅需要变更至少一个原始虚拟游戏角色的待继承数据即可,进而至少基于变更后的待继承数据重新确定目标区域,从而大大地提高了后期对目标虚拟游戏角色的数据进行调整的效率,实现了对目标虚拟游戏角色的数据的高效管理。
作为一种可选的实施方式,步骤S206,至少基于待继承数据在游戏场景中确定目标区域,包括:基于待继承数据和多个目标虚拟游戏角色的增量数据确定目标区域,其中,增量数据为目标虚拟游戏角色的数据中不同于待继承数据的数据。
在该实施例中,可以是先获取默认单位模板,然后获取目标虚拟游戏角色所继承的原始虚拟游戏角色的待继承数据,并将其更新(update)到默认单位模板的数据中,最后获取目标虚拟游戏角色的增量数据并更新到先前的数据中,得到的结果就是这个目标虚拟游戏角色需要在游戏场景中进行部署的完整数据,其数据条目数可以有50多条,进而通过该完整数据在游戏场景中确定目标区域,在目标区域中自动部署目标虚拟游戏角色。每个目标虚拟游戏角色均通过上述方法进行自动部署,从而实现了在目标区域中部署海量目标虚拟游戏角色的目的。
作为一种可选的实施方式,在目标区域中部署多个目标虚拟游戏角色之后,该方法还包括:将待继承数据和增量数据上传至服务器中。
该实施例可以将所有的部署目标虚拟游戏角色的待继承数据和增量数据(数据文件)上传到服务器,该服务器可以为开放源代码的版本控制系统(Subversion,简称为SVN)。在成功将目标虚拟游戏角色的数据文件上传到SVN之后,本次部署就结束。
在该实施例中,为了让用户可以更加高效、方便地进行游戏场景的单位部署作业,该实施例可以将复杂的游戏世界部署目标虚拟游戏角色的各个步骤进行了抽象封装,便于用户完成一次目标虚拟游戏角色的部署作业。下面从人机交互侧对其进行进一步介绍。
图2B是根据本发明实施例的另一种虚拟游戏角色的部署方法的流程图。如图2B所示,该方法可以包括以下步骤:
步骤S22,响应作用于图形用户界面的第一操作指令,确定至少一个原始虚拟游戏角色,且生成在游戏场景中待部署的多个目标虚拟游戏角色。
在本发明上述步骤S22提供的技术方案中,多个目标虚拟游戏角色与至少一个原始虚拟游戏角色相关联,目标虚拟游戏角色用于继承原始虚拟游戏角色的待继承数据。
在该实施例中,编辑器中可以显示图形用户界面,用户可以在图形用户界面上触发第一操作指令,该第一操作指令用于确定至少一个原始虚拟游戏角色,以及在游戏场景中待部署的多个目标虚拟游戏角色,可以是在编辑器中,响应上述第一操作指令,一键生成多个目标虚拟游戏角色。
步骤S24,响应作用于图形用户界面的第二操作指令,在图形用户界面上显示目标区域,并在目标区域中部署多个目标虚拟游戏角色。
在本发明上述步骤S24提供的技术方案中,目标区域至少根据待继承数据在游戏场景中确定出。
在该实施例中,用户在图形用户界面上触发第二操作指令,该第二操作指令可以是在图形用户界面上对自动部署按钮进行触发得到,可以响应该第二操作指令,在图形用户界面上显示目标区域,进而在目标区域中自动部署多个目标虚拟游戏角色。
作为一种可选的实施方式,该方法还包括:响应作用于图形用户界面的第三操作指令,导入目标图形文件,其中,目标图形文件的像素尺寸与游戏场景的面积成目标比例;通过目标图形文件获取阵营数据,并基于阵营数据确定游戏场景中地形的多个地形网格的阵营属性;基于多个地形网格的阵营属性和待继承数据在游戏场景中确定目标区域。
在该实施例中,可以先进行目标图形文件(PNG图)批量设置阵营属性,该阵营属性用于划分多个目标虚拟游戏角色可以分配到的区域,然后再执行自动部署单位的指令,也即,该实施例先进行PNG图批量设置阵营属性,然后在图形用户界面上对自动部署按钮进行触发得到第二操作指令,响应该第二操作指令,在图形用户界面上显示目标区域。
可选地,为了对上述阵营属性进行设置,可以接收并响应用户作用在图形用户界面上的第三操作指令,导入目标图形文件,比如,导入PNG图,可以通过目标图形文件获取阵营数据,并基于阵营数据确定游戏场景中地形的多个地形网格的阵营属性。该实施例还可以配置每个原始虚拟游戏角色集合的阵营属性、以及原始虚拟游戏角色集合对于每种地形地貌的权重,进而可以基于多个地形网格的阵营属性、每个原始虚拟游戏角色集合的阵营属性、以及原始虚拟游戏角色集合对于每种地形地貌的权重和待继承数据在游戏场景中确定目标区域,响应上述作用于图形用户界面上的第二操作指令,可以根据上述阵营属性、权重、AI出生点等信息一次性部署有所的虚拟游戏角色,从而实现高效的大世界海量单位快速部署的效果。
作为一种可选的实施方式,该方法还包括:响应作用于图形用户界面的第四操作指令,在图形用户界面上显示热力图,其中,热力图用于表征多个目标虚拟游戏角色在游戏场景中的分布情况。
在该实施例中,用户可以在图形用户界面上触发第四操作指令,比如,该图形用户界面上具有显示热力图按钮,可以对该热力图按钮进行操作,产生第四操作指令,进而响应该第四操作指令,在图形用户界面上显示热力图,可以查看本次部署多个目标虚拟游戏角色后在游戏场景中的大体分布情况,便于用户查看对多个虚拟游戏角色的部署是否符合预期。
作为一种可选的实施方式,该方法还包括:在目标区域中部署多个目标虚拟游戏角色之后,该方法还包括:响应作用于图形用户界面的第五操作指令,将待继承数据和增量数据上传至服务器中。
可选地,图形用户界面上可以显示上传按钮,用户可以对其进行操作,产生第五操作指令,响应该第五操作指令,可以将所有的部署目标虚拟游戏角色的待继承数据和增量数据上传到服务器,该服务器可以为SVN。在成功将目标虚拟游戏角色的数据文件上传到SVN之后,本次部署就结束。
在该实施例中,上述方法可以在单位编辑器内对多个目标虚拟游戏角色进行部署,也可以在提交相关配置文件到SVN后通过POPO指令进行在线的多个目标虚拟游戏角色的自动部署,两者唯一的区别是,通过编辑器端的部署可以通过编辑器的图形用户界面看到本次的多个目标虚拟游戏角色的部署分布情况。
作为一种可选的示例,该实施例的方法可以应用到游戏场景的虚拟游戏角色自动部署系统,首先系统会自动初始化游戏场景中所有的地形网格的信息,将地形网格以阵营进行划分,可以用一个python dict数据记录下每个阵营有哪些地形网格,每个地形网格分别有多大的容量,其中有多少个可用的预定位置以及当前网格的坐标。接下来会初始化每个目标虚拟游戏角色集合的信息,将所有的目标虚拟游戏角色集合按照它们继承的至少一个原始虚拟游戏角色集合的编号进行分组,可以用一个python dict数据进行记录,因为每个继承同一个原始虚拟游戏角色集合的编号的目标虚拟游戏角色集合会拥有相同的目标虚拟游戏角色的数量,以及相同的阵营属性,所以可以进行批处理。
接下来会通过用户配置的分配优先级,对于继承了当前分配优先级最高的原始虚拟游戏角色集合的目标虚拟游戏角色集合进行部署。在部署时,会遍历继承了该原始虚拟游戏角色集合的所有目标虚拟游戏角色集合,对于每个目标虚拟游戏角色集合,可以计算所有当前符合规则的可以允许部署该目标虚拟游戏角色集合的(符合阵营需求,以及密度控制限制)地形网格的权重,权重可以等于当前地形对于该目标虚拟游戏角色集合所继承的原始虚拟游戏角色集合的加权值乘以当前地形网格剩余的预定位置的数量(因为同一个地形网格中每个预定位置都有相同的被分配到的概率),然后进行随机操作,在随机到一个合法的地形网格后,并不会直接执行对目标虚拟游戏角色集合进行分配操作,而是会记录下目标虚拟游戏角色集合的编号和它分配到的地形网格的编号,可以将其保存到self.grid_new_team_list中,然后减少该地形网格的容量以及预定位置的数量(需要注意的是,只进行预分配,并没有实际分配到某个预定位置上)。然后循环执行上述方法,直到所有的目标虚拟游戏角色集合都被分配完之后,通过self.grid_new_team_list中的信息,对于对应的网格中的预定位置进行洗牌算法,可以取出前N个数据(N是当前网格之前预分配到的目标虚拟游戏角色集合的数量),与之前预分配的目标虚拟游戏角色集合的编号一一对应,并对目标虚拟游戏角色集合进行真正的移动操作。
在上述方法中,假设之前需要对一个地形网格进行8次分配,之前需要对于self.grid_npc_pos_info中的数据进行8次“洗牌算法->从列表中取出预定位置的信息->从列表中删除对应的预定位置”这样的操作,以保证每次选出来的预定位置不会是已经使用过的预定位置。而现在的做法只需要进行一次洗牌操作,然后提取出前8个预定位置的信息,一一赋予给各个目标虚拟游戏角色集合即可,从而本次分配的所有目标虚拟游戏角色都被分配到了游戏场景中合适的地方,没有分配异常的目标虚拟游戏角色,且目前数万个目标虚拟游戏角色,一次部署的总时间也短,比如,仅需5~6分钟,极大地提高对目标虚拟游戏角色进行部署的效率,整体反馈较好。
该实施例通过对虚拟游戏角色的数据的进一步的抽象、组合,极大程度上的降低了虚拟游戏角色的数据对于磁盘和内存空间的占用率,仅从最初的一个对比数据来看,新的数据存储方案对于磁盘和内存空间的占用率降低到了传统数据存储方案的1/5。且只要对于原始虚拟游戏角色进行属性调整,即可获得对于某一类目标虚拟游戏角色的统一的属性字段的调整(同一类目标虚拟游戏角色基本都会继承于同一个原始虚拟游戏角色),从而方便了用户对于游戏场景的目标虚拟游戏角色的属性的管理。
该实施例通过将至少一个原始虚拟游戏角色集合整合成第一数量的原始虚拟游戏角色集合,将多个目标虚拟游戏角色整合成第二数量的目标虚拟游戏角色集合,简化了对于游戏场景中的目标虚拟游戏角色的整体管理。
该实施例通过对预定位置的提取、地形网格的阵营属性、游戏场景加权部署目标虚拟游戏角色的完善机制这几方面的共同作用,成功地解决了传统的用户手动部署目标虚拟游戏角色所带来的低效性和不可靠性,只需要简单的点击一下部署的按钮或者发个POPO指令,即可确保游戏场景中所有目标虚拟游戏角色会以用户预期的效果、合法并且合理地部署在游戏场景中的各个目标区域。
该实施例通过5种粒度的虚拟游戏角色密度控制规则的共同作用,合理地控制了目标虚拟游戏角色的密度,解决了传统目标虚拟游戏角色部署方式中虚拟游戏角色的密度控制有限的问题。
该实施例通过对于游戏场景中地形是否变化的检测,并结合地形数据变化自动触发游戏场景中对目标虚拟游戏角色自动加权随机部署的自动化流程,从而解决了每当地形变化都需要用户重新部署游戏场景中的目标虚拟游戏角色的问题,实现目标虚拟游戏角色在地形变化时的地形自适应效果。
该实施例还通过对游戏场景中的目标虚拟游戏角色部署热力图,来提供了对于游戏场景中的目标虚拟游戏角色的分布情况的可视化,便于用户及时地确认自己部署的目标虚拟游戏角色的情况以及分布趋势是否符合预期,从而实现了一套高效的游戏场景中对虚拟游戏角色进行自动部署的方法。
下面结合优选的实施方式对本发明实施例的技术方案进行进一步地举例介绍。
图3是根据相关技术中的一种单位部署的示意图。如图3所示,用户通过单位编辑器,先到达需要部署单位的坐标附近,然后在所选定的坐标位置通过新建方式创建一个单位。
图4是根据相关技术中的一种单位的示意图。如图4所示,为通过图3所示的新建方式创建的一个单位的实例。
图5是根据相关技术中的另一种单位部署的示意图。如图5所示,为一种通过批量放置方式来部署单位的过程,可以在单位编辑器中选中作为模板的单位,然后设置需要以此单位为模板创建出来的新单位的数量(放置数量)、位置随机范围(放置范围半径)以及作为模板的单位的信息,最后会在选定的坐标附近随机部署这些新单位。
图6是根据相关技术中的另一种单位部署的示意图。如图6所示,可以进行纯位置随机部署新单位,仅能保证单位一定不在地下。如果想要在一个坐标周围多布置几种类型的单位,则只能通过对每个单位的精确放置或每次选择不同单位作为模板,多次进行上述的具有局限性的批量部署操作。
在相关技术中,在单位部署结束后,对于单位数据的存储方案是全量存储。即使大多数单位的很多数据条目都一样,都不得不保留所有单位的完整数据。而需要对于一类相同的单位进行数据条目的调整时,也不得不修改文件中所有单位的信息,以保证其正确性。
在大世界中部署单位,由于大世界地图巨大,需要部署的单位总数量也非常多(以现有的游戏为例预计最终需要部署的单位总数量在10w左右),按照传统的对于每个单位都单独保存一份完整数据的方式存储单位信息会导致单位数据文件磁盘和内存空间占用率都非常高,且每次当单位的基础数据需要按照用户需求进行属性调整时,需要修改所有单位的对应属性,不易于管理。
在相关技术中,用户手动选择在何坐标放置哪些单位的部署方式,显而易见地仅适合对于局部地区的单位的微调,具有较大的局限性,如果要用此方式来进行整个大世界的单位部署,不可避免的会遇到以下几点问题:
(1)低效性:用户往往需要花费大量的时间成本和精力来部署单位,且成效低,靠用户手动部署整个大世界的单位并不现实。
(2)不可靠性:用户手动部署单位,经常会出现将单位部署在非导航网格上,从而导致单位寻路等行为异常。
(3)单位密度控制有限:用户手动部署单位,很容易造成部分地区的单位过于密集,造成服务器和客户端负载过高;部分地区的单位又过于稀疏,造成游戏体验不佳的现象。
(4)无法自适应地形变化:大世界游戏不同赛季,往往会进行大世界地图的调整,每次地形、地貌发生变化都需要用户重新调整单位的部署,缺乏一种自适应的地形变化的机制。
而该实施例提供的方法可以通过对于单位数据进行抽象、组合,高效的管理单位数据以及减少磁盘和内存空间的占用率;通过将多个大世界单位整合成小队,简化大世界的单位管理;通过离线提取合法AI出生点的方式确保单位产出位置合法性;通过对于地形设置阵营属性以及设置各个基础小队的阵营属性和基础小队对于各种地形地貌的随机权重值,以及加权随机单位部署机制来控制单位在大世界中的整体分布趋势;通过5种粒度的单位密度控制规则的共同作用来合理地控制单位密度;通过单位分布热力图来将当前大世界整体单位的大体分布做一个可视化的展示;通过检测地形是否变化,如果检查到地形数据变化自动触发大世界单位自动加权随机部署的自动化流程,来实现单位部署地形变化时的地形自适应效果,达到最终的一次配置永久有效的效果。
下面对该实施例的通过对于单位数据进行抽象、组合,高效的管理单位数据以及减少磁盘和内存空间的占用率的方法进行介绍。
对于单位总数量较大带来的一系列的问题,该实施例可以借鉴面向对象语言中,继承于多态的核心思想,对单位数据(怪物数据)进行进一步的抽象,将单位数据抽象成了默认单位模板、基础单位、实例化单位三大类数据类型。
默认单位模板,默认单位模板记录的是一个完整的单位所需要的所有的默认数据,单靠默认单位模板的数据就可以创建出一个默认的单位。默认单位模板只有一份数据,仅由程序控制,用户无权配置,这份数据主要是作为对于数据完整性的一个最低保障。
基础单位,其类似于面向对象语言中的父类,保存的是一类单位的基础属性,用于实例化单位的继承。图7是根据本发明实施例的一种新建基础单位的示意图。如图7所示,用户可以通过在模板库窗口右键新建基础单位,当选中基础单位后,基础单位的数据会在后侧单位基础属性面板处进行显示,在此处可以进行基础单位数据的编辑。
实例化单位,其对应于面向对象语言中的子类。实例化单位有一个特殊的属性条目为继承基础单位ID,用于选择实例化单位需要基础的基础单位的ID。图8A是根据本发明实施例的一种实例化单位和基础单位的关系的示意图。如图8A所示,当新建一个实例化单位的时候,会先拷贝默认单位模板的数据新建出一个实例化单位,默认基础单位ID条目数据为空,所以目前实例化单位的状态对应于没有继承父类的类,需要保存的是全量的数据。而一旦当用户选择了一个基础单位作为被继承对象时,单位编辑器就会删除该实例化单位中所有和基础单位相同的数据条目,因为需要的部分数据可以通过基础单位获得,实例化单位就没必要记录多余的数据了。
可选地,当在单位编辑器中选择了继承的基础单位ID后,又对实例化单位进行了修改,那么可以理解成需要调整默认数据,类似于类数据的重写,这就需要覆盖基础单位的数据,编辑器会重新保留这个数据条目的数据。因而,最终实例化单位保存的是和所继承的基础单位所不同的部分数据,是一份缺省的数据,也称为增量数据。可选地,在模板库窗口,单位ID为base|1000000012,显示名称时处理了base前缀的省略,其对应于基础单位模板ID为base|1000000012的单位。
图8B是根据本发明实施例的一种常规单位窗口和模板库窗口的示意图。如图8B所示,常规单位窗口和模板库窗口的选中态存在互斥关系,也就是说,选中了常规单位窗口中左侧的实例化单位的编号,模板库窗口中左侧基础小队单位的选中态会被取消(常规单位窗口中右侧显示的实例化小队的编号也和模板库窗口中的基础小队编号的选中态存在互斥关系)。
另外,最右侧的单位基础属性面板在用户选中了实例化单位编号后显示的是实例化单位的数据,在用户选中了基础单位编号的时候显示的是基础单位的数据(因为上述两者之间存在选中态的互斥关系,所以不可能被同时选中),如图8B所示,因为当前选中的是模板库窗口的基础单位的编号,所以右侧单位基础属性面板显示的是编号为base|1000000012的基础单位的单位信息。(对于基础单位的Name,显示的时候做了处理去除了前置的base)。
图8C是根据本发明实施例的另一种实例化单位和基础单位的关系的示意图。如图8C所示,ID为“121212121”的实例化单位的单位数据继承的是ID为“base|1000000012”的基础单位的单位数据,ID为“121212121”的实例化单位的单位数据其实大部分数据是和ID为“base|1000000012”的基础单位的单位数据基本保持一致,也就是说,该实施例的实例化单位实际保留的缺省的增量数据非常的少,仅需要留“编号”,“继承的基础NPC编号”,“位置”,“角度”,“单位头衔”这五个条目信息,比起全量保存单位信息,显而易见的可省了的磁盘以及内存空间。
下面对该实施例的如何获得一份完整的实例化单位的数据进行介绍。
图9是根据本发明实施例的一种默认单位模板的数据、基础单位的数据、实例化单位的数据之间的关系的示意图。如图9所示,首先,获得保底的默认单位模板数据(一个python dict数据);其次,获得它所继承的基础单位数据(一个python dict数据)并update到默认单位模板数据中;最后,获取实例化单位的增量数据(一个python dict数据)并更新(update)到先前的数据中,得到的结果就是单位实际数据。
下面对该实施例的数据抽象的作用进行举例说明。
如果现在需要在大世界布置一千匹马,在现有的相关技术中,需要新建一千只马,并且保存一千匹马的完整信息,然后如果马的某个属性都需要进行调,则需要手动修改每只马的数据。而在该实施例中,仅需要新建一只基础单位“基础马”,然后新建一千匹实例化单位“实例化马”(可一键生成)去继承它基础单位,每匹匹实例化单位“实例化马”需要保留的数据可能仅仅是“单位ID”、“位置”、“继承的单位ID”这三个信息,而其余数据由基础单位“基础马”提供,现在如果实例化单位“实例化马”的某个属性都需要进行调,仅需调整基础单位“基础马”的数据即可,从而大大地提高了游戏策划人员或开发人员对于部署单位前的单位数据准备时的效率,也提高了后期单位数据调整的效率。同时仅前期数据的简单对比可知,采用新的数据组织方案,单位文件的磁盘占用降低到了传统数据存储方案的1/5,极大地降低了单位数据对于磁盘和内存空间的占用率。
下面对该实施例的如何简化大世界的单位管理的方法进行进一步介绍。
该实施例通过将大世界的多个单位整合成小队,以简化大世界的单位管理。
该实施例可以将一些单位组织成小队,一个小队有多个单位,通过小队AI统一进行管理。小队可小队数据结构可以与普通单位一致,可以由默认小队模板、基础小队、实例化小队三部分组成。图10是根据本发明实施例的一种小队结构的示意图。如图10所示,实例化小队的小队数据信息可以包括继承的基础小队的数据信息,也可以包括常规单位窗口的单位ID。该实施例在对大世界单位进行自动随机部署的时候,实际上部署的是各个实例化的小队。
下面对该实施例的如何确保单位产出位置合法的方法进行介绍。
该实施例可以通过离线提取合法AI出生点的方式确保单位产出位置合法性。为了确保单位一定部署在导航网格上,确保单位可以正常地执行AI逻辑,该实施例引入AI出生点的概念。该实施例可以预先通过撒点的方式,在地形上撒上大量的AI出生点,然后再通过对于地形数据的提取,保留所有在导航网格上符合部署单位的要求的AI出生点,作为备用的小队分配点(每次地形变化或采集资源更新都会自动触发该流程,确保了AI出生点的正确性)。这个步骤是对于用户而言是无感的,用户在部署单位的时候不需要关心。
下面对该实施例的如何控制单位分布的合理性以及合法性的方法进行介绍。
该实施例通过对于地形设置阵营属性以及设置各个基础小队的阵营属性和基础小队对于各种地形地貌的随机权重值,以及加权随机单位部署机制来控制单位在大世界中的整体分布趋势。
为了让所有实例化小队仅仅在想要它分布的地区之内进行随机部署,该实施例可以将大世界分割成无数个64m*64m的地形网格,每个地形网格除了一些必要的属性之外,还可以包含一个特殊属性,即阵营属性。
该实施例在部署单位时规定,所有实例化小队只能被随机分配到和自己相同阵营的地形网格中的AI出生点上,这样就可以保证随心所欲的控制单位的分布区域。
为了简化设置网格阵营属性的操作,该实施例采用了通过PNG图导入阵营数据的方式,用户可以仅需通过一张和16k大世界地图等比缩放成512*512像素的PNG图,通过对PNG图进行染色,然后将这张染完色后的PNG图导入进系统,系统会自动对其解析出大世界地图对应的网格所属的阵营,然后将该地区的网格设置成对应的阵营。为了确保染色正确,该实施例的系统提供了导入预览功能,可以将染色后各个地区阵营的情况反向生成各个阵营分布的情况图,供用户校验如果导入这张图是否达到想要的阵营设置效果。需要说明的是,预览功能不会真正修改地形网格的阵营属性,只产出阵营的分布图,主要是避免染色时候产生的误差。如果生成的预览图无误,用户就可以正式执行PNG图的导入,对阵营属性进行批量设置。
图11是根据本发明实施例的一种PNG阵营染色功能的示意图。如图11所示,第一步可以点击PNG图阵营信息导入的操作按钮;第二步,通过对颜色设置按钮进行操作,设置RGB每个值对应于哪种阵营;第三步,选择需要导入哪张资源图,单位编辑器会自动将设置的文件夹下所有的资源图在下滑栏中显示,用户仅需选择即可;第四部,选择预览,还是应用,还是取消这张资源图。
为了让大世界单位分布的更加的合理,比如,即鲨鱼只在水里部署,骆驼只在沙漠部署,该实施例采用了加权随机分布的方法。由于部署的实例化小队一定继承了基础小队,因而该实施例对于每种基础小队而言,对于每一种地形地貌的随机概率设置了一个权重值,该权重值越大,表示继承基础小队的实例化小队被分配到某种地形地貌的概率越大,比如,可以将鲨鱼的实例化小队所属的基础小队在水域的权重值设置成100,然后其它地形、地貌的权重值设置成0,则鲨鱼的实例化小队一定只会出现在水里。如果将鹿所属的基础小队在森林的权重值设置成1000,在平原的权重设置成10,则所有鹿的实例化小队的分配结果大体趋势一定是主要在森林中,只有少数在平原地心中,这样可以将大世界单位分布的更加的合理,增强玩家的游戏代入感。
图12是根据本发明实施例的一种地形网格权重的示意图。如图12所示,在网格基础属性面板上,可以显示出地形上AI出生点的数据量以及具体信息,在该地形网格上,每个基础小队的随机权重值越大,继承其的实例化小队越随机到该地区上的概率就越大。
图13是根据本发明实施例的一种地形网格的可视化表现的示意图。如图13所示,地形网格的可视化表现是通过单位编辑器控制的临时模型,在正常的大世界游戏客户端中并不会出现。
下面对该实施例的如何有效的控制单位密度的方法进行进一步介绍。
该实施例可以通过5种粒度的单位密度控制规则的共同作用来合理地控制单位密度。在真正进行自动随机部署实例化小队的操作的时候,该系统除了会确保实例化小队一定会以权重值加权随机分配到和自己拥有相同阵营属性的网格上的某个AI出生点上之外,还可以对单位的密度进行了5个维度的控制,比如,64*64m、128*128m、256*256m、2048*2048m四个范围内最多各部署多少单位,以及整个大世界最多部署多少个单位。需要说明的是,这里是单位数量而不是小队数量。如果某些地形网格在某个小队分配结束后,不能再容纳更多的小队时,则会自动剔除所有的剩余AI出生点,确保不会再有小队被分配至此。由于各种限制,因而不能避免的是在部分极端情况下,会有剩余的实例化小队无法正常分配到合法的AI出生点的位置上,此时会将小队是否在游戏中创建的属性设置成False,并在本次分配结束后将所有异常的实例化小队分配失败的原因反馈给游戏策划人员或开发人员。
下面对该实施例的怪物分布热力图的作用进行介绍。
图14是根据本发明实施例的一种未显示怪物分布热力图的表现。如图14所示,未能展示出本次部署后整体单位的大体分布情况。而该实施例可以通过单位分布热力图来将当前大世界整体单位的大体分布情况做一个可视化的展示。为了方便用户确认本次部署单位的结果是否符合预期,该实施例开发了大世界怪物分布热力图的功能,可以通过热力图展示本次部署后整体单位的大体分布情况,便于游戏策划人员或开发人员直观了解到当前大世界所有单位的分布情况。
在该实施例中,可以显示的是“显示怪物分配热力图”的标签,也可以显示“隐藏怪物分配热力图”的标签。
图15是根据本发明实施例的一种显示怪物分布热力图的示意图。如图15所示,热力图显示当前仅在大世界的东南地区有怪物的部署,这不是由于分布算法的bug导致的错误现象,而是规划的单位只能在大世界东南部布置,这是个有意为之的结果,图15正是对于该方案可以有效的控制单位分布的合理性的一个佐证。
图16是根据本发明实施例的一种单位分布情况的局部鸟瞰图。如图16所示,在局部高空鸟瞰图中,围棋状的模型代表的就是一个单位小队,所有的小队单位的分布是符合随机性分布原则的,然后对比每个地形网格上的实例化小队(小框所表示),会发现每个实例化小队出现的概率是符合它所继承的基础小队在这个网格上加权概率的表现的。
下面对该实施例的一次大世界自动加权随机部署所有单位的执行过程进行介绍。
在该实施例中,可以检测地形是否变化,如果检查到地形数据变化自动触发大世界单位自动加权随机部署的自动化流程,来实现单位部署地形变化时的地形自适应效果,达到最终的一次配置永久有效的效果。
图17是根据本发明实施例的一种大世界自动加权随机部署所有单位的执行方法的流程图。如图17所示,该方法可以包括以下步骤:
步骤S1701,初始化所有地形网格的信息。
在该实施例中,大世界单位自动部署时,首先系统会自动初始化所有的地形网格信息,将地形网格以阵营进行划分,可以用一个python dict记录下每个阵营有哪些地形网格,每个地形网格分别有多大的容量,其中有多少个可用的AI出生点以及当前网格的坐标。如下图18中的根据阵营划分区域的变量所描述的。其中,图18是根据本发明实施例的一种单位部署时的数据结构的示意图,其中包括:本次分配每个网格可以增加的队伍列表、根据阵营划分区域、队伍阵营信息、网格对应的AI出生点数据信息、网格对应的权重值、已经分配过的队伍编号、已经分配过的区域编号、没有继承基础AI小队的实例化小队、没有对应阵营的基础小队和分配不小的小队。
图19A是根据本发明实施例的一种地形网格的容量的示意图。如图19A所示,在地形网格数据窗口中,设置地形网格编号对应的地形网格数据,设置区域属性和网格内包含的AI出生点数量,每个地形网格的容量大小由该地形网格范围内的AI出生点数量以及区域属性共同确定,地形网格容量=min(该地形网格范围内的AI出生点数量,区域属性对应的最大队伍数量)。该界面上可以显示出地形网格目前所有的选项。
图19B是根据本发明实施例的一种区域属性限制的最大队伍数的示意图。如图19B所示,对于AI小队区域表,其中可以显示资源点类型编号,其对应于单位编辑器中的区域属性编号,还可以显示最大队伍数,其为某个区域属性编号对应的最大队伍数量。
步骤S1702,初始化所有小队的信息。
初始化所有小队的信息,将所有队伍按照他们继承的基础小队编号进行分组,用一个python dict进行记录,因为每个继承同一个基础小队编号的实例化小队会拥有相同的队员数量,以及相同的阵营属性,所以可以进行批处理。如图18中的队伍阵营信息所描述的。
步骤S1703,判断是否还有未分配的基础小队剩余。
步骤S1704,选出当前部署优先级最高的基础小队。
如果判断出还有未分配的基础小队剩余,则接下来会通过用户配置的分配优先级,对于继承了当前分配优先级最高的基础小队的实例化小队进行部署。
步骤S1705,判断是否还有未分配的实例化小队。
步骤S1706,计算当前各个地形网格对于当前实例化小队的加权值,并且剔除加入该小队会超出单位密度限制的地形网格。
如果判断出还有未分配的实例化小队,则计算当前各个地形网格对于当前实例化小队的加权值,并且提出加入该小队会超出单位密度限制的地形网格。
该实施例部署时会遍历继承了该基础小队的所有实例化小队,对于每个小队,会计算所有当前符合规则的可以分配该小队的(符合阵营需求,以及密度控制限制)地形网格的权重值,权重值等于当前地块对于该小队所继承的基础小队的加权值乘以当前地形网格剩余的AI出生点的数量(因为同一个地形网格中每个AI出生点都有相同的被分配到的概率)。
可选地,如果判断出没有未分配的实例化小队,则执行步骤S1703。
步骤S1707,加权随机出当前小队分配到的地形网格,并记录。
该实施例将当前小队随机到一个合法的地形网格后,并不会直接执行分配操作,而是会记录下当前小队编号和它分配到的地形网格编号,保存到self.grid_new_team_list中,然后减少该地形网格的容量以及AI出生点的数量(只进行预分配,没有实际分配到某个AI出生点上)。
步骤S1708,小队随机到的网格的容量减1,且更新各个维度当前单位数量的情况。
该实施例继续执行步骤S1705,进行循环直到所有的小队都被分配完。
步骤S1709,移动所有实例化小队到随机到的地形网格中去。
如果判断出没有未分配的基础小队剩余,则移动所有实例化小队到随机到的地形网格中去。
该实施例循环上述方法直至所有的小队都被分配完之后,通过self.grid_new_team_list中的信息,对于对应的网格中的AI出生点进行洗牌算法,取出前N个数据(N是当前网格之前预分配到的队伍数量),于之前预分配的队伍编号一一对应,进行真正的移动操作。这样做的好处是,假设之前需要对一个网格进行8次分配,之前需要对于self.grid_npc_pos_info中的数据进行8次“洗牌->从列表中取出AI出生点信息->从列表中删除对应的AI出生点”这样的操作,以保证每次选出来的AI出生点不会是已经使用过的AI出生点。而该实施例只需要进行一次洗牌操作,然后提取出前8个AI出生点的信息,一一赋予给各个实例化小队单位即可
图19C是根据本发明实施例的一种大世界自动加权随机部署单位执行日志的示意图。如图19C所示,本次的分配所有单位都被分配到了合适的地方,没有分配异常的单位,且目前数万个单位,一次部署的总时间也仅需5~6分钟,极大地提高了游戏策划人员或开发人员的单位部署效率,整体反馈较好。
该实施例目前可以支持通过单位编辑器内进行大世界单位部署,也可以在提交相关配置文件到SVN后,通过POPO指令进行在线的大世界单位自动部署,唯一的区别是,通过单位编辑器端的部署可以通过单位编辑器的界面看到本次的单位部署分布情况。
图20是根据本发明实施例的一种单位编辑器中触发大世界自动加权随机部署单位的示意图。如图20所示,可以操作队伍自动分配进区域的操作按钮,来实现单位编辑器中触发大世界自动加权随机部署单位,可以显示单位分布的热力图。
图21是根据本发明实施例的一种通过POPO指令触发大世界自动加权随机部署单位的示意图。如图21所示,通过POPO指令的大世界自动布怪指令进行在线的大世界单位自动部署,其中涉及的指令还包括采集资源更新、pre采集资源更新,其可以是先导出然后执行写入,还包括采集资源更新重启,其可以是先导出然后执行写入,再强制重启服务器。
该实施例为了让用户可以更加高效、方便地进行大世界单位部署作业,可以将这个复杂的大世界单位部署系统的各个步骤进行抽象封装,使得用户可以完成一次单位部署作业只需完成以下几个简单步骤即可:
S1,通过导入PNG图对阵营进行批量设置;
S2,配置每个基础小队的阵营以及基础小队对于每种地形、地貌的随机权重(比如,一个execl文件);
S3,通过单位编辑器批量一键批量生成继承基础小队的实例化小队;
S4,点击自动部署单位按钮(可以根据权重值进行加权随机,通过负载检查标准进行限制);
S5,点击显示单位热力图按钮,查看本次部署后整体单位的大体分布情况,便于用户查看对单位的部署是否符合预期。
S6,点击上传按钮上传所有单位数据文件到SVN,本次部署结束。
该实施例为了避免地形地貌发生变化时,由于用户没有及时重新部署单位导致单位表现异常,可以新增一个自动化流程,当检查到地形数据发生变化时,可以自动触发自动部署单位的流程,并在部署成功后自动提交单位数据,以此实现自适应地形变化,达到一次配置永久有效的效果。
该实施例通过对单位数据的进一步的抽象、组合,极大程度上地降低了单位数据对于磁盘和内存空间的占用率,仅从最初的一个对比数据来看,该实施例的数据存储方案对于磁盘和内存空间的占用率可以降低到传统数据存储方案的1/5,并且只要对于基础单位进行属性调整,即可获得对于某一类特定单位的统一的属性字段的调整(同一类实例化单位基本都会继承于同一个基础单位),从而方便了用户对于大世界的单位属性的管理。
该实施例可以通过将多个大世界单位整合成小队,简化了对于大世界单位的整体管理。
该实施例可以通过单位AI出生点的提取、地形网格的阵营属性、大世界加权部署单位的完善机制这几方面的共同作用,很好地解决了传统的用户手动部署单位带来的低效性和不可靠性。只需要简单的点击一下部署的按钮或者发个POPO指令,即可确保大世界所有单位会以用户预期的效果、合法并且合理的分布在大世界各个角落。
该实施例可以通过5种粒度的单位密度控制规则的共同作用,合理地控制了单位的密度,解决了传统单位部署方式中单位密度控制有限的问题。
该实施例可以通过检测大世界地形资源是否变化,并结合地形数据变化自动触发大世界单位自动加权随机部署的自动化流程,从而解决了每当地形变化都需要用户重新部署大世界单位这一困扰很久的问题,实现了大世界单位在地形变化时的地形自适应效果。同时该实施例还通过大世界单位部署热力图,来提供了对于大世界单位分布情况的可视化,从而便于游戏策划人员或开发人员及时地确认自己的单位部署情况以及分布趋势是否符合预期。
综上,该实施例是一套高效的大世界单位部署方案,可以有效地实现大世界单位的自动部署,且目前也得到了有效的验证。
本发明实施例还提供了一种虚拟游戏角色的部署装置。需要说明的是,该实施例的虚拟游戏角色的部署装置可以用于执行本发明实施例图2A所示的虚拟游戏角色的部署方法。
图22A是根据本发明实施例的一种虚拟游戏角色的部署装置的示意图。如图22A所示,该虚拟游戏角色的部署装置220包括:第一确定单元221、获取单元222和第二确定单元223。
第一确定单元221,用于确定至少一个原始虚拟游戏角色。
获取单元222,用于获取至少一个原始虚拟游戏角色的待继承数据。
第二确定单元223,用于至少基于待继承数据在游戏场景中确定目标区域,并在目标区域中部署多个目标虚拟游戏角色,其中,目标虚拟游戏角色与原始虚拟游戏角色相关联,目标虚拟游戏角色用于继承待继承数据。
本发明实施例还提供了一种虚拟游戏角色的部署装置。需要说明的是,该实施例的虚拟游戏角色的部署装置可以用于执行本发明实施例图2B所示的虚拟游戏角色的部署方法。
图22B是根据本发明实施例的另一种虚拟游戏角色的部署装置的示意图。如图22B所示,该虚拟游戏角色的部署装置2200包括:第三确定单元2201和显示单元2202。
第三确定单元2201,用于响应作用于图形用户界面的第一操作指令,确定至少一个原始虚拟游戏角色,且生成在游戏场景中待部署的多个目标虚拟游戏角色,其中,多个目标虚拟游戏角色与至少一个原始虚拟游戏角色相关联,目标虚拟游戏角色用于继承原始虚拟游戏角色的待继承数据。
显示单元2202,用于响应作用于图形用户界面的第二操作指令,在图形用户界面上显示目标区域,并在目标区域中部署多个目标虚拟游戏角色,其中,目标区域至少根据待继承数据在游戏场景中确定出。
在该实施例的虚拟游戏角色的部署装置中,对虚拟游戏角色的数据进行抽象,通过多个目标虚拟游戏角色继承至少一个原始虚拟游戏角色的待继承数据,这样多个目标虚拟游戏角色就没必要记录待继承数据了,进而至少通过待数据实现对多个目标虚拟游戏角色在游戏场景中的部署,解决了虚拟游戏角色的数据对磁盘和内存空间的占用率高的技术问题,达到了降低虚拟游戏角色的数据对磁盘和内存空间的占用率的技术效果。
本发明的实施例还提供了一种计算机可读存储介质,其特征在于,计算机可读存储介质中存储有计算机程序,其中,在计算机程序被处理器运行时控制计算机可读存储介质所在设备执行本发明实施例的虚拟游戏角色的部署方法。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (20)
1.一种虚拟游戏角色的部署方法,其特征在于,包括:
确定至少一个原始虚拟游戏角色;
获取所述至少一个原始虚拟游戏角色的待继承数据;
至少基于所述待继承数据在游戏场景中确定目标区域,并在所述目标区域中部署多个目标虚拟游戏角色,其中,所述目标虚拟游戏角色与所述原始虚拟游戏角色相关联,所述目标虚拟游戏角色用于继承所述待继承数据。
2.根据权利要求1所述的方法,其特征在于,
所述方法还包括:将所述至少一个原始虚拟游戏角色划分为第一数量的原始虚拟游戏角色集合;在所述多个目标虚拟游戏角色中,获取关联每个所述原始虚拟游戏角色集合的第二数量的目标虚拟游戏角色集合,其中,每个所述目标虚拟游戏角色集合的阵营属性相同,每个所述目标虚拟游戏角色集合的阵营属性用于表示每个所述目标虚拟游戏角色集合所属的阵营;
获取所述至少一个原始虚拟游戏角色的待继承数据,包括:获取所述第一数量的原始虚拟游戏角色集合的待继承数据;
在所述目标区域中部署多个目标虚拟游戏角色,包括:在所述目标区域中部署关联每个所述原始虚拟游戏角色集合的第二数量的目标虚拟游戏角色集合。
3.根据权利要求2所述的方法,其特征在于,获取所述第一数量的原始虚拟游戏角色集合的待继承数据,包括:
确定所述第一数量的原始虚拟游戏角色集合的阵营属性,其中,每个所述原始虚拟游戏角色集合的阵营属性用于表示每个所述原始虚拟游戏角色集合所属的阵营,所述待继承数据包括所述阵营属性。
4.根据权利要求1所述的方法,其特征在于,至少基于所述待继承数据在游戏场景中确定目标区域,包括:
至少基于第一数量的原始虚拟游戏角色集合的阵营属性,在所述游戏场景中确定出所述目标区域,其中,所述至少一个原始虚拟游戏角色包括所述第一数量的原始虚拟游戏角色集合,所述待继承数据包括所述阵营属性。
5.根据权利要求4所述的方法,其特征在于,
所述方法还包括:确定所述游戏场景中地形的多个地形网格的阵营属性,其中,每个所述地形网格的阵营属性用于表示每个所述地形网格所属的阵营;
至少基于第一数量的原始虚拟游戏角色集合的阵营属性,在所述游戏场景中确定出所述目标区域,包括:基于所述多个地形网格的阵营属性和所述第一数量的原始虚拟游戏角色集合的阵营属性,在所述多个地形网格中确定每个所述原始虚拟游戏角色集合对应的多个子地形网格,其中,每个所述子地形网格的阵营属性与每个所述原始虚拟游戏角色集合的阵营属性相同;至少基于所述多个子地形网格在所述游戏场景中确定出所述目标区域。
6.根据权利要求5所述的方法,其特征在于,
在所述多个地形网格中确定每个所述原始虚拟游戏角色集合对应的多个子地形网格之后,所述方法还包括:确定每个所述原始虚拟游戏角色集合分配到每个所述子地形网格的分配概率;
至少基于所述多个子地形网格在所述游戏场景中确定出所述目标区域,包括:基于所述多个子地形网格和所述分配概率在所述游戏场景中确定出所述目标区域。
7.根据权利要求5所述的方法,其特征在于,
在确定所述游戏场景中地形的多个地形网格的阵营属性之前,所述方法还包括:通过目标图形文件获取阵营数据,其中,所述目标图形文件的像素尺寸与所述游戏场景的面积成目标比例;
确定所述游戏场景中地形的多个地形网格的阵营属性,包括:基于所述阵营数据确定所述多个地形网格的阵营属性。
8.根据权利要求1所述的方法,其特征在于,
至少基于所述待继承数据在游戏场景中确定目标区域之前,所述方法还包括:在所述游戏场景的地形上确定多个预定位置,其中,每个所述预定位置用于使部署到每个所述预定位置上的所述虚拟游戏角色执行的目标逻辑处于正常状态;
至少基于所述待继承数据在所述游戏场景中确定目标区域,包括:至少在所述多个预定位置中,基于所述待继承数据确定多个目标位置,其中,所述多个目标位置为符合部署所述多个目标虚拟游戏角色的位置;
在所述目标区域中部署多个目标虚拟游戏角色,包括:在所述多个目标位置上部署所述多个目标虚拟游戏角色。
9.根据权利要求8所述的方法,其特征在于,
所述方法还包括:在检测到所述游戏场景中地形变化的情况下,对所述多个预定位置进行调整,并确定每个所述原始虚拟游戏角色集合分配到变化后的所述地形的每个地形网格的分配概率;
至少在所述多个预定位置中,基于所述待继承数据确定多个目标位置,包括:在调整后的所述多个预定位置中,基于所述待继承数据和所述分配概率确定所述多个目标位置。
10.根据权利要求1所述的方法,其特征在于,在所述目标区域中部署多个目标虚拟游戏角色包括:
确定与所述目标区域对应的第三数量,其中,所述第三数量为所述目标区域允许部署的所述目标虚拟游戏角色的最大数量;
在所述目标区域中部署不超过所述第三数量的所述目标虚拟游戏角色。
11.根据权利要求1所述的方法,其特征在于,在所述目标区域中部署多个目标虚拟游戏角色之后,所述方法还包括:
生成热力图,其中,所述热力图用于表征所述多个目标虚拟游戏角色在所述游戏场景中的分布情况。
12.根据权利要求1所述的方法,其特征在于,
在获取所述至少一个原始虚拟游戏角色的待继承数据之后,所述方法还包括:对所述待继承数据进行变更;
至少基于所述待继承数据在游戏场景中确定目标区域,包括:至少基于变更后的所述待继承数据确定所述目标区域。
13.根据权利要求1所述的方法,其特征在于,至少基于所述待继承数据在游戏场景中确定目标区域,包括:
基于所述待继承数据和所述多个目标虚拟游戏角色的增量数据确定所述目标区域,其中,所述增量数据为所述目标虚拟游戏角色的数据中不同于所述待继承数据的数据。
14.一种虚拟游戏角色的部署方法,其特征在于,包括:
响应作用于图形用户界面的第一操作指令,确定至少一个原始虚拟游戏角色,且生成在游戏场景中待部署的多个目标虚拟游戏角色,其中,所述多个目标虚拟游戏角色与至少一个原始虚拟游戏角色相关联,所述目标虚拟游戏角色用于继承所述原始虚拟游戏角色的待继承数据;
响应作用于所述图形用户界面的第二操作指令,在所述图形用户界面上显示目标区域,并在所述目标区域中部署所述多个目标虚拟游戏角色,其中,所述目标区域至少根据所述待继承数据在所述游戏场景中确定出。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:
响应作用于所述图形用户界面的第三操作指令,导入目标图形文件,其中,所述目标图形文件的像素尺寸与所述游戏场景的面积成目标比例;
通过所述目标图形文件获取阵营数据,并基于所述阵营数据确定所述游戏场景中地形的多个地形网格的阵营属性;
基于所述多个地形网格的阵营属性和所述待继承数据在所述游戏场景中确定所述目标区域。
16.根据权利要求14所述的方法,其特征在于,所述方法还包括:
响应作用于所述图形用户界面的第四操作指令,在所述图形用户界面上显示热力图,其中,所述热力图用于表征所述多个目标虚拟游戏角色在所述游戏场景中的分布情况。
17.一种虚拟游戏角色的部署装置,其特征在于,包括:
第一确定单元,用于确定至少一个原始虚拟游戏角色;
获取单元,用于获取所述至少一个原始虚拟游戏角色的待继承数据;
第二确定单元,用于至少基于所述待继承数据在游戏场景中确定目标区域,并在所述目标区域中部署多个目标虚拟游戏角色,其中,所述目标虚拟游戏角色与所述原始虚拟游戏角色相关联,所述目标虚拟游戏角色用于继承所述待继承数据。
18.一种虚拟游戏角色的部署装置,其特征在于,包括:
第三确定单元,用于响应作用于图形用户界面的第一操作指令,确定至少一个原始虚拟游戏角色,且生成在游戏场景中待部署的多个目标虚拟游戏角色,其中,所述多个目标虚拟游戏角色与至少一个原始虚拟游戏角色相关联,所述目标虚拟游戏角色用于继承所述原始虚拟游戏角色的待继承数据;
显示单元,用于响应作用于所述图形用户界面的第二操作指令,在所述图形用户界面上显示目标区域,并在所述目标区域中部署所述多个目标虚拟游戏角色,其中,所述目标区域至少根据所述待继承数据在所述游戏场景中确定出。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,在所述计算机程序被处理器运行时控制所述计算机可读存储介质所在设备执行所述权利要求1至16任一项中所述的方法。
20.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为被所述处理器运行所述计算机程序以执行所述权利要求1至16任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110950896.XA CN113827957A (zh) | 2021-08-18 | 2021-08-18 | 虚拟游戏角色的部署方法、装置、存储介质和电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110950896.XA CN113827957A (zh) | 2021-08-18 | 2021-08-18 | 虚拟游戏角色的部署方法、装置、存储介质和电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113827957A true CN113827957A (zh) | 2021-12-24 |
Family
ID=78960880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110950896.XA Pending CN113827957A (zh) | 2021-08-18 | 2021-08-18 | 虚拟游戏角色的部署方法、装置、存储介质和电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113827957A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117008884A (zh) * | 2023-07-06 | 2023-11-07 | 广州三七极耀网络科技有限公司 | 游戏开发中的逻辑类处理方法、装置、设备及存储介质 |
WO2024078235A1 (zh) * | 2022-10-13 | 2024-04-18 | 腾讯科技(深圳)有限公司 | 游戏处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品 |
CN117008884B (zh) * | 2023-07-06 | 2024-05-17 | 广州三七极耀网络科技有限公司 | 游戏开发中的逻辑类处理方法、装置、设备及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050209008A1 (en) * | 2002-06-11 | 2005-09-22 | Yusuke Shimizu | Game device |
US20110230258A1 (en) * | 2010-03-16 | 2011-09-22 | Andrew Van Luchene | Computer Controlled Video Game Incorporating Constraints |
CN106302089A (zh) * | 2015-05-21 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 会话处理方法和系统 |
JP2017170257A (ja) * | 2017-07-10 | 2017-09-28 | 株式会社コロプラ | ゲームプログラム |
US20180173827A1 (en) * | 2016-12-21 | 2018-06-21 | Dassault Systemes | Automatic partitioning of a 3d scene into a plurality of zones processed by a computing resource |
CN109939437A (zh) * | 2019-03-18 | 2019-06-28 | 北京智明星通科技股份有限公司 | 游戏程序运行优化方法及装置 |
CN110038303A (zh) * | 2019-03-14 | 2019-07-23 | 北京达佳互联信息技术有限公司 | Ai对象匹配方法、系统及电子设备和存储介质 |
CN110609726A (zh) * | 2019-09-16 | 2019-12-24 | 网易(杭州)网络有限公司 | 贴图处理方法及装置、计算机可读存储介质、电子设备 |
CN112370778A (zh) * | 2020-11-27 | 2021-02-19 | 腾讯科技(深圳)有限公司 | 交互事件的执行方法和装置、存储介质及电子设备 |
CN112580199A (zh) * | 2020-12-10 | 2021-03-30 | 国网四川省电力公司信息通信公司 | 基于cim模型的电力系统多维数据统一构建系统 |
-
2021
- 2021-08-18 CN CN202110950896.XA patent/CN113827957A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050209008A1 (en) * | 2002-06-11 | 2005-09-22 | Yusuke Shimizu | Game device |
US20110230258A1 (en) * | 2010-03-16 | 2011-09-22 | Andrew Van Luchene | Computer Controlled Video Game Incorporating Constraints |
CN106302089A (zh) * | 2015-05-21 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 会话处理方法和系统 |
US20180173827A1 (en) * | 2016-12-21 | 2018-06-21 | Dassault Systemes | Automatic partitioning of a 3d scene into a plurality of zones processed by a computing resource |
JP2017170257A (ja) * | 2017-07-10 | 2017-09-28 | 株式会社コロプラ | ゲームプログラム |
CN110038303A (zh) * | 2019-03-14 | 2019-07-23 | 北京达佳互联信息技术有限公司 | Ai对象匹配方法、系统及电子设备和存储介质 |
CN109939437A (zh) * | 2019-03-18 | 2019-06-28 | 北京智明星通科技股份有限公司 | 游戏程序运行优化方法及装置 |
CN110609726A (zh) * | 2019-09-16 | 2019-12-24 | 网易(杭州)网络有限公司 | 贴图处理方法及装置、计算机可读存储介质、电子设备 |
CN112370778A (zh) * | 2020-11-27 | 2021-02-19 | 腾讯科技(深圳)有限公司 | 交互事件的执行方法和装置、存储介质及电子设备 |
CN112580199A (zh) * | 2020-12-10 | 2021-03-30 | 国网四川省电力公司信息通信公司 | 基于cim模型的电力系统多维数据统一构建系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024078235A1 (zh) * | 2022-10-13 | 2024-04-18 | 腾讯科技(深圳)有限公司 | 游戏处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品 |
CN117008884A (zh) * | 2023-07-06 | 2023-11-07 | 广州三七极耀网络科技有限公司 | 游戏开发中的逻辑类处理方法、装置、设备及存储介质 |
CN117008884B (zh) * | 2023-07-06 | 2024-05-17 | 广州三七极耀网络科技有限公司 | 游戏开发中的逻辑类处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11600198B2 (en) | System for dynamically provisioning cyber training environments | |
CN111467806B (zh) | 游戏场景中资源生成方法、装置、介质及电子设备 | |
CN106959952B (zh) | 获取产品对象的方法及装置 | |
CN113254061B (zh) | 基于规则引擎的业务决策方法、系统及存储介质 | |
US20210248278A1 (en) | Process architecture modeling platform | |
CN112181530A (zh) | 基于云平台的虚拟现实场景加载方法及虚拟现实系统 | |
CN112511596A (zh) | 一种云平台中创建云资源的方法和设备 | |
CN113360975A (zh) | 建筑信息模型的视图构建方法、装置及存储介质 | |
CN113827957A (zh) | 虚拟游戏角色的部署方法、装置、存储介质和电子装置 | |
CN112783660B (zh) | 虚拟场景中的资源处理方法、装置及电子设备 | |
CN112464497B (zh) | 基于分布式系统的故障演练方法、装置、设备及介质 | |
CN114327601A (zh) | 一种业务流程控制方法、装置、系统及相关设备 | |
CN109542432A (zh) | 风控规则编辑方法及终端设备 | |
CN112131010A (zh) | 服务器布局方法、装置、计算机设备和存储介质 | |
WO2019225420A1 (ja) | 変換装置、および、変換プログラム | |
CN113838171B (zh) | 数据处理方法、装置、存储介质和电子装置 | |
CN108804102B (zh) | 直播间界面样式的扩展方法及系统、服务器及存储介质 | |
CN113472590B (zh) | 一种DDS中基于机器学习的QoS配置方法 | |
CN115291929B (zh) | 用于人工智能教育图形化编程软件的编程块管理系统 | |
KR102621158B1 (ko) | 교육용 게임 소프트웨어 개발 도구 및 이의 동작 방법 | |
US11934817B2 (en) | Systems and methods for deploying federated infrastructure as code | |
CN116737393B (zh) | 资源部署方法、装置和存储介质及电子设备 | |
CN115002498B (zh) | 一种装饰信息的处理方法、装置、服务器及存储介质 | |
CN114489720A (zh) | 一种基于集群部署服务的方法、装置、存储介质及设备 | |
CN108874371B (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 |