游戏数据处理方法和装置、计算机可读存储介质、电子设备
文献发布时间:2023-06-19 09:30:39
技术领域
本发明实施例涉及计算机技术领域,具体而言,涉及一种游戏数据处理方法、游戏数据处理装置、计算机可读存储介质以及电子设备。
背景技术
行为树是实现游戏人工智能的主流技术手段,逻辑结构清晰,主要用于制作单个游戏人工智能的行为逻辑。其制作的单个游戏人工智能的逻辑是自闭自洽的,每个游戏人工智能之间不具有协作互助的能力。当需要每个游戏人工智能协作互助时,传统的做法是将协作互助期间会出现的所有情况及其对应的行为都写进行为树中。
但是,上述传统的做法仅限于协作互助的游戏人工智能的数量较小,且协作互助期间变数较小或者可以完全穷举的情况。如果一个任务需要成百上千的游戏人工智能一起执行,或者一个事件的过程中有数十种可能发生的不同情况,采用传统做法会导致行为树变得非常庞大冗余,并且存在大量不会被执行但是每次都要轮询一遍的节点,导致执行行为树的效率下降。
因此,需要提供一种新的游戏数据处理方法。
需要说明的是,在上述背景技术部分发明的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明的目的在于提供一种游戏数据处理方法、游戏数据处理装置、计算机可读存储介质以及电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的行为树庞大冗余,行为树执行效率低下的问题。
根据本公开的一个方面,提供一种游戏数据处理方法,包括:
响应游戏的启动,确定所述游戏中人工智能的上层流程环节对应的行为树;
控制所述上层流程环节对应的行为树的执行,并向所述人工智能的下层流程环节对应的行为树发送命令,所述命令包括所述人工智能待处理的任务;
根据所述命令控制所述下层流程环节对应的行为树的执行,以完成所述人工智能待处理的任务。
在本公开的一种示例性实施例中,所述游戏数据处理方法,还包括:
获取所述人工智能的行为数据,将所述行为数据拆解为至少两个的流程环节,其中所述流程环节可以包括所述上层流程环节以及所述下层流程环节;
对所述上层流程环节以及所述下层流程环节建立对应的行为树,其中,所述上层流程环节对应的行为树用于向所述下层流程环节对应的行为树发送命令,所述下层流程环节对应的行为树用于执行从所述上层流程环节对应的行为树接收到的命令。
在本公开的一种示例性实施例中,在获取所述人工智能的行为数据之前,所述游戏数据处理方法还包括:
监控所述人工智能的行为数据;
确定所述人工智能的行为数据的级别是否达到预设的异常数据级别。
在本公开的一种示例性实施例中,所述人工智能的流程环节包括规划环节、监控环节以及执行环节;
其中,所述规划环节对应的行为树为规划行为树,所述监控环节对应的行为树为监控行为树,所述执行环节对应的行为树为执行行为树。
在本公开的一种示例性实施例中,控制所述上层流程环节对应的行为树的执行,并向所述人工智能的下层流程环节对应的行为树发送命令,包括:
控制所述规划行为树的执行,生成第一命令并将所述第一命令发送至所述监控行为树,所述第一命令中包括待所述监控行为树执行的第一任务;
根据所述第一命令,控制所述监控行为树的执行,生成第二命令并将所述第二命令发送至所述执行行为树,所述第二命令中包括待所述执行行为树执行的第二任务;
根据所述第二命令,控制所述执行行为树的执行,以完成所述人工智能待处理的任务。
在本公开的一种示例性实施例中,所述控制所述规划行为树的执行,包括:
对所述人工智能的行为数据中所包括的待处理的任务进行分类,得到多个任务信息,所述第一任务中包括所述多个任务信息;
根据所述多个任务信息,创建所述监控行为树。
在本公开的一种示例性实施例中,所述根据所述第一命令,控制所述监控行为树的执行,包括:
根据所述第一命令,将所述第一命令中包含的第一任务划分为多个第二任务。
根据本公开的一个方面,提供一种游戏数据处理装置,包括:
响应模块,用于响应于所述游戏的启动,确定所述游戏中人工智能的上层流程环节对应的行为树;
控制模块,用于控制所述上层流程环节对应的行为树的执行,并向所述人工智能的下层流程环节对应的行为树发送命令,所述命令包括所述人工智能待处理的任务;
执行模块,用于根据所述命令控制所述下层流程环节对应的行为树的执行,以完成所述人工智能待处理的任务。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任一项所述的游戏数据处理方法。
根据本公开的一个方面,提供一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来上述任一项所述的游戏数据处理方法。
本发明实施例提供的一种游戏数据处理方法,一方面,响应于所述游戏的启动,确定所述游戏中人工智能的上层流程环节对应的行为树;控制所述上层流程环节对应的行为树的执行,并向所述人工智能的下层流程环节对应的行为树发送命令,所述命令包括所述人工智能待处理的任务;根据所述命令控制所述下层流程环节对应的行为树的执行,以完成所述人工智能待处理的任务,由于对游戏中人工智能的流程环节进行拆分并建立对应的行为树,降低了游戏流程环节的复杂性,因而解决了现有技术中由于多个游戏人工智能协作,使得行为树庞大冗余的问题,降低了行为树的复杂性;另一方面,由于上层流程环节对下层流程环节对应的行为树发送待处理的任务,由下层流程环节对应的行为树去执行,实现了对游戏事件关系的解耦,同时也提高了行为树的执行效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出根据本发明示例实施例的一种行为树的结构图。
图2示意性示出根据本发明示例实施例的一种游戏数据处理方法的流程图。
图3示意性示出根据本发明示例实施例的一种游戏数据处理系统的框图。
图4示意性示出根据本发明示例实施例的一种上层流程环节向下层流程环节发送命令的流程图。
图5示意性示出根据本发明示例实施例的一种补充营地事件对应的行为树的结构图。
图6示意性示出根据本发明示例实施例的一种攻占城池事件对应的行为树的结构图。
图7示意性示出根据本发明示例实施例的一种进一步的游戏数据处理方法的流程图。
图8示意性示出根据本发明示例实施例的一种游戏数据处理装置的框图。
图9示意性示出根据本发明示例实施例的用于实现上述游戏数据处理方法的电子设备。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本发明的各方面变得模糊。
此外,附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
目前电子游戏实现游戏人工智能的主要逻辑有状态机,行为树,深度学习三种大的基础技术类别。状态机属于一种触发机制,是比较早期的技术,要求大量触发判断。优点是性能较好,但对于流程复杂,条件多变的情况较难支持。深度学习是近年来在人工智能领域逐渐兴起的最新技术,目前还未大量应用于电子游戏。现在常见的行为树主要由关系节点和叶节点组成,关系节点是指顺序关系,选择关系,取反关系等节点,用来定义如何处理事件的节点。例如,选择关系是指一组行为中只要有一个行为执行成功,其他行为就不再继续执行。顺序关系是指一组行为中会按顺序执行,直到全执行完或者某个行为执行失败。叶节点是游戏人工智能具体要完成的事情,每个叶节点代表一个独立的行为事件。
参照图1所示,一棵完整的行为树,从根节点出发,游戏人工智能能做的所有互斥的行为放在一横行,这些行为之间以顺序或选择的关系放在一起。行为树会按照固定的时钟周期去轮询,固定从左向右的顺序执行。每个行为可能还有细分行为,同样以从左向右的顺序执行。行为树结构的优点在于它是符合人类逻辑顺序的,从头至尾进行的。并且他的每个节点每个事件逻辑是独立拆分的小模块,所以可以在不同位置进行复用。
目前的游戏项目中,游戏人工智能被应用于制作游戏中的BOSS,野怪,剧情NPC等。人工智能的行为是一个自闭的体系,他自己决定他要做什么,怎么做,以及在做的过程中发生一些其他情况要怎么处理。
在需要大量游戏人工智能协作互助的事件中,传统的做法是将协作互助期间出现的所有情况及其对应的行为都写进行为树中,导致行为树变得非常庞大冗余,并且存在大量不会被执行但是每次都要轮询一遍的节点,导致执行行为树的效率下降。
为了降低行为树的复杂程度,提高行为树的执行效率,近几年业界开始将研究聚焦于行为树的拆解,它能在大量游戏人工智能协作互助的事件中实现行为树的逻辑解耦,降低行为树的复杂度,提升行为树的执行效率。具体而言,将人工智能的行为数据拆解为两个及以上的流程环节,上层流程环节用于对行为数据进行分类,得到待处理任务,并将该待处理任务发送给下层流程环节,控制下层流程环节的执行,以完成该待处理任务。
基于上述一个或者多个问题,本示例实施方式中首先提供了一种游戏数据处理方法,该方法可以运行于服务器、服务器集群或云服务器等;当然,本领域技术人员也可以根据需求在其他平台运行本发明的方法,本示例性实施例中对此不做特殊限定。参考图2所示,该游戏数据处理方法可以包括以下步骤:
步骤S210.响应游戏的启动,确定所述游戏中人工智能的上层流程环节对应的行为树;
步骤S220.控制所述上层流程环节对应的行为树的执行,并向所述人工智能的下层流程环节对应的行为树发送命令,所述命令包括所述人工智能待处理的任务;
步骤S230.根据所述命令控制所述下层流程环节对应的行为树的执行,以完成所述人工智能待处理的任务。
上述游戏数据处理方法,一方面,响应于所述游戏的启动,确定所述游戏中人工智能的上层流程环节对应的行为树;控制所述上层流程环节对应的行为树的执行,并向所述人工智能的下层流程环节对应的行为树发送命令,所述命令包括所述人工智能待处理的任务;根据所述命令控制所述下层流程环节对应的行为树的执行,以完成所述人工智能待处理的任务,由于对游戏中人工智能的流程环节进行拆分并建立对应的行为树,降低了游戏流程环节的复杂性,因而解决了现有技术中由于多个游戏人工智能协作,使得行为树庞大冗余的问题,降低了行为树的复杂性;另一方面,由于上层流程环节对下层流程环节对应的行为树发送待处理的任务,由下层流程环节对应的行为树去执行,实现了对游戏事件关系的解耦,同时也提高了行为树的执行效率。
以下,将结合附图对本发明示例实施例游戏数据处理方法中的各步骤进行详细的解释以及说明。
首先,对本发明示例实施例的发明目的进行解释以及说明。具体的,在本发明中,主要研究在大规模群体协作完成的游戏中,如何降低行为树的复杂性,提高行为树的执行效率。因为在现有技术中,游戏人工智能用来执行行为树,当需要大量的人工智能完成一个过程长、变数多的复杂事件时,通常将人工智能在完成任务过程中出现的所有事件以及对应的逻辑行为都写入一个行为树中,通过程序代码的设置,行为树按照预设的周期去轮询,找到对应的行为再进行执行,导致行为树变得非常庞大冗余,且执行效率下降,故本发明尝试提出一种游戏数据处理方法,一方面,对人工智能的行为数据进行拆解,得到不同的流程环节,降低了行为树的复杂性;另一方面,在得到的流程环节中,上层流程环节用于对行为数据进行分类,得到待处理任务,下层流程环节用于执行待处理任务,实现了对游戏事件关系的解耦,同时也提高了行为树的执行效率。
其次,对本发明示例实施例中涉及的数据处理系统进行解释以及说明。
参考图3所示,该游戏数据处理系统可以包括上层流程环节310以及下层流程环节320。其中:
上层流程环节310,可以包括规划环节311以及监控环节312,其中,规划环节311用于获取游戏人工智能的行为数据,对该行为数据进行分类,并将分类结果发送给监控环节312,其中分类结果为待处理的任务;
下层流程环节320,与上层流程环节网络连接,可以包括执行环节321,用于接收上层流程环节发送的待处理的任务,并待处理的任务创建对应的行为树,并控制该行为树的执行,以完成上层流程环节发送的待处理的任务。
以下,将结合上述游戏数据处理系统对步骤S210-步骤S230进行解释以及说明。
在步骤S210中,响应游戏的启动,确定所述游戏中人工智能的上层流程环节对应的行为树。
在本示例实施例中,得到不同流程环节之后,还需要对流程环节建立对应的行为树,具体步骤为:
获取所述人工智能的行为数据,将所述行为数据拆解为至少两个的流程环节,其中所述流程环节可以包括所述上层流程环节以及所述下层流程环节;
对所述上层流程环节以及所述下层流程环节建立对应的行为树,其中,所述上层流程环节对应的行为树用于向所述下层流程环节对应的行为树发送命令,所述下层流程环节对应的行为树用于执行从所述上层流程环节对应的行为树接收到的命令。
具体的,可以将人工智能的行为数据拆解为上层流程环节以及下层流程环节,也可以将人工智能的行为数据拆解为上层流程环节、中层流程环节以及下层流程环节,在本实施例中对拆解得到的流程环节的环节数不作具体限定。
当只存在上层流程环节时,上层流程环节对应的行为树首先对人工智能的行为数据进行拆解,得到待完成的任务,并将该待完成的任务发送给下层流程环节;当存在中层流程环节时,首先,上层流程环节对应的行为树对行为数据进行拆解,得到第一待完成任务,并将该第一待完成任务发送给中层流程环节对应的行为树,中层流程环节对应的行为树对接收到的第一待完成任务进行拆解,得到第二待完成任务,并将该第二待完成任务发送给下层流程环节对应的行为树。当存在三层流程环节时,上层流程环节对应于规划环节,中层流程环节对应于监控环节,下层流程环节对应于执行环节。
进一步的,将行为数据拆解为三个流程环节时,可以包括规划环节、监控环节以及执行环节;其中,所述规划环节对应的行为树为规划行为树,所述监控环节对应的行为树为监控行为树,所述执行环节对应的行为树为执行行为树。
其中,规划行为树用于对达到异常级别的行书数据进行拆解,得到第一任务,并将该第一任务发送给规划行为树;监控行为树用于对第一任务进行拆解,得到第二任务,并将该第二任务发送给执行行为树;执行行为树用于接收到的第二任务。具体的,规划行为树不存在规划人工智能实体,监控行为树也不存在监控人工智能实体,执行行为树存在执行人工智能实体。
进一步的,每一种行为树的配置在服务器运行时预载入,行为树每个节点的结构如下:
在本示例实施例中,在获取所述人工智能的行为数据之前,所述游戏数据处理方法还包括:
监控所述人工智能的行为数据;
确定所述人工智能的行为数据的级别是否达到预设的异常数据级别。
具体的,监听预设范围内的数据,并对预设范围内的行为数据进行判断,只有当人工智能的行为数据的级别达到预设的异常级别时,才会对该人工智能的行为数据进行拆解得到不同的流程环节,其中,异常数据级别是指在预设范围内除正在进行的人工智能的行为之外,其他行为的累计发生次数超出系统预设值,例如,在游戏过程中,人工智能在完成建立城池的任务时,出现敌军进攻该人工智能的异常行为,当敌军的攻击值超出系统预设值时,系统将会对敌军进攻的行为数据进行拆解,得到不同的流程环节。
在步骤S220中,控制所述上层流程环节对应的行为树的执行,并向所述人工智能的下层流程环节对应的行为树发送命令,所述命令包括所述人工智能待处理的任务。
在本示例实施例中,参照图4所示,控制所述上层流程环节对应的行为树的执行,并向所述人工智能的下层流程环节对应的行为树发送命令,包括步骤S410-步骤S430,具体的:
在步骤S410中,控制所述规划行为树的执行,生成第一命令并将所述第一命令发送至所述监控行为树,所述第一命令中包括待所述监控行为树执行的第一任务。
在本示例实施例中,所述控制所述规划行为树的执行,包括:
对所述人工智能的行为数据中所包括的待处理的任务进行分类,得到多个任务信息,所述第一任务中包括所述多个任务信息;
根据所述多个任务信息创建所述监控行为树。
具体而言,首先,对预设范围内监听到的行为数据进行判断,当人工智能的行为数据的级别达到预设的异常级别时,对该人工智能的行为数据进行分类,得到一个或者多个待处理任务,其中,生成的第一命令中包括一个或者多个待处理的任务,并根据一个或者多个待处理任务的任务信息,创建与该一个或者多个任务信息对应的监控行为树。
举例而言,在游戏中监控到的异常数据可以包括:补充营地、规划发育中的一个或者全部,以补充营地为例,参考图5所示,对补充营地事件进行分类,可以得到对城池排序510、选城520以及选地530三个待处理任务,并根据三个待处理任务创建对应的监控行为树。其中,对城池排序510的具体逻辑为:剔除所有城池范围内有玩家事件发生的城池,以及所有守备营地数达到配置数量的城池,对剩余的城池按照由高到低的城池等级进行排序;选城520的具体逻辑为:遍历排好序的城池,从头部选择要补充营地的城池,直至补充总量等于总目标值和总现有的差值,其中,城池选择还需要对各州权重、指挥事件、自身级别、距离远近等因素进行考虑;选地530的具体逻辑为:在要补充营地的城池范围内,以优先靠近城池的方式,随机选择对应数量的无主地块。以规划发育为例,可以包括城池选择任务,其中,规划发育事件中的城池选择的具体逻辑与补充营地事件中选城的具体逻辑相似,因此此处不再赘述。
需要补充说明的是,根据待处理任务的任务信息创建监控行为树时,首先在已经存在的监控行为树中进行查找,查询该待处理任务对应的监控行为树是否已经存在,当待处理任务对应的监控行为树存在时,直接执行该监控行为树,当该监控行为树不存在时,根据待处理任务的任务信息创建对应的监控行为树。
在步骤S420中,根据所述第一命令,控制所述监控行为树的执行,生成第二命令并将所述第二命令发送至所述执行行为树,所述第二命令中包括待所述执行行为树执行的第二任务。
在本示例实施例中,所述根据所述第一命令,控制所述监控行为树的执行,包括:
根据所述第一命令,将所述第一命令中包含的第一任务划分为多个第二任务。
具体而言,对第一任务中包括的一个或者多个待处理任务进行进一步划分,得到一个或者多个待执行任务,并根据一个或者多个待执行任务的任务信息建立对应的执行行为树,其中,待执行任务为待处理任务的子任务,第二命令中包含一个或者多个待执行任务。
举例而言,参考图6所示,监控环节对接收到的攻占城池任务进行划分,可以得到:攻城610、开门620、迁移营地630以及铺路640四个待执行任务,并根据四个待执行任务的任务信息创建对应的执行行为树。其中,攻城610的具体逻辑为:当待进攻城池的城门打开时,首先,判断待进攻城池内非防御状态的我方营地的数量是否达到攻城所需要的数目;其次,判断待进攻城池内我方营地的所有部队是否全部满兵;再次,判断待进攻城池内我方营地的所有部队的体力是否大于预设体力;最后,待进攻城池内的我方所有营地执行攻城命令。
开门620的具体逻辑为:当围城结束后可进行开门,首先,判断待进攻城池内非防御状态的我方营地的数量是否达到攻城所需要的数目;其次,根据之前失败次数的记录,返回所需参与的部队数;最后,对对应数量的营地执行开门指令。
迁移营地630的具体逻辑为:当铺路完成后可进行迁移,首先,判断我方占领的地块与待进攻城池的城区是否直接相连;其次,当已迁移营地数量不满足预设数量时,判断是否达到迁移组的迁移间隔,当达到迁移组的间隔时间后,进行迁移,并查看已迁移营地的数量,根据预设的每组迁移的数量,进行下一轮的迁移,当已迁移营地数量满足预设数量时,迁移结束。
铺路640的具体逻辑为:当与待进攻城池之间无相连地块时,需要进行铺路,首先,根据道路信息进行寻路,确认铺路起点城池以及起点城池所存在的军团,其中寻路算法可以为A*寻路算法,也可以为其他寻路算法,在本示例实施例中不做具体限定;其次,判断营地数量是否达到预设数量,当营地数量达到预设数量时,对营地下达铺路指令,当营地数量未达到预设数量时,判断城池范围内是否有其他归属于该军团的地块,当存在归属于该军团的地块时,对该军团的所有营地下达铺路指令。
在步骤S430中,根据所述第二命令,控制所述执行行为树的执行,以完成所述人工智能待处理的任务。
在本示例实施例中,监控行为树将待执行任务发送给执行行为树后,执行行为树对应的执行人工智能实体根据执行行为树完成对应的任务。
其中,执行人工智能实体的执行逻辑为:当没有敌军威胁,且存在异常修正任务时,则先完成修正任务;当没有敌军威胁,且存在军团任务时,则优先执行军团任务;当没有敌军来犯,处于安全状态的游戏人工智能会优先执行处理关卡驻守任务,然后再自主扩张打地。
除此之外,执行人工智能实体也存在被威胁的状态。当城池被占领后,执行人工智能实体优先清理城池范围内的敌对土地。当遭到敌军进攻时,根据敌军进攻程度的不同,执行人工智能实体的处理流程也不相同。当敌军到执行人工智能实体的距离较远时,首先,当预设时间内有部队来攻打己方领地时,存在行军至地块时间短于敌军的空闲部队,则驻守己方领地;其次,确认是否可以去攻击敌军,当执行人工智能实体范围内无“不可达”标记的敌对地块,待进攻地块可达且土地可以直接出征,则选择适当的部队执行任务,当待进攻土地不可以直接出征时,先寻找铺路路径,再选择适当的部队执行任务;当待进攻地块不可达时,直接放弃任务;最后,选取空闲部队驻守关卡。
当敌军到执行人工智能实体的距离中等时,首先,进行部队回收;其次,当预设时间内有部队来攻打己方领地,存在行军至地块时间短于敌军的空闲部队,则驻守己方领地;然后,确认是否可以去攻击敌军,当执行人工智能实体范围内无“不可达”标记的敌对地块,待进攻地块可达且土地可以直接出征,则选择适当的部队执行任务,当待进攻土地不可以直接出征时,先寻找铺路路径,再选择适当的部队执行任务;当目标地块不可达时,直接放弃任务;最后,派出部队驻守关卡。
当敌军到执行人工智能实体的距离较近时,尤其是当敌军进攻到最近一层防御圈时,执行人工智能实体可以选择撤回所有外在部队,也可以选择内部防御。具体的,撤回所有外在部队,包括撤回“行军”未满预设时间的部队、撤回己方处于“战平”的部队、撤回己方处于“驻守土地”状态的部队、撤回己方处于“驻守关卡或者城池”的部队、撤回己方处于“返回”状态的部队,其中,预设时间可以为3分钟,也可以为5分钟,在本示例实施例中不做具体限定。
本发明示例实施例提供的游戏数据处理方法,独创性地设计了游戏数据处理模型。此外也开创性地将这一游戏数据处理模型融入到行为树执行过程中,提高了行为树的执行效率。
以下,将结合图7对本发明示例实施例的游戏数据处理方法进行进一步的解释以及说明,其中,该数据处理方法可以包括以下步骤:
步骤S710.对人工智能的游戏数据进行监控,并获取数据级别高于预设的异常数据级别的行为数据;
步骤S720.对获取到的行为数据进行拆分,得到规划环节、监控环节以及执行环节;
步骤S730.规划环节对应的行为树对行为数据进行分类,得到第一任务,并将第一任务发送给监控环节;
步骤S740.监控环节对接收到的第一任务进行划分,得到第二任务,并将第二任务发送给执行环节;
步骤S750.控制执行环节对应的行为树执行第二任务,以完成行为数据对应的任务。
综上所述,在本发明实施例中人工智能的基本框架分为三层,每一层对应一个独特的行为树。上层行为树只发号命令,不管具体实现;而下层行为树只执行接收到的命令,而不在于他现在做的事情最终能达到什么目的。这样,可以将人工智能行为拆解为一条简易流水线,降低了每个环节的复杂程度。
具体而言,执行行为树对应的执行人工智能实体主要去分析人工智能实体可以做什么事情。比如,玩家在大地图上的所有行为都可以抽象为两种:派出部队和建造。执行人工智能实体最终的效果是对玩家的模仿,所以执行人工智能实体能做的事情也是这两大类,在本示例实施例中不对人工智能实体的行为做具体的限定,本领域技术人员可根据具体需求做更多的叶节点逻辑。在派出部队和建造这两个大类别中,还可以进行细分,具体如:出征,驻守,建造,迁营,撤退,在不同的条件下,这几个行为的使用会略有些差异,需要通过行为树的结构节点来进行细化实现。除了上述外显在地图上的行为之外,执行人工智能实体还要遵循真实的兵力,体力,部队状态等游戏设定,对应会产生征兵,恢复体力,重伤等待,部队选择等行为逻辑。总结了所有的人工智能实体所有的行为之后,还要对人工智能实体在执行过程中会面临的所有状态进行分析,比如玩家距离它很远时它做什么,距离它很近时做什么。对人工智能实体在执行任务的过程中会遇到的各种状态进行抽象归纳,得到对应的行为,整体上就形成了执行人工智能实体的行为树。由此可以看出执行人工智能实体的行为依据主要是其面临不同状况时的反应。
规划行为树对应的规划人工智能处于最高层的位置上,规划人工智能是没有实体的,只存在于程序代码逻辑中,在游戏大地图上是不存在的。规划行为树主要是对一个人工智能群体(如同盟)的行为进行安排。在本发明实施例中,由规划行为树对较高层次的情况作出判断,如,情况1:发现敌人干扰的状态;情况2:没有敌人,我要自主发育;情况3现在安全,补充在战斗中阵亡的兵力。规划人工智能不在乎具体的局面是怎样的。例如敌人入侵,可能是敌人压制了人工智能的部队,也可能是人工智能部队已经即将胜利。它只是对游戏数据进行分类后,去寻找是否存在与分类结果对应的监控人工智能(监控行为树对应的人工智能)存在,如果存在,则更新状态,否则,去创建对应的监控人工智能。
监控行为树对应的监控人工智能,与规划人工智能一样也不存在实体。上层的规划人工智能不在具体的实现细节,下层的执行人工智能只关心具体的执行行为,所有的复杂事件的实现环节都是由监控人工智能来拆分和监控其具体实施的。其中,监控人工是由规划人工智能创建得到的,最主要的任务是对事件区分阶段。所以当监控人工智能创建出来的时候,其就知道最终的任务目标。
本发明示例实施例还提供了一种游戏数据处理装置。参考图8所示,该游戏数据处理装置可以包括响应模块810、控制模块820、执行模块830。
响应模块810,用于响应游戏的启动,确定所述游戏中人工智能的上层流程环节对应的行为树;
控制模块820,用于控制所述上层流程环节对应的行为树的执行,并向所述人工智能的下层流程环节对应的行为树发送命令,所述命令包括所述人工智能待处理的任务;
执行模块830,用于根据所述命令控制所述下层流程环节对应的行为树的执行,以完成所述人工智能待处理的任务。
在本公开的一种示例性实施例中,所述游戏数据处理方法,还包括:
获取所述人工智能的行为数据,将所述行为数据拆解为至少两个的流程环节,其中所述流程环节可以包括所述上层流程环节以及所述下层流程环节;
对所述上层流程环节以及所述下层流程环节建立对应的行为树,其中,所述上层流程环节对应的行为树用于向所述下层流程环节对应的行为树发送命令,所述下层流程环节对应的行为树用于执行从所述上层流程环节对应的行为树接收到的命令。
在本公开的一种示例性实施例中,在获取所述人工智能的行为数据之前,所述游戏数据处理方法还包括:
监控所述人工智能的行为数据;
确定所述人工智能的行为数据的级别是否达到预设的异常数据级别。
在本公开的一种示例性实施例中,所述人工智能的流程环节包括规划环节、监控环节以及执行环节;
其中,所述规划环节对应的行为树为规划行为树,所述监控环节对应的行为树为监控行为树,所述执行环节对应的行为树为执行行为树。
在本公开的一种示例性实施例中,控制所述上层流程环节对应的行为树的执行,并向所述人工智能的下层流程环节对应的行为树发送命令,包括:
控制所述规划行为树的执行,生成第一命令并将所述第一命令发送至所述监控行为树,所述第一命令中包括待所述监控行为树执行的第一任务;
根据所述第一命令,控制所述监控行为树的执行,生成第二命令并将所述第二命令发送至所述执行行为树,所述第二命令中包括待所述执行行为树执行的第二任务;
根据所述第二命令,控制所述执行行为树的执行,以完成所述人工智能待处理的任务。
在本公开的一种示例性实施例中,所述控制所述规划行为树的执行,包括:
对所述人工智能的行为数据中所包括的待处理的任务进行分类,得到多个任务信息,所述第一任务中包括所述多个任务信息;
根据所述多个任务信息创建所述监控行为树。
在本公开的一种示例性实施例中,所述根据所述第一命令,控制所述监控行为树的执行,包括:
根据所述第一命令,将所述第一命令中包含的第一任务划分为多个第二任务。
上述游戏数据处理装置中各模块的具体细节已经在对应的游戏数据处理方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本发明中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
在本发明的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图9来描述根据本发明的这种实施方式的电子设备900。图9显示的电子设备900仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,电子设备900以通用计算设备的形式表现。电子设备900的组件可以包括但不限于:上述至少一个处理单元910、上述至少一个存储单元920、连接不同系统组件(包括存储单元920和处理单元910)的总线930以及显示单元940。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元910执行,使得所述处理单元910执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元910可以执行如图2中所示的步骤S210:响应所述游戏的启动,确定所述游戏中人工智能的上层流程环节对应的行为树;S220:控制所述上层流程环节对应的行为树的执行,并向所述人工智能的下层流程环节对应的行为树发送命令,所述命令包括所述人工智能待处理的任务;S230:根据所述命令控制所述下层流程环节对应的行为树的执行,以完成所述人工智能待处理的任务。
存储单元920可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)9201和/或高速缓存存储单元9202,还可以进一步包括只读存储单元(ROM)9203。
存储单元920还可以包括具有一组(至少一个)程序模块9205的程序/实用工具9204,这样的程序模块9205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线930可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备900也可以与一个或多个外部设备1000(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备900交互的设备通信,和/或与使得该电子设备900能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口950进行。并且,电子设备900还可以通过网络适配器960与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器960通过总线930与电子设备900的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备900使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本发明实施方式的方法。
在本发明的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
根据本发明的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本发明的其他实施例。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由权利要求指出。
- 游戏数据处理方法和装置、计算机可读存储介质、电子设备
- 游戏数据的处理方法、装置、电子设备及可读存储介质