CN109343913B - 一种游戏行为树控制方法 - Google Patents
一种游戏行为树控制方法 Download PDFInfo
- Publication number
- CN109343913B CN109343913B CN201811230733.9A CN201811230733A CN109343913B CN 109343913 B CN109343913 B CN 109343913B CN 201811230733 A CN201811230733 A CN 201811230733A CN 109343913 B CN109343913 B CN 109343913B
- Authority
- CN
- China
- Prior art keywords
- behavior
- node
- nodes
- executing
- game
- 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
Images
Classifications
-
- 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种游戏行为树控制方法,通过建立行为节点间的关联关系,由控制模块查找可执行的行为节点时,优先查找该行为节点的关联节点,如果关联节点均不满足条件则等待输入。实施本发明,可以高度模块化行为节点,提高了行为树的可重用性,便于游戏的快速迭代。
Description
技术领域
本发明属于网络游戏技术领域,具体涉及一种游戏行为树控制方法。
背景技术
行为树作为开发游戏时一个简单,可扩展的编辑逻辑的方案,可以加速游戏开发的迭代速度。在游戏中,行为树响应游戏中的各种信息,进行决策以挑选接下来将要执行的行动并且监控该行动的执行。
行为树中,将游戏逻辑划分为行为节点,通过逻辑节点控制行为节点的执行;每次查找行为节点时,通常需要从根节点出发,遍历各个节点,直到找到满足条件的行为节点。现有技术中,每个游戏单位或者多个游戏单位共享一棵行为树,通过搜索模块快速匹配满足条件的行为节点;由于各行为之间完全独立,割裂了各行为之前存在的内在联系;执行过程中,每次都是从根节点出发,游戏中出现问题,也不易定位问题。
现有技术中根据第一游戏单位的属性信息从行为树上搜索到第一抽象行为;根据所述第一抽象行为从行为委托池中获取到对应的第一行为委托;将所述第一行为委托加载到所述第一抽象行为上从而生成第一具体行为,并由所述第一游戏单位执行所述第一具体行为。
现有技术中的上述方案实现过程较为复杂,且需要建立行为委托池,搜索模块等,行为间切换时均从根节点进行查找;而对于行为树数量较少,行为之间联系比较紧密,行为切换明确的游戏行为,执行效率低下。
发明内容
为克服上述现有技术的不足,针对行为树数量较少,行为节点之间联系比较紧密,切换明确的游戏领域,在保证游戏可扩展性的同时,建立行为节点间联系,进一步提高游戏行为的执行效率。
本发明提供了一种游戏行为树控制预处理方法,其特征在于,包括:
S101.建立控制模块,用于控制行为节点的跳转;
S102.在创建行为节点过程中,将所有与该行为节点相关的行为节点关联起来,并作为该行为节点的一部分,同时将该行为节点作为某一具体逻辑节点的子节点;
S103.某一行为节点执行完成后,控制模块查找与该行为节点相关联的行为节点;并进行行为节点切换。
优选地,所述行为树中包含有三种逻辑节点:
1)选择节点:用于选择其子节点的某一个执行;
2)序列节点:用于将其所有子节点依次执行,即当前一个子节点执行完成,返回“完成”状态后,再运行下一个子节点;
3)并行节点:用于将其所有子节点都运行一遍。
本发明还提供了一种游戏行为树控制方法,包含以下步骤:
S201、提取游戏中的行为节点;所述行为节点为游戏逻辑执行的独立单元,包含该行为节点执行所需要的数据及具体逻辑;
S202、添加行为节点的执行条件;当满足执行条件,且有输入时,控制模块开始执行该行为节点,直到该行为节点返回状态;
S203、建立行为节点间的关联关系;
S204、增加根节点,然后将行为节点添加到相应的根节点中;
S205、行为树等待用户输入,当有输入时,由控制模块执行相应操作;
S206、行为节点完成执行后,通知控制模块其状态。
优选地,行为节点的执行条件包括但不限于满足行为节点所需数据全部准备完成。
优选地,行为节点状态有两个:
1)完成;
2)执行中;
如果行为节点为完成状态,当有输入时,控制模块将重新查找行为节点执行;
如果行为节点为执行中状态,当有输入时,控制模块将继续执行当前行为节点。
优选地,所述S203中的建立行为节点间的关联关系,进一步包括:
将行为节点与可执行的后续行为节点相关联。
优选地,所述S205中行为树等待用户输入,当有输入时,由控制模块执行相应操作,进一步包括:
S601、判断是否为初次执行;如果判断结果为是,则执行S602;如果判断结果为否,则执行S603;
S602、遍历所有节点,查找符合条件的行为节点;
S603、判断当前是否有状态为执行中的行为节点;如果判断结果为是,则执行S604;如果判断结果为否,则执行S605;
S604、继续执行状态为执行中的行为节点;
S605、遍历前一次执行的行为节点的关联节点,转而继续执行S604。
优选地,S605中的遍历前一次执行的行为节点的关联节点,进一步包括:
如果找到符合条件的行为节点,执行该行为节点对应的操作;如果未找到符合条件的行为节点,则返回S205。
优选地,所述输入包含但不限于:
1)用户操作;
2)用户操作超时后,由***替代用户执行操作。
优选地,控制模块接收到行为节点通知的状态后进一步执行如下步骤:
S701、确认行为树中某个行为节点已执行完成;
S702、判断游戏是否结束;如果判断结果为是,则执行S703;如果判断结果为否,则执行S205;
S703、停止调用行为树。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。
附图说明
图1示出了根据本发明的一个实施例的游戏行为树控制预处理方法流程图;
图2示出了根据本发明的一个实施例的游戏行为树控制方法流程图;
图3示出了根据本发明的一个实施例的行为节点提取示意图;
图4示出了根据本发明的一个实施例的行为节点关联示意图;
图5示出了根据本发明的一个实施例的逻辑节点添加示意图。
图6示出了根据本发明的一个实施例的控制模块操作示意图;
图7示出了根据本发明的另一个实施例的控制模块操作示意图。
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的游戏行为树控制方法其具体实施方式、特征及其功效,详细说明如后。在下述说明中,不同的“一实施例”或“实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构、或特点可由任何合适形式组合。
行为树:用于控制人工智能(Artificial Intelligence,AI)决策行为的、包含了层级节点的树结构。
如图1所示,本发明的一个具体实施方式中,提供了一种游戏行为树控制预处理方法,包含以下步骤:
S101.建立控制模块,用于控制行为节点的跳转;
根据本发明的一个优选实施方式,行为树中包含有三种逻辑节点:
1)选择(Selector)节点:用于选择其子节点的某一个执行;
2)序列(Sequence)节点:用于将其所有子节点依次执行,即当前一个子节点执行完成,返回“完成”状态后,再运行下一个子节点;
3)并行(Parallel)节点:用于将其所有子节点都运行一遍。
S102.在创建行为节点过程中,将所有与该行为节点相关的行为节点关联起来,并作为该行为节点的一部分,同时将该行为节点作为某一具体逻辑节点的子节点;
S103.某一行为节点执行完成后,控制模块查找与该行为节点相关联的行为节点;并进行行为节点切换。
通过实施上述游戏行为树控制预处理方法,使得在行为节点执行完成后,首先从关联节点进行查找,如果均不满足条件,则行为树返回至根节点,等待新的输入;减少了遍历节点的数量,提高了行为节点的执行效率。
如图2所示,本发明的一个具体实施方式中,提供了一种游戏行为树控制方法,包含以下步骤:
S201、提取游戏中的行为节点;所述行为节点为游戏逻辑执行的独立单元,包含该行为节点执行所需要的数据及具体逻辑;
根据本发明的一个优选实施方式,如图3所示,以斗地主游戏为例,根据游戏规则可提取出的行为节点包括:洗牌、发牌、叫分、出牌、算分。
S202、添加行为节点的执行条件;当满足执行条件,且有输入时,控制模块开始执行该行为节点,直到该行为节点返回状态;
根据本发明的一个优选实施方式,行为节点的执行条件包括但不限于满足行为节点所需数据全部准备完成;
根据本发明的一个优选实施方式,行为节点状态有两个:
1)完成;
2)执行中;
如果行为节点为完成状态,当有输入时,控制模块将重新查找行为节点执行;
如果行为节点为执行中状态,当有输入时,控制模块将继续执行当前行为节点。
S203、建立行为节点间的关联关系;
根据本发明的一个优选实施方式,将行为节点与可执行的后续行为节点相关联;
根据本发明的一个优选实施方式,如图4所示,以斗地主游戏为例,行为节点洗牌的可执行后续行为节点为发牌,将行为节点洗牌与行为节点发牌相关联;行为节点发牌的可执行后续行为节点为叫分,将行为节点发牌与行为节点叫分相关联;行为节点叫分的可执行后续行为节点为洗牌或出牌,将行为节点叫分与行为节点洗牌及出牌分别相关联;行为节点出牌的可执行后续行为节点为算分,将行为节点出牌与行为节点算分相关联。
S204、增加根节点,然后将行为节点添加到相应的根节点中;
根据本发明的一个优选实施方式,所述根节点为逻辑节点;
根据本发明的一个优选实施方式,如图5所示,在逻辑节点下添加行为节点1和行为节点2,并由事先已创建的控制模块完成控制。
S205、行为树等待用户输入,当有输入时,由控制模块执行相应操作;
根据本发明的一个优选实施方式,如图6所示,所述相应操作的具体步骤如下:
S601、判断是否为初次执行;如果判断结果为是,则执行S602;如果判断结果为否,则执行S603;
S602、遍历所有节点,查找符合条件的行为节点;
S603、判断当前是否有状态为执行中的行为节点;如果判断结果为是,则执行S604;如果判断结果为否,则执行S605;
S604、继续执行状态为执行中的行为节点;
S605、遍历前一次执行的行为节点的关联节点,转而继续执行S604。
根据本发明的一个优选实施方式,S605中的遍历前一次执行的行为节点的关联节点,进一步包括:
如果找到符合条件的行为节点,执行该行为节点对应的操作;如果未找到符合条件的行为节点,则返回S205;
根据本发明的一个优选实施方式,所述符合条件为预先设置;
根据本发明的一个优选实施方式,所述符合条件由行为节点对应的行为自身规则所决定。
根据本发明的一个优选实施方式,以斗地主游戏为例,叫分节点和出牌节点的关联结点中都分别对应有出牌节点;出牌节点的准入条件为:条件1.其余三个玩家均有叫分操作且有玩家已叫分;2.前一次执行的行为节点为出牌节点,执行后游戏未结束;当符合上述任一条件时,都将进入出牌节点时。例如,叫分结点执行后,将查询是否可以进入出牌结点,如果满足条件1,则将进入出牌结点。
根据本发明的一个优选实施方式,所述输入包含但不限于:
1)用户操作;
2)用户操作超时后,由***替代用户执行操作。
S206、行为节点完成执行后,通知控制模块其状态;
根据本发明的一个优选实施方式,如图7所示,控制模块接收到行为节点通知的状态后进一步执行如下步骤:
S701、确认行为树中某个行为节点已执行完成;
S702、判断游戏是否结束;如果判断结果为是,则执行S703;如果判断结果为否,则执行S205;
S703、停止调用行为树。
根据本发明的一个优选实施方式,在行为节点中加入观察点接口,当执行节点执行完成后,由观察者接口通知控制模块,控制模块接到通知后再执行下一行为节点;将控制模块的主动执行模式变成被动执行模式。
本发明所提供的游戏行为树的控制方法,通过建立行为节点间的关联关系,由控制模块查找可执行的行为节点时,优先查找该行为节点的关联节点,如果关联节点均不满足条件则等待输入。实施本发明,可以高度模块化行为节点,提高了行为树的可重用性,便于游戏的快速迭代。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (7)
1.一种游戏行为树控制方法,包含以下步骤:
S201、提取游戏中的行为节点;所述行为节点为游戏逻辑执行的独立单元,包含该行为节点执行所需要的数据及具体逻辑;
S202、添加行为节点的执行条件;当满足执行条件,且有输入时,控制模块开始执行该行为节点,直到该行为节点返回状态;
S203、建立行为节点间的关联关系;
S204、增加根节点,然后将行为节点添加到相应的根节点中;
S205、行为树等待用户输入,当有输入时,由控制模块执行相应操作;
S206、行为节点完成执行后,通知控制模块其状态;
所述S205中行为树等待用户输入,当有输入时,由控制模块执行相应操作,进一步包括:
S601、判断是否为初次执行;如果判断结果为是,则执行S602;如果判断结果为否,则执行S603;
S602、遍历所有节点,查找符合条件的行为节点;
S603、判断当前是否有状态为执行中的行为节点;如果判断结果为是,则执行S604;如果判断结果为否,则执行S605;
S604、继续执行状态为执行中的行为节点;
S605、遍历前一次执行的行为节点的关联节点,转而继续执行S604。
2.根据权利要求1所述的游戏行为树控制方法,其特征在于:
行为节点的执行条件包括:满足行为节点所需数据全部准备完成。
3.根据权利要求1所述的游戏行为树控制方法,其特征在于:
行为节点状态有两个:
1)完成;
2)执行中;
如果行为节点为完成状态,当有输入时,控制模块将重新查找行为节点执行;
如果行为节点为执行中状态,当有输入时,控制模块将继续执行当前行为节点。
4.根据权利要求1所述的游戏行为树控制方法,其特征在于:
所述S203中的建立行为节点间的关联关系,进一步包括:
将行为节点与可执行的后续行为节点相关联。
5.根据权利要求4所述的游戏行为树控制方法,其特征在于:
S605中的遍历前一次执行的行为节点的关联节点,进一步包括:
如果找到符合条件的行为节点,执行该行为节点对应的操作;如果未找到符合条件的行为节点,则返回S205。
6.根据权利要求1所述的游戏行为树控制方法,其特征在于:
所述输入包含:
1)用户操作;
2)用户操作超时后,由***替代用户执行操作。
7.根据权利要求1所述的游戏行为树控制方法,其特征在于:
控制模块接收到行为节点通知的状态后进一步执行如下步骤:
S701、确认行为树中某个行为节点已执行完成;
S702、判断游戏是否结束;如果判断结果为是,则执行S703;如果判断结果为否,则执行S205;
S703、停止调用行为树。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811230733.9A CN109343913B (zh) | 2018-10-22 | 2018-10-22 | 一种游戏行为树控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811230733.9A CN109343913B (zh) | 2018-10-22 | 2018-10-22 | 一种游戏行为树控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109343913A CN109343913A (zh) | 2019-02-15 |
CN109343913B true CN109343913B (zh) | 2021-09-24 |
Family
ID=65311316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811230733.9A Active CN109343913B (zh) | 2018-10-22 | 2018-10-22 | 一种游戏行为树控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109343913B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110478893A (zh) * | 2019-08-23 | 2019-11-22 | 网易(杭州)网络有限公司 | 游戏事件执行方法及装置 |
CN113835433A (zh) * | 2021-09-28 | 2021-12-24 | 国汽智控(北京)科技有限公司 | 自动驾驶控制方法、装置、设备、存储介质及程序产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250100A (zh) * | 2016-08-15 | 2016-12-21 | 腾讯科技(深圳)有限公司 | ***逻辑控制方法及装置 |
CN107085519A (zh) * | 2017-05-04 | 2017-08-22 | 网易(杭州)网络有限公司 | 行为树调试处理方法、装置、***、存储介质和处理器 |
CN107943707A (zh) * | 2017-12-19 | 2018-04-20 | 网易(杭州)网络有限公司 | 行为树的测试方法、装置和存储介质以及终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10413829B2 (en) * | 2016-02-09 | 2019-09-17 | Disney Enterprises, Inc. | System and method of implementing behavior trees when modifying attribute values of game entities based on physical token detection |
-
2018
- 2018-10-22 CN CN201811230733.9A patent/CN109343913B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250100A (zh) * | 2016-08-15 | 2016-12-21 | 腾讯科技(深圳)有限公司 | ***逻辑控制方法及装置 |
CN107085519A (zh) * | 2017-05-04 | 2017-08-22 | 网易(杭州)网络有限公司 | 行为树调试处理方法、装置、***、存储介质和处理器 |
CN107943707A (zh) * | 2017-12-19 | 2018-04-20 | 网易(杭州)网络有限公司 | 行为树的测试方法、装置和存储介质以及终端 |
Non-Patent Citations (1)
Title |
---|
游戏AI模块设计--行为树;love_hot_girl;《http://blog.csdn.net/love_hot_girl/article/details/21027493》;20140311;第1-5页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109343913A (zh) | 2019-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107239335B (zh) | 分布式***的作业调度***及方法 | |
CN110443284B (zh) | 人工智能ai模型的训练方法、调用方法、服务器及可读存储介质 | |
CN107115673B (zh) | 一种基于行为树的行为执行方法和装置 | |
CN110134375B (zh) | 游戏角色行为的控制方法、装置及可读存储介质 | |
CN109343913B (zh) | 一种游戏行为树控制方法 | |
CN103765381B (zh) | 对b+树的并行操作 | |
CN109731334B (zh) | 状态的切换方法和装置、存储介质、电子装置 | |
CN107526682B (zh) | 测试机器人的ai行为树的生成方法、装置及设备 | |
CN108132831A (zh) | 任务的处理方法和处理装置 | |
CN111701246B (zh) | 一种游戏ai的决策配置方法和装置 | |
CN113926196A (zh) | 虚拟游戏角色的控制方法、装置、存储介质和电子装置 | |
Hauptman et al. | Evolution of an efficient search algorithm for the mate-in-N problem in chess | |
CN117180750A (zh) | 基于行为树的非用户角色控制方法、装置、设备及介质 | |
CN111111212B (zh) | 一种玩家游戏数据的存储方法、装置、设备及存储介质 | |
CN105597312A (zh) | 一种游戏命令处理方法和*** | |
Asiler et al. | Bb-graph: A subgraph isomorphism algorithm for efficiently querying big graph databases | |
CN111737166A (zh) | 数据对象的处理方法、装置及设备 | |
Conroy et al. | A value equivalence approach for solving interactive dynamic influence diagrams | |
CN116531758A (zh) | 虚拟角色的控制方法、装置、存储介质以及电子装置 | |
Kerkez et al. | Incremental case-based plan recognition using state indices | |
CN103366077B (zh) | 一种模拟器类游戏的角色清除方法、装置和*** | |
CN106201656B (zh) | 一种对kvm虚拟机快照存储空间的统计方法 | |
CN111552458B (zh) | 一种游戏***架构的构建方法、实现方法、装置及*** | |
CN116271829A (zh) | 虚拟对象控制方法、装置和存储介质 | |
CN114428921A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |