本發(fā)明涉及游戲控制領(lǐng)域,尤其涉及一種基于層次化行為樹的AI構(gòu)建方法及裝置、游戲控制方法及裝置、AI系統(tǒng)。
背景技術(shù):
隨著游戲行業(yè)的發(fā)展,人工智能(Artificial Intelligence,AI)設(shè)計(jì)的重要性與日俱增。最早的游戲PingPong,直接以玩家對(duì)戰(zhàn)作為游戲的方式,其本身是不需要AI的。而隨著游戲行業(yè)的發(fā)展,越來越多的游戲以冒險(xiǎn)闖關(guān)、與怪物對(duì)抗作為核心玩點(diǎn)。如在超級(jí)馬里奧(Super Mario)中,每一個(gè)蘑菇、烏龜?shù)榷加凶约旱男袆?dòng)軌跡,BOSS也會(huì)根據(jù)一定的規(guī)則進(jìn)行攻擊,這些都是最初版的游戲AI設(shè)計(jì)。在各類網(wǎng)絡(luò)MMORPG(Massively Multiplayer Online Role Play Game,大型多人在線角色扮演游戲)中,怪物從產(chǎn)生、作戰(zhàn)、到死亡,都需要使用AI來進(jìn)行控制。而在目前最主流的主機(jī)游戲(Console Game)中,各大工作室對(duì)AI的要求也是逐漸的超越了對(duì)美術(shù)的要求,如在育碧蒙特利爾工作室(Ubisoft Montreal)旗下研發(fā)的刺客信條系列(Assassin’s Creed)游戲中,每一個(gè)路人會(huì)因?yàn)橥婕业耐妻悟},會(huì)因?yàn)橥婕以谄涓浇蚣芏鴩^等等,這些都是其優(yōu)秀的AI設(shè)計(jì)師所賦予的。
AI是研究、開發(fā)用于模擬、延伸和擴(kuò)展人的智能的理論、方法、技術(shù)及應(yīng)用系統(tǒng)的一門新的技術(shù)科學(xué);是用來讓計(jì)算機(jī)來模擬人的某些思維過程和智能行為,使得游戲中每一個(gè)NPC(Non-Player Character,非玩家扮演角色)擁有豐富的行為和思維,從而使得玩家在游戲體驗(yàn)中能充分感受到樂趣,因此這些NPC的構(gòu)成和點(diǎn)綴起到了決定性的作用且在玩家生存及成長(zhǎng)的過程中起到不可或缺。
早起的主流的AI采用的設(shè)計(jì)結(jié)構(gòu)主要是有限狀態(tài)機(jī)(Finite Status Machine)。有限狀態(tài)機(jī)將指定狀態(tài)的相關(guān)邏輯進(jìn)行局部化處理,并提供了單一可控的轉(zhuǎn)化聚到在多個(gè)狀態(tài)間切換,容易實(shí)現(xiàn),運(yùn)行效率也較高,可以處理簡(jiǎn)單的AI行為。但是,當(dāng)AI變得復(fù)雜時(shí),狀態(tài)的數(shù)量以及轉(zhuǎn)移條件將呈指數(shù)級(jí)別增長(zhǎng)。同時(shí)狀態(tài)機(jī)難以被復(fù)用。究其根源,有限狀態(tài)機(jī)缺乏有效的模塊化手段。
在過去的幾年中,行為樹(Behavior Tree)已經(jīng)發(fā)展成為了游戲行業(yè)構(gòu)造AI行為的一個(gè)主要模型,這得益于行為樹的清晰明了、容易理解,而且可以被非程序人員所使用。行為樹目前已被集成在多款商業(yè)引擎,包括虛幻、cryengine、unity等,他們都為編輯行為樹提供了很好的編輯器,提供了圖形化編輯、運(yùn)行流程實(shí)時(shí)反饋、debug等多種高級(jí)功能,極大的方便了游戲制作人員的使用。行為樹容易設(shè)計(jì)和實(shí)現(xiàn),當(dāng)游戲AI變得復(fù)雜大時(shí),它的穩(wěn)定性、模塊性、可重復(fù)性和可移植性都是難能可貴的。
對(duì)于用行為樹定模型構(gòu)造的AI系統(tǒng)來說,每次執(zhí)行AI時(shí),系統(tǒng)都會(huì)從根節(jié)點(diǎn)遍歷整個(gè)樹,父節(jié)點(diǎn)執(zhí)行子節(jié)點(diǎn),子節(jié)點(diǎn)執(zhí)行完后將結(jié)果返回父節(jié)點(diǎn),然后父節(jié)點(diǎn)根據(jù)子節(jié)點(diǎn)的結(jié)果來決定接下來怎么做。
主流的行為樹方案定義了一系列的節(jié)點(diǎn)來供用戶使用,節(jié)點(diǎn)是行為樹的最基本組成結(jié)構(gòu),無論怎樣的行為樹都是由節(jié)點(diǎn)組成的。組成行為樹的節(jié)點(diǎn)包含了多種節(jié)點(diǎn)來實(shí)現(xiàn)不同類型的功能,而每種節(jié)點(diǎn)的接口都是相同的,都是接收一個(gè)任務(wù),返回任務(wù)執(zhí)行成功或失敗。行為樹常見的基本類型節(jié)點(diǎn)主要包括如下幾種(當(dāng)然也可以擴(kuò)展更多類型):
1)順序節(jié)點(diǎn)(Sequence Node):屬于組合節(jié)點(diǎn),順序執(zhí)行子節(jié)點(diǎn),只要碰到一個(gè)子節(jié)點(diǎn)返回false,則停止繼續(xù)執(zhí)行,并返回false,否則返回true,類似于程序中的邏輯“與”。
2)選擇節(jié)點(diǎn)(Selector Node):屬于組合節(jié)點(diǎn),順序執(zhí)行子節(jié)點(diǎn),只要碰到一個(gè)子節(jié)點(diǎn)返回true,則停止繼續(xù)執(zhí)行,并返回true,否則返回false,類似于程序中的邏輯“或”。
3)平行節(jié)點(diǎn)(Parallel Node):提供了平行的概念,無論子節(jié)點(diǎn)返回值是什么都會(huì)遍歷所有子節(jié)點(diǎn)。所以不需要像Selector/Sequence那樣預(yù)判哪個(gè)Child Node應(yīng)擺前,哪個(gè)應(yīng)擺后。Parallel Node增加方便性的同時(shí),也增加實(shí)現(xiàn)和維護(hù)復(fù)雜度。
4)條件節(jié)點(diǎn)(Condition Node):屬于葉子節(jié)點(diǎn),判斷條件是否成立。
5)執(zhí)行節(jié)點(diǎn)(Action Node):屬于葉子節(jié)點(diǎn),執(zhí)行動(dòng)作,一般返回true。
6)修飾節(jié)點(diǎn):修飾節(jié)點(diǎn)是為其他節(jié)點(diǎn)增加一些功能的節(jié)點(diǎn),并不關(guān)系被修飾的節(jié)點(diǎn)具體在做什么,要怎么去做。
7)循環(huán)節(jié)點(diǎn)(Loop Node):希望一個(gè)節(jié)點(diǎn)能夠被多次執(zhí)行,而已經(jīng)有了一個(gè)執(zhí)行動(dòng)畫的節(jié)點(diǎn),就需要給這個(gè)動(dòng)畫節(jié)點(diǎn)增加一個(gè)循環(huán)節(jié)點(diǎn)的修飾節(jié)點(diǎn)。
通常來說,傳統(tǒng)的行為樹結(jié)構(gòu)組織就如上所介紹的。在使用時(shí),每個(gè)單位(單元)被賦予一個(gè)行為樹來構(gòu)造它獨(dú)立的AI,通過構(gòu)造,這些組成了一個(gè)單位的所有行為,這種方式直接且有效。
發(fā)明人在實(shí)施本發(fā)明的過程中發(fā)現(xiàn),目前傳統(tǒng)的使用行為樹的方式都是用其來指導(dǎo)單一的AI單元,行為樹中的各個(gè)節(jié)點(diǎn)處理了大量的情況,在不同的情況下?lián)碛胁煌男袨?。然而,這些行為有可能會(huì)讓多個(gè)AI單元看起來行為重復(fù),互相之間缺乏協(xié)調(diào)。
而且,目前的行為樹并不能很好的解決群體性AI的問題。有些游戲中在每個(gè)單元AI中加入了其他AI單元相關(guān)的情況判斷,來保證具有群體性,例如保持陣形,醫(yī)療其他單位等。
在真實(shí)的游戲中,不但需要每個(gè)AI單元都有很智能、合理的表現(xiàn),同時(shí)整個(gè)團(tuán)隊(duì)以及團(tuán)隊(duì)和團(tuán)隊(duì)之間都是相互協(xié)作的。這對(duì)于當(dāng)前的行為樹結(jié)構(gòu)以及狀態(tài)機(jī)來說是很難實(shí)現(xiàn)的,即便實(shí)現(xiàn)了也會(huì)帶來巨大的工作量,AI的行為不清晰,不易于維護(hù),而且運(yùn)行的效率低下。例如許多統(tǒng)籌類決策,如陣形排布、團(tuán)隊(duì)治療分配等,由于其存在對(duì)隊(duì)伍整體方面的數(shù)據(jù)決策,若交由隊(duì)伍底層各個(gè)體單位來執(zhí)行,不僅每一個(gè)個(gè)體之間這一塊的工作是重復(fù)的、同時(shí)可能會(huì)引起相互的干擾。
例如,在一個(gè)擁有較大戰(zhàn)斗規(guī)模的游戲(如實(shí)施戰(zhàn)略游戲,Real-Time Strategy Game,簡(jiǎn)稱RTS)中,若采用傳統(tǒng)的、扁平結(jié)構(gòu)的、各個(gè)個(gè)體單位獨(dú)自決策的行為樹方式,如圖1所示。在圖1這樣的結(jié)構(gòu)中,每一個(gè)單位都有數(shù)量極多的操作以及游戲狀態(tài)需要處理,傳統(tǒng)的行為樹難以承載如此龐大的分支與節(jié)點(diǎn),而狀態(tài)機(jī)更是無法估量對(duì)應(yīng)的狀態(tài)。面對(duì)這樣的情況,無論是傳統(tǒng)的行為樹還是狀態(tài)機(jī),在處理時(shí)不但代碼量極大,而且BUG幾率非常高,且難以排查。
可見,在AI日益發(fā)展的今天,單體的,沒有群體性的AI單位已經(jīng)不能滿足我們的需求,我們需要更復(fù)雜,群體性更強(qiáng)的表現(xiàn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的是提供一種AI構(gòu)建方法、裝置和游戲控制方法、裝置及AI系統(tǒng),能夠滿足群體性的需求,保證了整個(gè)AI的合理、智能,同時(shí)避免了每個(gè)單獨(dú)AI的重復(fù)性的決策運(yùn)算,使得整體AI執(zhí)行的高效有序。
為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供了一種層次化行為樹的AI構(gòu)建方法,包括:
由處于最高層優(yōu)先級(jí)的AI單元根據(jù)當(dāng)前的情況確定己方的戰(zhàn)略,并將確定的戰(zhàn)略向處于下一層優(yōu)先級(jí)的AI單元下達(dá)對(duì)應(yīng)的指令;
由中間層優(yōu)先級(jí)的AI單元根據(jù)接收到的上一層優(yōu)先級(jí)下達(dá)的指令執(zhí)行對(duì)應(yīng)的操作,并在執(zhí)行完畢后向處于下一層優(yōu)先級(jí)的AI單元下達(dá)對(duì)應(yīng)的指令;其中,所述中間層優(yōu)先級(jí)包括至少一層優(yōu)先級(jí);
由處于最底層優(yōu)先級(jí)的每一AI單元根據(jù)上一層優(yōu)先級(jí)下達(dá)的指令執(zhí)行對(duì)應(yīng)的操作;
其中,處于任一層優(yōu)先級(jí)的每一AI單元基于行為樹構(gòu)建。
作為上述方案的改進(jìn),還包括:
預(yù)先設(shè)置所述中間層優(yōu)先級(jí)中的任一層變更執(zhí)行上一層優(yōu)先級(jí)下達(dá)的指令所對(duì)應(yīng)的執(zhí)行任務(wù)的條件;
當(dāng)變更執(zhí)行上一層優(yōu)先級(jí)下達(dá)的指令所對(duì)應(yīng)的執(zhí)行任務(wù)的條件達(dá)成時(shí),所述中間層優(yōu)先級(jí)的任一層的AI單元更變向處于下一層優(yōu)先級(jí)的AI單元下達(dá)的指令。
作為上述方案的改進(jìn),所述中間層優(yōu)先級(jí)包括第二層優(yōu)先級(jí)和第三層優(yōu)先級(jí);
處于所述第二層優(yōu)先級(jí)的AI單元根據(jù)所述最高層優(yōu)先級(jí)的AI單元下達(dá)的戰(zhàn)略指令制定對(duì)應(yīng)的執(zhí)行方案,根據(jù)執(zhí)行方案創(chuàng)建對(duì)應(yīng)的處于第三層優(yōu)先級(jí)的至少一個(gè)AI單元,并向處于第三層優(yōu)先級(jí)的每一AI單元下達(dá)對(duì)應(yīng)的執(zhí)行指令;其中,第三層優(yōu)先級(jí)的每一AI單元對(duì)應(yīng)連接處于最底層優(yōu)先級(jí)的多個(gè)AI單元;
處于所述第三層優(yōu)先級(jí)的每一AI單元根據(jù)接收到的執(zhí)行指令,并根據(jù)對(duì)應(yīng)連接的最底層優(yōu)先級(jí)的每一AI單元的當(dāng)前情況,向?qū)?yīng)連接的最底層優(yōu)先級(jí)的每一AI單元下達(dá)具體的執(zhí)行任務(wù)。
作為上述方案的改進(jìn),所述當(dāng)前的情況包括我方情況、敵方情況以及敵方戰(zhàn)略;所述我方情況包括我方當(dāng)前的兵力和基地發(fā)展情況,所述敵方情況包括敵方當(dāng)前的兵力和基地發(fā)展情況。
作為上述方案的改進(jìn),還包括:
預(yù)先設(shè)定戰(zhàn)略表,所述戰(zhàn)略表中記錄游戲當(dāng)前情況和對(duì)應(yīng)實(shí)施的戰(zhàn)略;
處于最高層優(yōu)先級(jí)的所述AI單元根據(jù)當(dāng)前的情況以及所述戰(zhàn)略表確定己方的戰(zhàn)略。
本發(fā)明實(shí)施例對(duì)應(yīng)提供了一種層次化行為樹的AI構(gòu)建裝置,包括:
最高層優(yōu)先級(jí)戰(zhàn)略制定模塊,使處于最高層優(yōu)先級(jí)的AI單元根據(jù)當(dāng)前的情況確定己方的戰(zhàn)略,并將確定的戰(zhàn)略向處于下一層優(yōu)先級(jí)的AI單元下達(dá)對(duì)應(yīng)的指令;
中間層優(yōu)先級(jí)戰(zhàn)術(shù)執(zhí)行模塊,使中間層優(yōu)先級(jí)的AI單元根據(jù)接收到的上一層優(yōu)先級(jí)下達(dá)的指令執(zhí)行對(duì)應(yīng)的操作,并在執(zhí)行完畢后向處于下一層優(yōu)先級(jí)的AI單元下達(dá)對(duì)應(yīng)的指令;其中,所述中間層優(yōu)先級(jí)包括至少一層優(yōu)先級(jí);
最底層優(yōu)先級(jí)具體執(zhí)行模塊,使處于最底層優(yōu)先級(jí)的每一AI單元根據(jù)上一層優(yōu)先級(jí)下達(dá)的指令執(zhí)行對(duì)應(yīng)的操作;
其中,處于任一層優(yōu)先級(jí)的每一AI單元基于行為樹構(gòu)建。
作為上述方案的改進(jìn),還包括:
變更執(zhí)行任務(wù)條件預(yù)置模塊,用于預(yù)先設(shè)置所述中間層優(yōu)先級(jí)中的任一層變更執(zhí)行上一層優(yōu)先級(jí)下達(dá)的指令所對(duì)應(yīng)的執(zhí)行任務(wù)的條件;
所述中間層優(yōu)先級(jí)戰(zhàn)術(shù)執(zhí)行模塊還用于,當(dāng)變更執(zhí)行上一層優(yōu)先級(jí)下達(dá)的指令所對(duì)應(yīng)的執(zhí)行任務(wù)的條件達(dá)成時(shí),所述中間層優(yōu)先級(jí)的任一層的AI單元更變向處于下一層優(yōu)先級(jí)的AI單元下達(dá)的指令。
作為上述方案的改進(jìn),所述中間層優(yōu)先級(jí)包括第二層優(yōu)先級(jí)和第三層優(yōu)先級(jí):
處于所述第二層優(yōu)先級(jí)的AI單元根據(jù)所述最高層優(yōu)先級(jí)的AI單元下達(dá)的戰(zhàn)略指令制定對(duì)應(yīng)的執(zhí)行方案,根據(jù)執(zhí)行方案創(chuàng)建對(duì)應(yīng)的處于第三層優(yōu)先級(jí)的至少一個(gè)AI單元,并向處于第三層優(yōu)先級(jí)的每一AI單元下達(dá)對(duì)應(yīng)的執(zhí)行指令;其中,第三層優(yōu)先級(jí)的每一AI單元對(duì)應(yīng)連接處于最底層優(yōu)先級(jí)的多個(gè)AI單元;
處于所述第三層優(yōu)先級(jí)的每一AI單元根據(jù)接收到的執(zhí)行指令,并根據(jù)對(duì)應(yīng)連接的最底層優(yōu)先級(jí)的每一AI單元的當(dāng)前情況,向?qū)?yīng)連接的最底層優(yōu)先級(jí)的每一AI單元下達(dá)具體的執(zhí)行任務(wù)。
作為上述方案的改進(jìn),所述當(dāng)前的情況包括我方情況、敵方情況以及敵方戰(zhàn)略;所述我方情況包括我方當(dāng)前的兵力和基地發(fā)展情況,所述敵方情況包括敵方當(dāng)前的兵力和基地發(fā)展情況。
作為上述方案的改進(jìn),還包括:
戰(zhàn)略表預(yù)設(shè)模塊,用于預(yù)先設(shè)定戰(zhàn)略表,所述戰(zhàn)略表中記錄游戲當(dāng)前情況和對(duì)應(yīng)實(shí)施的戰(zhàn)略;
最高層優(yōu)先級(jí)戰(zhàn)略制定模塊還用于,由處于最高層優(yōu)先級(jí)的所述AI單元根據(jù)當(dāng)前的情況以及所述戰(zhàn)略表確定己方的戰(zhàn)略。
本發(fā)明實(shí)施例還提供了一種基于行為樹的游戲AI構(gòu)建方法,包括:
由戰(zhàn)略中心根據(jù)游戲當(dāng)前的情況確定己方的戰(zhàn)略,并將確定的戰(zhàn)略向總指揮下達(dá)對(duì)應(yīng)的指令;
所述總指揮根據(jù)戰(zhàn)略中心下達(dá)的戰(zhàn)略指令制定對(duì)應(yīng)的執(zhí)行方案,根據(jù)執(zhí)行方案創(chuàng)建對(duì)應(yīng)的至少一個(gè)執(zhí)行小組,并向每一所述執(zhí)行小組下達(dá)對(duì)應(yīng)的執(zhí)行指令;其中,每一所述執(zhí)行小組內(nèi)包括多個(gè)戰(zhàn)斗單元;
每一所述執(zhí)行小組根據(jù)總指揮下達(dá)的執(zhí)行指令,并根據(jù)組內(nèi)每一戰(zhàn)斗單元的當(dāng)前情況,向組內(nèi)的每一所述戰(zhàn)斗單元下達(dá)具體的執(zhí)行任務(wù);
每一所述戰(zhàn)斗單元根據(jù)執(zhí)行小組下達(dá)的具體的執(zhí)行任務(wù)執(zhí)行對(duì)應(yīng)的動(dòng)作;
其中,每一所述戰(zhàn)略中心、總指揮、執(zhí)行小組以及戰(zhàn)斗單元均為基于行為樹構(gòu)建的AI單元。
作為上述方案的改進(jìn),還包括:
預(yù)先設(shè)置所述總指揮、執(zhí)行小組變更執(zhí)行上一層優(yōu)先級(jí)下達(dá)的指令所對(duì)應(yīng)的執(zhí)行任務(wù)的條件;
當(dāng)變更執(zhí)行上一層優(yōu)先級(jí)下達(dá)的指令所對(duì)應(yīng)的執(zhí)行任務(wù)的條件達(dá)成時(shí),所述總指揮更變向每一所述執(zhí)行小組下達(dá)的指令或所述執(zhí)行小組更變向每一所述站斗單元下達(dá)的指令。
作為上述方案的改進(jìn),所述當(dāng)前的情況包括我方情況、敵方情況以及敵方戰(zhàn)略;所述我方情況包括我方當(dāng)前的兵力和基地發(fā)展情況,所述敵方情況包括敵方當(dāng)前的兵力和基地發(fā)展情況。
作為上述方案的改進(jìn),還包括:
預(yù)先設(shè)定戰(zhàn)略表,所述戰(zhàn)略表中記錄游戲當(dāng)前情況和對(duì)應(yīng)實(shí)施的戰(zhàn)略;
所述戰(zhàn)略中心根據(jù)當(dāng)前的情況以及所述戰(zhàn)略表確定己方的戰(zhàn)略。
作為上述方案的改進(jìn),所述戰(zhàn)略包括防守反擊、經(jīng)濟(jì)發(fā)育或者全面防守戰(zhàn)略。
本發(fā)明實(shí)施例對(duì)應(yīng)提供了一種基于行為樹的游戲AI構(gòu)建裝置,包括:
戰(zhàn)略制定模塊,使戰(zhàn)略中心根據(jù)游戲當(dāng)前的情況確定己方的戰(zhàn)略,并將確定的戰(zhàn)略向總指揮下達(dá)對(duì)應(yīng)的指令;
戰(zhàn)術(shù)執(zhí)行模塊,使所述總指揮根據(jù)戰(zhàn)略中心下達(dá)的戰(zhàn)略指令制定對(duì)應(yīng)的執(zhí)行方案,根據(jù)執(zhí)行方案創(chuàng)建對(duì)應(yīng)的至少一個(gè)執(zhí)行小組,并向每一所述執(zhí)行小組下達(dá)對(duì)應(yīng)的執(zhí)行指令;其中,每一所述執(zhí)行小組內(nèi)包括多個(gè)戰(zhàn)斗單元;
具體任務(wù)分配模塊,使每一所述執(zhí)行小組根據(jù)總指揮下達(dá)的執(zhí)行指令,并根據(jù)組內(nèi)每一戰(zhàn)斗單元的當(dāng)前情況,向組內(nèi)的每一所述戰(zhàn)斗單元下達(dá)具體的執(zhí)行任務(wù);
具體任務(wù)執(zhí)行模塊,使每一所述戰(zhàn)斗單元根據(jù)執(zhí)行小組下達(dá)的具體的執(zhí)行任務(wù)執(zhí)行對(duì)應(yīng)的動(dòng)作;
其中,每一所述戰(zhàn)略中心、總指揮、執(zhí)行小組以及戰(zhàn)斗單元均為基于行為樹構(gòu)建的AI單元。
作為上述方案的改進(jìn),還包括:
變更執(zhí)行任務(wù)條件預(yù)置模塊,用于預(yù)先設(shè)置所述總指揮、執(zhí)行小組變更執(zhí)行上一層優(yōu)先級(jí)下達(dá)的指令所對(duì)應(yīng)的執(zhí)行任務(wù)的條件;
所述戰(zhàn)術(shù)執(zhí)行模塊還用于,當(dāng)變更執(zhí)行上一層優(yōu)先級(jí)下達(dá)的指令所對(duì)應(yīng)的執(zhí)行任務(wù)的條件達(dá)成時(shí),使所述總指揮更變向每一所述執(zhí)行小組下達(dá)的指令;以及
所述戰(zhàn)術(shù)執(zhí)行模塊還用于,當(dāng)變更執(zhí)行上一層優(yōu)先級(jí)下達(dá)的指令所對(duì)應(yīng)的執(zhí)行任務(wù)的條件達(dá)成時(shí),使所述執(zhí)行小組更變向每一所述站斗單元下達(dá)的指令。
作為上述方案的改進(jìn),所述當(dāng)前的情況包括我方情況、敵方情況以及敵方戰(zhàn)略;所述我方情況包括我方當(dāng)前的兵力和基地發(fā)展情況,所述敵方情況包括敵方當(dāng)前的兵力和基地發(fā)展情況。
作為上述方案的改進(jìn),還包括:
戰(zhàn)略表預(yù)設(shè)模塊,用于預(yù)先設(shè)定戰(zhàn)略表,所述戰(zhàn)略表中記錄游戲當(dāng)前情況和對(duì)應(yīng)實(shí)施的戰(zhàn)略;
所述戰(zhàn)略制定模塊還用于,由所述戰(zhàn)略中心根據(jù)當(dāng)前的情況以及所述戰(zhàn)略表確定己方的戰(zhàn)略。
作為上述方案的改進(jìn),所述戰(zhàn)略包括防守反擊、經(jīng)濟(jì)發(fā)育或者全面防守戰(zhàn)略。
本發(fā)明實(shí)施例還提供了一種游戲控制方法,包括:
通過如上所述的層次化行為樹的AI構(gòu)建方法或如上所述的基于行為樹的游戲AI構(gòu)建方法對(duì)游戲中的每一AI單元完成構(gòu)建;
控制游戲中的每一NPC根據(jù)構(gòu)建后的每一AI單元執(zhí)行對(duì)應(yīng)的操作。
本發(fā)明實(shí)施例對(duì)應(yīng)提供了一種游戲控制裝置,包括:
如上所述的層次化行為樹的AI構(gòu)建裝置或如上所述的基于行為樹的游戲AI構(gòu)建裝置,以對(duì)游戲中的每一AI單元完成構(gòu)建;以及
控制模塊,用于控制游戲中的每一NPC根據(jù)構(gòu)建后的每一AI單元執(zhí)行對(duì)應(yīng)的操作。
本發(fā)明實(shí)施例還提供了一種層次化行為樹的AI系統(tǒng),包括自上而下逐層傳遞指令的多層優(yōu)先級(jí)的AI單元,處于每一層優(yōu)先級(jí)的AI單元根據(jù)上一層優(yōu)先級(jí)的AI單元下達(dá)的指令執(zhí)行對(duì)應(yīng)的操作,并在執(zhí)行完畢后向處于下一層優(yōu)先級(jí)的AI單元下達(dá)對(duì)應(yīng)的指令;其中處于每一層優(yōu)先級(jí)的每一AI單元均通過行為樹構(gòu)建以處理當(dāng)前層級(jí)的行為。
作為上述方案的改進(jìn),當(dāng)預(yù)設(shè)的變更執(zhí)行上一層優(yōu)先級(jí)下達(dá)的指令所對(duì)應(yīng)的執(zhí)行任務(wù)的條件達(dá)成時(shí),處于每一層優(yōu)先級(jí)的AI單元更變向處于下一層優(yōu)先級(jí)的AI單元下達(dá)的指令。
作為上述方案的改進(jìn),處于最頂層優(yōu)先級(jí)的AI單元根據(jù)當(dāng)前情況確定當(dāng)前策略,并根據(jù)確定的當(dāng)前策略向處于下一層優(yōu)先級(jí)的AI單元下達(dá)對(duì)應(yīng)的指令。
與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例公開的一種基于行為樹的AI構(gòu)建方法、裝置和游戲控制方法、裝置及AI系統(tǒng)通過將原本扁平的獨(dú)立AI單元結(jié)構(gòu)適度垂直化,構(gòu)建由戰(zhàn)略制定到戰(zhàn)術(shù)執(zhí)行、自上而下逐層傳遞的整體AI行為樹,由處于最高層優(yōu)先級(jí)的AI單元根據(jù)當(dāng)前的情況確定己方的戰(zhàn)略,并將確定的戰(zhàn)略向處于下一層優(yōu)先級(jí)的AI單元下達(dá)對(duì)應(yīng)的指令;由中間層優(yōu)先級(jí)的AI單元根據(jù)接收到的上一層優(yōu)先級(jí)下達(dá)的指令執(zhí)行對(duì)應(yīng)的操作,并在執(zhí)行完畢后向處于下一層優(yōu)先級(jí)的AI單元下達(dá)對(duì)應(yīng)的指令;其中,所述中間層優(yōu)先級(jí)包括至少一層優(yōu)先級(jí);并由處于最底層優(yōu)先級(jí)的每一AI單元根據(jù)上一層優(yōu)先級(jí)下達(dá)的指令執(zhí)行對(duì)應(yīng)的操作;其中,處于任一層優(yōu)先級(jí)的每一AI單元基于行為樹構(gòu)建。將原相近個(gè)體單位重復(fù)性的決策運(yùn)算交由更高層的AI來統(tǒng)籌處理,從而大幅度減少在此類重復(fù)性決策判斷上的運(yùn)算耗費(fèi),提升整體AI運(yùn)行的效率和穩(wěn)定性。由于每個(gè)AI單元以及整體AI均通過行為樹構(gòu)建,不僅僅可以決定個(gè)體單元的AI行為,而且可以從整體上來實(shí)現(xiàn)單元和單元之間的配合,從而實(shí)現(xiàn)更合理、智能的AI。與傳統(tǒng)的行為樹不同,本發(fā)明實(shí)施例提出的層次行為樹將AI單元重復(fù)性的、統(tǒng)籌規(guī)劃與決策的工作統(tǒng)一交給上層來執(zhí)行,不僅使得整體做出的決策更好,同時(shí)減少了很多的計(jì)算開銷、有效提高運(yùn)行效率以及減少性能消耗。
附圖說明
圖1是采用現(xiàn)有技術(shù)中的基于行為樹的AI構(gòu)建方法構(gòu)建的較大戰(zhàn)斗規(guī)模的游戲示意圖。
圖2是本發(fā)明實(shí)施例1中一種層次化行為樹的AI系統(tǒng)的結(jié)構(gòu)示意圖。
圖3是本發(fā)明實(shí)施例2中一種層次化行為樹的AI構(gòu)建方法的流程示意圖。
圖4是利用本發(fā)明實(shí)施例2中一種層次化行為樹的AI構(gòu)建方法所構(gòu)建的層次化行為樹示意圖。
圖5是本實(shí)施例3中一種基于行為樹的游戲AI構(gòu)建方法的流程示意圖。
圖6是利用本發(fā)明實(shí)施例3中一種基于行為樹的游戲AI構(gòu)建方法所構(gòu)建的層次化行為樹示意圖。
圖7a~7d是利用本發(fā)明實(shí)施例3中一種基于行為樹的游戲AI構(gòu)建方法所構(gòu)建的層次化行為樹中的每一層的AI單元的行為樹示意圖。
圖8是本實(shí)施例4中一種游戲控制方法的流程示意圖。
圖9是本發(fā)明實(shí)施例5中一種層次化行為樹的AI構(gòu)建裝置的結(jié)構(gòu)框圖。
圖10是本發(fā)明實(shí)施例6中一種基于行為樹的游戲AI構(gòu)建裝置的結(jié)構(gòu)框圖。
圖11是本發(fā)明實(shí)施例7中一種游戲控制裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明提供的基于層次化行為樹AI構(gòu)建方法、裝置和游戲控制方法、裝置及AI系統(tǒng),是為了能夠滿足群體性的需求,保證了整個(gè)AI的合理、智能,同時(shí)避免了每個(gè)單獨(dú)AI的重復(fù)性的決策運(yùn)算,使得整體AI執(zhí)行的高效有序。
本發(fā)明實(shí)施例1提供一種由戰(zhàn)略制定到戰(zhàn)術(shù)執(zhí)行、自上而下逐層傳遞的AI系統(tǒng)(結(jié)構(gòu)),在這樣的AI結(jié)構(gòu)中,不僅僅可以決定個(gè)體單位的AI行為,而且可以從整體上來實(shí)現(xiàn)單元和單元,或小組與小組之間的配合,從而實(shí)現(xiàn)更合理、智能的AI。
參見圖2,本發(fā)明實(shí)施例1提供的一種層次化行為樹的AI系統(tǒng),其包括多個(gè)自上而下逐層傳遞指令的多層優(yōu)先級(jí)的AI單元10,處于每一層優(yōu)先級(jí)的AI單元10根據(jù)上一層優(yōu)先級(jí)的AI單元10下達(dá)的指令執(zhí)行對(duì)應(yīng)的操作,并在執(zhí)行完畢后向處于下一層優(yōu)先級(jí)的AI單元10下達(dá)對(duì)應(yīng)的指令;其中處于每一層優(yōu)先級(jí)的每一AI單元10均通過行為樹構(gòu)建以處理當(dāng)前層級(jí)的行為。
在實(shí)施例時(shí),處于最頂層優(yōu)先級(jí)的AI單元10根據(jù)當(dāng)前情況確定當(dāng)前策略,并根據(jù)確定的當(dāng)前策略向處于下一層優(yōu)先級(jí)的AI單元10下達(dá)對(duì)應(yīng)的指令。處于最底層優(yōu)先級(jí)的每一AI單元10根據(jù)上一層優(yōu)先級(jí)下達(dá)的指令執(zhí)行對(duì)應(yīng)的操作。
另外,在本實(shí)施例中,當(dāng)預(yù)設(shè)的變更執(zhí)行上一層優(yōu)先級(jí)下達(dá)的指令所對(duì)應(yīng)的執(zhí)行任務(wù)的條件達(dá)成時(shí),除去處于最頂層優(yōu)先級(jí)的AI單元10和處于最底層優(yōu)先級(jí)的每一AI單元10外,處于每一層優(yōu)先級(jí)的AI單元10更變向處于下一層優(yōu)先級(jí)的AI單元下達(dá)的指令。
在傳統(tǒng)的行為樹中,每個(gè)單元自身從決策到行為構(gòu)成一顆樹,每個(gè)AI單元都要進(jìn)行完整的決策和運(yùn)算。與傳統(tǒng)的行為樹不同,本發(fā)明實(shí)施例提供的AI系統(tǒng)本身就是一顆樹,其囊括了整個(gè)AI(例如整個(gè)游戲中所需的AI)所需要的各個(gè)層級(jí),各個(gè)層級(jí)中的AI單元又有自己的行為樹,來處理當(dāng)前層級(jí)的行為,并根據(jù)接收到的上層優(yōu)先級(jí)下達(dá)的指令,做出具體的執(zhí)行,并在執(zhí)行完畢后下達(dá)對(duì)應(yīng)的指令下去給處于下一層優(yōu)先級(jí)的AI單元。
因此,實(shí)施本實(shí)施例時(shí),處于最底層優(yōu)先級(jí)的每一AI單元只需要根據(jù)最簡(jiǎn)單的指令執(zhí)行對(duì)簡(jiǎn)單的動(dòng)作(例如,在游戲中的攻擊、待命、移動(dòng)、治療等動(dòng)作),而整體的統(tǒng)籌規(guī)劃與決策,由上層來完成,從而保證了整個(gè)AI的合理、智能,同時(shí)避免了每個(gè)AI單元重復(fù)性的決策運(yùn)算,使得整體AI執(zhí)行的高效有序。
另外,本實(shí)施例是基于目前的行為樹結(jié)構(gòu)的基礎(chǔ)上進(jìn)行改進(jìn)的,因此依然保持行為樹的優(yōu)點(diǎn):便于維護(hù)、更改,清晰,復(fù)用性高等。
下面,通過多個(gè)具體的實(shí)施例來進(jìn)一步闡述基于本發(fā)明實(shí)施例所提出的層次化行為樹的AI系統(tǒng)的核心思想,如何進(jìn)一步實(shí)現(xiàn)層次化行為樹的AI構(gòu)建方法及裝置、游戲控制方法及裝置。
參考圖3,本發(fā)明實(shí)施例2提供的一種層次化行為樹的AI構(gòu)建方法的流程示意圖。該層次化行為樹的AI構(gòu)建方法包括步驟:
S21、由處于最高層優(yōu)先級(jí)的AI單元根據(jù)當(dāng)前的情況確定己方的戰(zhàn)略,并將確定的戰(zhàn)略向處于下一層優(yōu)先級(jí)的AI單元下達(dá)對(duì)應(yīng)的指令;
S22、由中間層優(yōu)先級(jí)的AI單元根據(jù)接收到的上一層優(yōu)先級(jí)下達(dá)的指令執(zhí)行對(duì)應(yīng)的操作,并在執(zhí)行完畢后向處于下一層優(yōu)先級(jí)的AI單元下達(dá)對(duì)應(yīng)的指令;其中,所述中間層優(yōu)先級(jí)包括至少一層優(yōu)先級(jí);
S23、由處于最底層優(yōu)先級(jí)的每一AI單元根據(jù)上一層優(yōu)先級(jí)下達(dá)的指令執(zhí)行對(duì)應(yīng)的操作;其中,處于任一層優(yōu)先級(jí)的每一AI單元基于行為樹構(gòu)建。
結(jié)合圖4,在本實(shí)施例中,所述中間層優(yōu)先級(jí)包括第二層優(yōu)先級(jí)和第三層優(yōu)先級(jí)。所述步驟S22進(jìn)一步包括:
處于所述第二層優(yōu)先級(jí)的AI單元根據(jù)所述最高層優(yōu)先級(jí)的AI單元下達(dá)的戰(zhàn)略指令制定對(duì)應(yīng)的執(zhí)行方案,根據(jù)執(zhí)行方案創(chuàng)建對(duì)應(yīng)的處于第三層優(yōu)先級(jí)的至少一個(gè)AI單元,并向處于第三層優(yōu)先級(jí)的每一AI單元下達(dá)對(duì)應(yīng)的執(zhí)行指令;其中,第三層優(yōu)先級(jí)的每一AI單元對(duì)應(yīng)連接處于最底層優(yōu)先級(jí)的多個(gè)AI單元;
處于所述第三層優(yōu)先級(jí)的每一AI單元根據(jù)接收到的執(zhí)行指令,并根據(jù)對(duì)應(yīng)連接的最底層優(yōu)先級(jí)的每一AI單元的當(dāng)前情況,向?qū)?yīng)連接的最底層優(yōu)先級(jí)的每一AI單元下達(dá)具體的執(zhí)行任務(wù)。
優(yōu)選的,本實(shí)施例提供的一種層次化行為樹的AI構(gòu)建方法中,還包括步驟:
預(yù)先設(shè)置所述中間層優(yōu)先級(jí)中的任一層變更執(zhí)行上一層優(yōu)先級(jí)下達(dá)的指令所對(duì)應(yīng)的執(zhí)行任務(wù)的條件;
當(dāng)變更執(zhí)行上一層優(yōu)先級(jí)下達(dá)的指令所對(duì)應(yīng)的執(zhí)行任務(wù)的條件達(dá)成時(shí),所述中間層優(yōu)先級(jí)的任一層的AI單元更變向處于下一層優(yōu)先級(jí)的AI單元下達(dá)的指令。
另外,本實(shí)施例提供的一種層次化行為樹的AI構(gòu)建方法還包括步驟:
預(yù)先設(shè)定戰(zhàn)略表,所述戰(zhàn)略表中記錄游戲當(dāng)前情況和對(duì)應(yīng)實(shí)施的戰(zhàn)略;
處于最高層優(yōu)先級(jí)的所述AI單元根據(jù)當(dāng)前的情況以及所述戰(zhàn)略表確定己方的戰(zhàn)略。
可以理解的,實(shí)施例中所述當(dāng)前的情況包括我方情況、敵方情況以及敵方戰(zhàn)略;所述我方情況包括我方當(dāng)前的兵力和基地發(fā)展情況,所述敵方情況包括敵方當(dāng)前的兵力和基地發(fā)展情況。而所述戰(zhàn)略包括防守反擊、經(jīng)濟(jì)發(fā)育或者全面防守戰(zhàn)略等。
可以理解的,本實(shí)施例的所述中間層優(yōu)先級(jí)并不局限于本實(shí)施例所舉例的兩層——第二層優(yōu)先級(jí)和第三層優(yōu)先級(jí),所述中間層優(yōu)先級(jí)的層數(shù)可根據(jù)具體實(shí)施需求而設(shè)定。
本實(shí)施例提供的一種層次化行為樹的AI構(gòu)建方法由處于最高層優(yōu)先級(jí)的AI單元根據(jù)當(dāng)前的情況確定己方的戰(zhàn)略,并將確定的戰(zhàn)略向處于下一層優(yōu)先級(jí)的AI單元下達(dá)對(duì)應(yīng)的指令;由中間層優(yōu)先級(jí)的AI單元根據(jù)接收到的上一層優(yōu)先級(jí)下達(dá)的指令執(zhí)行對(duì)應(yīng)的操作,并在執(zhí)行完畢后向處于下一層優(yōu)先級(jí)的AI單元下達(dá)對(duì)應(yīng)的指令;其中,所述中間層優(yōu)先級(jí)包括至少一層優(yōu)先級(jí);并由處于最底層優(yōu)先級(jí)的每一AI單元根據(jù)上一層優(yōu)先級(jí)下達(dá)的指令執(zhí)行對(duì)應(yīng)的操作;其中,處于任一層優(yōu)先級(jí)的每一AI單元基于行為樹構(gòu)建。將原相近個(gè)體單位重復(fù)性的決策運(yùn)算交由更高層的AI來統(tǒng)籌處理,從而大幅度減少在此類重復(fù)性決策判斷上的運(yùn)算耗費(fèi),提升整體AI運(yùn)行的效率和穩(wěn)定性。
參考圖5,是本發(fā)明實(shí)施例3提供的一種基于行為樹的游戲AI構(gòu)建方法,該方法包括步驟:
S31、由戰(zhàn)略中心根據(jù)游戲當(dāng)前的情況確定己方的戰(zhàn)略,并將確定的戰(zhàn)略向總指揮下達(dá)對(duì)應(yīng)的指令;
S32、所述總指揮根據(jù)戰(zhàn)略中心下達(dá)的戰(zhàn)略指令制定對(duì)應(yīng)的執(zhí)行方案,根據(jù)執(zhí)行方案創(chuàng)建對(duì)應(yīng)的至少一個(gè)執(zhí)行小組,并向每一所述執(zhí)行小組下達(dá)對(duì)應(yīng)的執(zhí)行指令;其中,每一所述執(zhí)行小組內(nèi)包括多個(gè)戰(zhàn)斗單元;
S33、每一所述執(zhí)行小組根據(jù)總指揮下達(dá)的執(zhí)行指令,并根據(jù)組內(nèi)每一戰(zhàn)斗單元的當(dāng)前情況,向組內(nèi)的每一所述戰(zhàn)斗單元下達(dá)具體的執(zhí)行任務(wù);
S34、每一所述戰(zhàn)斗單元根據(jù)執(zhí)行小組下達(dá)的具體的執(zhí)行任務(wù)執(zhí)行對(duì)應(yīng)的動(dòng)作;其中,每一所述戰(zhàn)略中心、總指揮、執(zhí)行小組以及戰(zhàn)斗單元均為基于行為樹構(gòu)建的AI單元。
優(yōu)選的,本實(shí)施例提供的一種基于行為樹的游戲AI構(gòu)建方法中,還包括步驟:
預(yù)先設(shè)置所述總指揮、執(zhí)行小組變更執(zhí)行上一層優(yōu)先級(jí)下達(dá)的指令所對(duì)應(yīng)的執(zhí)行任務(wù)的條件;
當(dāng)變更執(zhí)行上一層優(yōu)先級(jí)下達(dá)的指令所對(duì)應(yīng)的執(zhí)行任務(wù)的條件達(dá)成時(shí),所述總指揮更變向每一所述執(zhí)行小組下達(dá)的指令或所述執(zhí)行小組更變向每一所述站斗單元下達(dá)的指令。
另外,本實(shí)施例提供的一種基于行為樹的游戲AI構(gòu)建方法中,還包括步驟:
預(yù)先設(shè)定戰(zhàn)略表,所述戰(zhàn)略表中記錄游戲當(dāng)前情況和對(duì)應(yīng)實(shí)施的戰(zhàn)略;
所述戰(zhàn)略中心根據(jù)當(dāng)前的情況以及所述戰(zhàn)略表確定己方的戰(zhàn)略。
可以理解的,實(shí)施例中所述當(dāng)前的情況包括我方情況、敵方情況以及敵方戰(zhàn)略;所述我方情況包括我方當(dāng)前的兵力和基地發(fā)展情況,所述敵方情況包括敵方當(dāng)前的兵力和基地發(fā)展情況。而所述戰(zhàn)略包括防守反擊、經(jīng)濟(jì)發(fā)育或者全面防守戰(zhàn)略等。
下面,結(jié)合圖6,對(duì)本發(fā)明實(shí)施例的工作原理及過程進(jìn)行詳細(xì)的描述。
發(fā)明人是實(shí)施本發(fā)明時(shí),是受到了現(xiàn)實(shí)生活中軍隊(duì)作戰(zhàn)命令傳達(dá)的啟發(fā),以實(shí)現(xiàn)一套層次化的行為樹。在軍隊(duì)作戰(zhàn)時(shí),每個(gè)作戰(zhàn)單位的命令都是由其直接上層傳達(dá)的,例如排長(zhǎng),每個(gè)排長(zhǎng)接收到作戰(zhàn)任務(wù)時(shí)會(huì)負(fù)責(zé)整個(gè)排的行為,為每個(gè)作戰(zhàn)單位下達(dá)指令。排長(zhǎng)的指令是連長(zhǎng)下達(dá)的,連長(zhǎng)會(huì)根據(jù)上層交代的作戰(zhàn)任務(wù)分配給各個(gè)排,為每個(gè)排下達(dá)其更具體的任務(wù),并且統(tǒng)籌各個(gè)排之間的協(xié)作關(guān)系。連長(zhǎng)由營(yíng)長(zhǎng),營(yíng)長(zhǎng)由團(tuán)長(zhǎng),團(tuán)長(zhǎng)由旅長(zhǎng),旅長(zhǎng)由師長(zhǎng),師長(zhǎng)由軍長(zhǎng),軍長(zhǎng)由司令。最終作戰(zhàn)指令這樣一層一層關(guān)系傳達(dá)下來,每一層收到上層指令后都會(huì)根據(jù)該指令指定更細(xì)化的戰(zhàn)術(shù),并集結(jié)隊(duì)伍,給每個(gè)隊(duì)伍或單元下達(dá)指令。這樣的作戰(zhàn)方式不僅讓每個(gè)作戰(zhàn)單位都在做一件對(duì)整個(gè)戰(zhàn)局最有利的事情,讓AI顯得非常智能。
基于上述啟發(fā),本發(fā)明人在實(shí)施本發(fā)明的時(shí)候,提出了一種層次化的行為樹結(jié)構(gòu),如圖6所示。
由于游戲的單元通常沒有真實(shí)戰(zhàn)爭(zhēng)中的人數(shù)多,所以本發(fā)明實(shí)施例僅用一個(gè)四層的結(jié)構(gòu)舉例說明,如果需要可以增加層數(shù),并不影響本發(fā)明的實(shí)施效果。
在該四層的行為樹結(jié)構(gòu)中,總指揮對(duì)應(yīng)了總司令,執(zhí)行小組對(duì)應(yīng)了排長(zhǎng)。中間的軍師旅團(tuán)營(yíng)連都可以先不考慮。戰(zhàn)略中心是一個(gè)特殊的單位,對(duì)應(yīng)了總司令的智囊團(tuán),分析整個(gè)戰(zhàn)局的情況,向司令推薦戰(zhàn)略計(jì)劃。
通常來說,一個(gè)標(biāo)準(zhǔn)的游戲AI所需要的內(nèi)容主要包含了四個(gè)部分,1、計(jì)劃識(shí)別;2、戰(zhàn)略制定;3、戰(zhàn)術(shù)執(zhí)行;4、自我學(xué)習(xí)。
圖6所示的行為樹結(jié)構(gòu)夠滿足游戲標(biāo)準(zhǔn)的AI需求,甚至包括RTS(即時(shí)策略)游戲,具體的:
計(jì)劃識(shí)別
本實(shí)施例的戰(zhàn)略中心用于進(jìn)行實(shí)現(xiàn)計(jì)劃識(shí)別,具體根據(jù)當(dāng)前的戰(zhàn)況來確定己方的戰(zhàn)略,戰(zhàn)況包括我方情況、敵方情況、敵方的戰(zhàn)術(shù)等。
戰(zhàn)略制定
最頂層優(yōu)先級(jí),通過設(shè)置不同的參數(shù)來實(shí)現(xiàn)不同的性格,如傾向快速進(jìn)攻、傾向快速發(fā)展科技等,以分配各個(gè)事情的優(yōu)先級(jí),為了達(dá)到最終的勝利。不但使得AI有趣、更具挑戰(zhàn)性,同時(shí)也讓AI變得容易升級(jí)。在這里同樣對(duì)應(yīng)了戰(zhàn)略中心。通常來說,戰(zhàn)略中心會(huì)根據(jù)默認(rèn)的戰(zhàn)略向總指揮下達(dá)戰(zhàn)略指令。而當(dāng)當(dāng)前情況發(fā)生改變時(shí)(例如,識(shí)別敵人戰(zhàn)略改變后)可能會(huì)修改戰(zhàn)略,從而下達(dá)了新的指令。例如,一開始是強(qiáng)調(diào)經(jīng)濟(jì)發(fā)育的,然而當(dāng)敵人來犯時(shí),戰(zhàn)略中心就會(huì)暫時(shí)放棄經(jīng)濟(jì)發(fā)育,轉(zhuǎn)為防守。
戰(zhàn)術(shù)執(zhí)行
戰(zhàn)術(shù)執(zhí)行是指各單位或小組根據(jù)戰(zhàn)略、戰(zhàn)術(shù)在一段時(shí)間內(nèi)具體實(shí)施的行為。戰(zhàn)術(shù)的執(zhí)行決定需要遵循一些基本原則——每個(gè)AI單元本身的特點(diǎn)、接收到的指令和戰(zhàn)術(shù)方案等,例如在最短的時(shí)間內(nèi)消滅敵方最多的火力輸出點(diǎn)。本實(shí)施例提出的層次行為樹結(jié)構(gòu)中,總指揮、執(zhí)行小組到戰(zhàn)斗單元都屬于戰(zhàn)術(shù)執(zhí)行層。
自我學(xué)習(xí)
通過自我學(xué)習(xí)來豐富戰(zhàn)略和戰(zhàn)術(shù),同時(shí)可以更強(qiáng)化計(jì)劃識(shí)別模塊,以應(yīng)對(duì)更多的情況,從而提升AI的豐富程度和智能程度。
在傳統(tǒng)的行為樹中,單位自身從決策到行為構(gòu)成一顆樹,每個(gè)單位都要進(jìn)行完整的決策和運(yùn)算。與傳統(tǒng)的行為樹不同,本實(shí)施例提供的行為屬結(jié)構(gòu)本身就是一顆樹,其囊括了整個(gè)AI所需要的各個(gè)層級(jí)——戰(zhàn)略中心、總指揮、執(zhí)行小組,以及戰(zhàn)斗單元。各個(gè)層級(jí)又有自己的行為樹,來處理當(dāng)前層級(jí)的行為,根據(jù)接收到的指令,做出具體的戰(zhàn)術(shù),并下達(dá)下去。其中:
戰(zhàn)略中心是整棵樹的最上層,也是整個(gè)決策鏈的大腦,用來根據(jù)當(dāng)前的戰(zhàn)況確定戰(zhàn)略,并通知總指揮執(zhí)行指定的戰(zhàn)略??傊笓]是虛擬的最高執(zhí)行單元(戰(zhàn)略中心為最高戰(zhàn)略單元),總指揮的任務(wù)就是根據(jù)戰(zhàn)略中心下達(dá)的戰(zhàn)略制定出執(zhí)行方案,并根據(jù)執(zhí)行方案創(chuàng)建出對(duì)應(yīng)的執(zhí)行小組,并負(fù)責(zé)隊(duì)伍之間的統(tǒng)籌。執(zhí)行小組是虛擬的執(zhí)行單元,其任務(wù)就是根據(jù)總指揮下達(dá)的執(zhí)行目標(biāo),負(fù)責(zé)起整個(gè)小組AI的管理,包括隊(duì)內(nèi)的統(tǒng)籌。在經(jīng)過執(zhí)行小組的處理后,執(zhí)行小組內(nèi)的每一個(gè)戰(zhàn)斗單元會(huì)得到一個(gè)具體的執(zhí)行任務(wù)??梢岳斫獾?,當(dāng)執(zhí)行小組的行為樹被切換或狀態(tài)切換之后,對(duì)應(yīng)小組內(nèi)的每一戰(zhàn)斗單元就會(huì)切換其將執(zhí)行的行為。
下面結(jié)合圖7a~7d進(jìn)一步說明。例如,檢測(cè)到敵方派兵前來進(jìn)犯我方基地,首先進(jìn)行決策判斷的是戰(zhàn)略中心。戰(zhàn)略中心對(duì)其能掌握的信息進(jìn)行分析,我方目前的兵力、敵方的兵力、我方目前的基地的發(fā)展情況、敵方基地的發(fā)展情況等,然后制定一個(gè)總戰(zhàn)略。如若敵方進(jìn)犯兵力較弱(如為5個(gè)普通步兵),戰(zhàn)略中心認(rèn)為目前己方兵力強(qiáng)勁(如我方有5個(gè)克制步兵的狙擊手,同時(shí)還擁有其他的部隊(duì)),從而制定出一個(gè)防守反擊的戰(zhàn)略。又或者,若敵方兵力較強(qiáng),戰(zhàn)略中心制定出一個(gè)在全面防守的戰(zhàn)略。一般的,戰(zhàn)略中心開始游戲時(shí)會(huì)有默認(rèn)的戰(zhàn)略來向總指揮傳達(dá),在游戲過程中并會(huì)當(dāng)前情況的改變來修改戰(zhàn)略。
總指揮收到戰(zhàn)略中心下達(dá)的戰(zhàn)略指令后,開始將戰(zhàn)略指令交付執(zhí)行。如戰(zhàn)略中心下達(dá)的戰(zhàn)略指令為防守反擊??傊笓]收到戰(zhàn)略指令后,開始組建對(duì)應(yīng)的防守小組和反擊小組。如果下達(dá)的是經(jīng)濟(jì)發(fā)育戰(zhàn)略,總指揮則會(huì)組建采礦小組,并給采礦小組下達(dá)命令為著手采礦。如果下達(dá)的是全面防守戰(zhàn)略,總指揮則會(huì)動(dòng)員所有民兵,組建了防守小組,并下達(dá)命令為防守。
反擊小組收到總指揮的反擊指令后,其目標(biāo)就是打好當(dāng)前的反擊戰(zhàn),如其中某個(gè)反擊小組收到的具體指令為保持陣型、從正面直接進(jìn)攻敵方,則其發(fā)現(xiàn)自己組由機(jī)槍兵和醫(yī)療兵(每個(gè)機(jī)槍兵和醫(yī)療兵均為一個(gè)具體的作戰(zhàn)單位,也即戰(zhàn)斗單元)構(gòu)成,因而其會(huì)負(fù)責(zé)陣形——機(jī)槍先行,醫(yī)療兵跟進(jìn),并保持向前行進(jìn)。于是機(jī)槍兵的行為就是向前行進(jìn),而醫(yī)療兵則是跟在機(jī)槍后面跟隨。
防守小組收到總指揮的防守指令后,其目標(biāo)就是打好當(dāng)前的防守戰(zhàn),其負(fù)責(zé)向隊(duì)員下達(dá)移動(dòng)至防御建筑的指令,并讓醫(yī)療兵在機(jī)槍兵后面。到達(dá)指定位置后,都進(jìn)入巡邏狀態(tài),發(fā)現(xiàn)敵人后進(jìn)行攻擊。
采礦小組收到總指揮的采礦指令后,根據(jù)小組的采礦單位數(shù)和目標(biāo)礦區(qū)的情況,分配好小組內(nèi)各采礦單位的目標(biāo)礦位,然后向組內(nèi)各采礦單位(每個(gè)采礦單位均為一個(gè)具體的作戰(zhàn)單位,也即戰(zhàn)斗單元)下達(dá)指令——向目標(biāo)礦位移動(dòng)并進(jìn)行采礦。
采礦小組中的每個(gè)作戰(zhàn)單位此時(shí)收到的是非常具體的行為指令,采礦小組中的每個(gè)作戰(zhàn)單位不需要去知道當(dāng)前敵我雙方的戰(zhàn)況,也不需要去考慮其他農(nóng)民、作戰(zhàn)單位等等的情況,每個(gè)作戰(zhàn)單位各自要做的只是執(zhí)行采礦小組下達(dá)的指令——向?qū)?yīng)的目標(biāo)礦位移動(dòng)并進(jìn)行采礦。
隨著戰(zhàn)斗的進(jìn)行,戰(zhàn)略中心、總指揮、執(zhí)行小組都有為了完整實(shí)現(xiàn)上層交付自己的指令而變更所下達(dá)指令的條件,當(dāng)這些條件達(dá)成,其向下層下達(dá)的指令就可能發(fā)生變更。
例如,上述的例子中,總指揮向反擊小組下達(dá)的指令為反擊。反擊小組下達(dá)的第一個(gè)指令是保持陣形向地方基地行進(jìn)。但是其反擊小組在行進(jìn)的過程中,可能發(fā)生其他遭遇戰(zhàn),導(dǎo)致部隊(duì)受傷。這時(shí),反擊小組根據(jù)預(yù)先設(shè)定的變更條件,確定目前需要先原地恢復(fù)下狀態(tài),于是向下層下達(dá)指令——機(jī)槍待命,醫(yī)療兵前去治療自己指定的受傷機(jī)槍。此時(shí),反擊小組內(nèi)的機(jī)槍要做的就是待命,而醫(yī)療兵要做的就是前去治療自己制定的受傷機(jī)槍。
從上面的例子中可以看到,本發(fā)明實(shí)施例提出的層次行為樹結(jié)構(gòu)中,每個(gè)具體的戰(zhàn)斗單元,只需要進(jìn)行最簡(jiǎn)單的指令(如攻擊、待命、移動(dòng)、治療等)。而整體的統(tǒng)籌規(guī)劃與決策,由上層來完成。從而保證了整個(gè)AI的合理、智能,同時(shí)避免了每個(gè)子單位重復(fù)性的決策運(yùn)算,使得整體AI執(zhí)行的高效有序。高層統(tǒng)籌規(guī)劃及決策,制定戰(zhàn)略,設(shè)定戰(zhàn)術(shù),并通過執(zhí)行小組分配每一個(gè)戰(zhàn)斗單元具體的任務(wù)目標(biāo)。
通過實(shí)施本實(shí)施例,能夠?qū)崿F(xiàn)層次行為樹對(duì)AI運(yùn)行效率的有效提升。前面已經(jīng)提到,與傳統(tǒng)的行為樹不同,本發(fā)明實(shí)施例的層次行為樹將戰(zhàn)斗單元重復(fù)性的、統(tǒng)籌規(guī)劃與決策的工作統(tǒng)一交給上層來執(zhí)行,不僅使得整體做出的決策更好,同時(shí)減少了很多的計(jì)算開銷。
假設(shè)有100個(gè)醫(yī)療兵,10000個(gè)士兵:
基于傳統(tǒng)行為樹的AI設(shè)計(jì)中,由于所有的決策都是由單個(gè)醫(yī)療兵來完成的,每個(gè)醫(yī)療兵都會(huì)對(duì)這10000個(gè)士兵遍歷檢測(cè)其是否需要加血,那么最壞情況下,這樣的判斷總共需要執(zhí)行100*10000次運(yùn)算。而基于本發(fā)明實(shí)施例提出的AI構(gòu)建方法,目標(biāo)的分配是由執(zhí)行小組來完成的,其最壞情況下也只需要對(duì)10000個(gè)士兵進(jìn)行一次檢測(cè),即10000次運(yùn)算,效率提升了100倍。從這里我們可以很直觀的分析到,傳統(tǒng)行為樹AI設(shè)計(jì)中100個(gè)醫(yī)療兵分別作出的遍歷檢測(cè)實(shí)際上是重復(fù)的、非常低效的。
仍然以10000個(gè)士兵和100個(gè)醫(yī)療兵的小組為例,若要保證在隊(duì)伍行進(jìn)過程中每個(gè)醫(yī)療兵都要在士兵后面,以保證遭遇戰(zhàn)中隊(duì)伍處于最佳狀態(tài)。在這樣的目標(biāo)下,如果基于傳統(tǒng)行為樹的AI設(shè)計(jì),需要每個(gè)醫(yī)療兵都各自檢測(cè)后面是否有士兵,有就停下來,那么總共需要10000*100次判斷運(yùn)算。而基于本發(fā)明實(shí)施例提出的AI構(gòu)建方法,由該執(zhí)行小組來完成,則只需要先花費(fèi)10000次判斷找到最靠后的士兵,而后再查看100個(gè)醫(yī)療兵中是否有在這名最靠后的士兵之前的,若有,則停止。這樣由執(zhí)行小組來完成的操作,最壞情況下也只需要花費(fèi)100+10000=10100次判斷運(yùn)算,對(duì)應(yīng)的效率提升是100*10000/10100≈100倍,隨著小組單位數(shù)量的提升,效率提升的倍數(shù)會(huì)線性提升。
傳統(tǒng)行為樹的AI設(shè)計(jì)結(jié)構(gòu)是扁平的,各個(gè)單位獨(dú)立完成從統(tǒng)籌決策到執(zhí)行所有的運(yùn)算。而本發(fā)明實(shí)施例提出的層次行為樹的理念是,將原本扁平的單位AI結(jié)構(gòu)適度垂直化,從而將原相近個(gè)體單位重復(fù)性的決策運(yùn)算交由更高層的AI來統(tǒng)籌處理,從而大幅度減少在此類重復(fù)性決策判斷上的運(yùn)算耗費(fèi),提升整體AI運(yùn)行的效率和穩(wěn)定性。
可見,本實(shí)施例提供的一種基于行為樹的游戲AI構(gòu)建方法,由戰(zhàn)略中心根據(jù)游戲當(dāng)前的情況確定己方的戰(zhàn)略,并將確定的戰(zhàn)略向總指揮下達(dá)對(duì)應(yīng)的指令;所述總指揮根據(jù)戰(zhàn)略中心下達(dá)的戰(zhàn)略指令制定對(duì)應(yīng)的執(zhí)行方案,根據(jù)執(zhí)行方案創(chuàng)建對(duì)應(yīng)的至少一個(gè)執(zhí)行小組,并向每一所述執(zhí)行小組下達(dá)對(duì)應(yīng)的執(zhí)行指令;其中,每一所述執(zhí)行小組內(nèi)包括多個(gè)戰(zhàn)斗單元;每一所述執(zhí)行小組根據(jù)總指揮下達(dá)的執(zhí)行指令,并根據(jù)組內(nèi)每一戰(zhàn)斗單元的當(dāng)前情況,向組內(nèi)的每一所述戰(zhàn)斗單元下達(dá)具體的執(zhí)行任務(wù);每一所述戰(zhàn)斗單元根據(jù)執(zhí)行小組下達(dá)的具體的執(zhí)行任務(wù)執(zhí)行對(duì)應(yīng)的動(dòng)作;其中,每一所述戰(zhàn)略中心、總指揮、執(zhí)行小組以及戰(zhàn)斗單元均為基于行為樹構(gòu)建的AI單元。將AI單元重復(fù)性的、統(tǒng)籌規(guī)劃與決策的工作統(tǒng)一交給上層來執(zhí)行,不僅使得整體做出的決策更好,同時(shí)減少了很多的計(jì)算開銷、有效提高運(yùn)行效率以及減少性能消耗。
參考圖8,圖8是本實(shí)施例4中一種游戲控制方法的流程示意圖。本實(shí)施例的游戲控制方法包括步驟:
S41、通過如圖3所示的層次化行為樹的AI構(gòu)建方法或如圖5所示的基于行為樹的游戲AI構(gòu)建方法對(duì)游戲中的每一AI單元完成構(gòu)建;
S42、控制游戲中的每一NPC根據(jù)構(gòu)建后的每一AI單元執(zhí)行對(duì)應(yīng)的操作。
其中,本實(shí)施例的游戲控制方法的步驟S41的具體實(shí)現(xiàn)過程請(qǐng)參考前述內(nèi)容,而步驟S42的具體實(shí)現(xiàn)原理為本領(lǐng)域技術(shù)人員所了解,在此不再贅述。
參考圖9,圖9是本發(fā)明實(shí)施例5中一種層次化行為樹的AI構(gòu)建裝置的結(jié)構(gòu)框圖。該AI構(gòu)建裝置包括:
最高層優(yōu)先級(jí)戰(zhàn)略制定模塊51,使處于最高層優(yōu)先級(jí)的AI單元根據(jù)當(dāng)前的情況確定己方的戰(zhàn)略,并將確定的戰(zhàn)略向處于下一層優(yōu)先級(jí)的AI單元下達(dá)對(duì)應(yīng)的指令;
中間層優(yōu)先級(jí)戰(zhàn)術(shù)執(zhí)行模塊52,使中間層優(yōu)先級(jí)的AI單元根據(jù)接收到的上一層優(yōu)先級(jí)下達(dá)的指令執(zhí)行對(duì)應(yīng)的操作,并在執(zhí)行完畢后向處于下一層優(yōu)先級(jí)的AI單元下達(dá)對(duì)應(yīng)的指令;其中,所述中間層優(yōu)先級(jí)包括至少一層優(yōu)先級(jí);
最底層優(yōu)先級(jí)具體執(zhí)行模塊53,使處于最底層優(yōu)先級(jí)的每一AI單元根據(jù)上一層優(yōu)先級(jí)下達(dá)的指令執(zhí)行對(duì)應(yīng)的操作;其中,處于任一層優(yōu)先級(jí)的每一AI單元基于行為樹構(gòu)建。
優(yōu)選的,在本實(shí)施例中,所述中間層優(yōu)先級(jí)包括第二層優(yōu)先級(jí)和第三層優(yōu)先級(jí):
處于所述第二層優(yōu)先級(jí)的AI單元根據(jù)所述最高層優(yōu)先級(jí)的AI單元下達(dá)的戰(zhàn)略指令制定對(duì)應(yīng)的執(zhí)行方案,根據(jù)執(zhí)行方案創(chuàng)建對(duì)應(yīng)的處于第三層優(yōu)先級(jí)的至少一個(gè)AI單元,并向處于第三層優(yōu)先級(jí)的每一AI單元下達(dá)對(duì)應(yīng)的執(zhí)行指令;其中,第三層優(yōu)先級(jí)的每一AI單元對(duì)應(yīng)連接處于最底層優(yōu)先級(jí)的多個(gè)AI單元;
處于所述第三層優(yōu)先級(jí)的每一AI單元根據(jù)接收到的執(zhí)行指令,并根據(jù)對(duì)應(yīng)連接的最底層優(yōu)先級(jí)的每一AI單元的當(dāng)前情況,向?qū)?yīng)連接的最底層優(yōu)先級(jí)的每一AI單元下達(dá)具體的執(zhí)行任務(wù)。
優(yōu)選的,本實(shí)施例提供的AI構(gòu)建裝置還包括:
變更執(zhí)行任務(wù)條件預(yù)置模塊,用于預(yù)先設(shè)置所述中間層優(yōu)先級(jí)中的任一層變更執(zhí)行上一層優(yōu)先級(jí)下達(dá)的指令所對(duì)應(yīng)的執(zhí)行任務(wù)的條件;
所述中間層優(yōu)先級(jí)戰(zhàn)術(shù)執(zhí)行模塊還用于,當(dāng)變更執(zhí)行上一層優(yōu)先級(jí)下達(dá)的指令所對(duì)應(yīng)的執(zhí)行任務(wù)的條件達(dá)成時(shí),所述中間層優(yōu)先級(jí)的任一層的AI單元更變向處于下一層優(yōu)先級(jí)的AI單元下達(dá)的指令。
另外,本實(shí)施例提供的AI構(gòu)建裝置還包括:戰(zhàn)略表預(yù)設(shè)模塊,用于預(yù)先設(shè)定戰(zhàn)略表,所述戰(zhàn)略表中記錄游戲當(dāng)前情況和對(duì)應(yīng)實(shí)施的戰(zhàn)略;
最高層優(yōu)先級(jí)戰(zhàn)略制定模塊還用于,使處于最高層優(yōu)先級(jí)的所述AI單元根據(jù)當(dāng)前的情況以及所述戰(zhàn)略表確定己方的戰(zhàn)略。
可以理解的,實(shí)施例中所述當(dāng)前的情況包括我方情況、敵方情況以及敵方戰(zhàn)略;所述我方情況包括我方當(dāng)前的兵力和基地發(fā)展情況,所述敵方情況包括敵方當(dāng)前的兵力和基地發(fā)展情況。而所述戰(zhàn)略包括防守反擊、經(jīng)濟(jì)發(fā)育或者全面防守戰(zhàn)略等。
可以理解的,本實(shí)施例的所述中間層優(yōu)先級(jí)并不局限于本實(shí)施例所舉例的兩層——第二層優(yōu)先級(jí)和第三層優(yōu)先級(jí),所述中間層優(yōu)先級(jí)的層數(shù)可根據(jù)具體實(shí)施需求而設(shè)定。
本實(shí)施例提供的AI構(gòu)建裝置的實(shí)現(xiàn)過程及原理請(qǐng)參考上述實(shí)施例2,在此不再贅述。
參考圖10,圖10是本發(fā)明實(shí)施例6中一種基于行為樹的游戲AI構(gòu)建裝置的結(jié)構(gòu)框圖。該游戲AI構(gòu)建裝置包括:
戰(zhàn)略制定模塊61,使戰(zhàn)略中心根據(jù)游戲當(dāng)前的情況確定己方的戰(zhàn)略,并將確定的戰(zhàn)略向總指揮下達(dá)對(duì)應(yīng)的指令;
戰(zhàn)術(shù)執(zhí)行模塊62,使所述總指揮根據(jù)戰(zhàn)略中心下達(dá)的戰(zhàn)略指令制定對(duì)應(yīng)的執(zhí)行方案,根據(jù)執(zhí)行方案創(chuàng)建對(duì)應(yīng)的至少一個(gè)執(zhí)行小組,并向每一所述執(zhí)行小組下達(dá)對(duì)應(yīng)的執(zhí)行指令;其中,每一所述執(zhí)行小組內(nèi)包括多個(gè)戰(zhàn)斗單元;
具體任務(wù)分配模塊63,使每一所述執(zhí)行小組根據(jù)總指揮下達(dá)的執(zhí)行指令,并根據(jù)組內(nèi)每一戰(zhàn)斗單元的當(dāng)前情況,向組內(nèi)的每一所述戰(zhàn)斗單元下達(dá)具體的執(zhí)行任務(wù);
具體任務(wù)執(zhí)行模塊64,使每一所述戰(zhàn)斗單元根據(jù)執(zhí)行小組下達(dá)的具體的執(zhí)行任務(wù)執(zhí)行對(duì)應(yīng)的動(dòng)作;其中,每一所述戰(zhàn)略中心、總指揮、執(zhí)行小組以及戰(zhàn)斗單元均為基于行為樹構(gòu)建的AI單元。
優(yōu)選的,本實(shí)施例提供的游戲AI構(gòu)建裝置還包括:
變更執(zhí)行任務(wù)條件預(yù)置模塊,用于預(yù)先設(shè)置所述總指揮、執(zhí)行小組變更執(zhí)行上一層優(yōu)先級(jí)下達(dá)的指令所對(duì)應(yīng)的執(zhí)行任務(wù)的條件;
所述戰(zhàn)術(shù)執(zhí)行模塊還用于,當(dāng)變更執(zhí)行上一層優(yōu)先級(jí)下達(dá)的指令所對(duì)應(yīng)的執(zhí)行任務(wù)的條件達(dá)成時(shí),使所述總指揮更變向每一所述執(zhí)行小組下達(dá)的指令;以及
所述戰(zhàn)術(shù)執(zhí)行模塊還用于,當(dāng)變更執(zhí)行上一層優(yōu)先級(jí)下達(dá)的指令所對(duì)應(yīng)的執(zhí)行任務(wù)的條件達(dá)成時(shí),使所述執(zhí)行小組更變向每一所述站斗單元下達(dá)的指令。
另外,本實(shí)施例提供的游戲AI構(gòu)建裝置還包括:
戰(zhàn)略表預(yù)設(shè)模塊,用于預(yù)先設(shè)定戰(zhàn)略表,所述戰(zhàn)略表中記錄游戲當(dāng)前情況和對(duì)應(yīng)實(shí)施的戰(zhàn)略;
所述戰(zhàn)略制定模塊還用于,使所述戰(zhàn)略中心根據(jù)當(dāng)前的情況以及所述戰(zhàn)略表確定己方的戰(zhàn)略。
可以理解的,實(shí)施例中所述當(dāng)前的情況包括我方情況、敵方情況以及敵方戰(zhàn)略;所述我方情況包括我方當(dāng)前的兵力和基地發(fā)展情況,所述敵方情況包括敵方當(dāng)前的兵力和基地發(fā)展情況。而所述戰(zhàn)略包括防守反擊、經(jīng)濟(jì)發(fā)育或者全面防守戰(zhàn)略等。
本實(shí)施例提供的AI構(gòu)建裝置的實(shí)現(xiàn)過程及原理請(qǐng)參考上述實(shí)施例3,在此不再贅述。
參考圖11,圖11是本發(fā)明實(shí)施例7中一種游戲控制裝置的結(jié)構(gòu)框圖。該游戲控制裝置包括:
如圖9所示的層次化行為樹的AI構(gòu)建裝置或如圖10所示的基于行為樹的游戲AI構(gòu)建裝置111,以對(duì)游戲中的每一AI單元完成構(gòu)建;以及
控制模塊112,用于控制游戲中的每一NPC根據(jù)構(gòu)建后的每一AI單元執(zhí)行對(duì)應(yīng)的操作。
本實(shí)施例提供的游戲控制裝置的實(shí)現(xiàn)過程及原理請(qǐng)參考上述實(shí)施例4,在此不再贅述。
需說明的是,以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。另外,本發(fā)明提供的裝置實(shí)施例附圖中,模塊之間的連接關(guān)系表示它們之間具有通信連接,具體可以實(shí)現(xiàn)為一條或多條通信總線或信號(hào)線。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
通過以上的實(shí)施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件的方式來實(shí)現(xiàn),當(dāng)然也可以通過專用硬件包括專用集成電路、專用CPU、專用存儲(chǔ)器、專用元器件等來實(shí)現(xiàn)。一般情況下,凡由計(jì)算機(jī)程序完成的功能都可以很容易地用相應(yīng)的硬件來實(shí)現(xiàn),而且,用來實(shí)現(xiàn)同一功能的具體硬件結(jié)構(gòu)也可以是多種多樣的,例如模擬電路、數(shù)字電路或?qū)S秒娐返?。但是,?duì)本發(fā)明而言更多情況下軟件程序?qū)崿F(xiàn)是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,如計(jì)算機(jī)的軟盤,U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也視為本發(fā)明的保護(hù)范圍。