一種基于多智能體技術(shù)的npc控制方法,將人工智能方法用于多人在線角色扮演游戲中自動控制非玩家角色的行為,涉及人工智能、計算機游戲等技術(shù)領(lǐng)域。
背景技術(shù):
多人在線角色扮演游戲,是一種大型網(wǎng)絡(luò)游戲,其中玩家扮演一個虛構(gòu)角色,并控制該角色的各項活動,并與游戲中大量其他玩家扮演的角色交流互動,協(xié)作打敗怪物,完成任務(wù)。不同于單機游戲模式中的人機單獨對抗,在線游戲可以讓多個玩家實時協(xié)作與對抗,游戲內(nèi)容與趣味性得到大幅提高。一款優(yōu)秀的多人在線角色扮演游戲可以吸引大量玩家,通過提供高質(zhì)量的游戲服務(wù),豐富玩家的精神生活,讓人們生活得更快樂。這也催生了一個新興的產(chǎn)業(yè),已產(chǎn)生了巨大的經(jīng)濟(jì)效益。
除了玩家角色,游戲中還存在大量非玩家角色,即npc(non-playercharacters)。除了一類提供游戲功能的npc外,例如物品買賣,任務(wù)引導(dǎo)人物外,游戲中存在大量的怪物npc,這類npc是各項游戲任務(wù)的核心,玩家需要戰(zhàn)勝大量各類怪物從而完成任務(wù)。通過使npc的行為更加智能,來合理地調(diào)整游戲的難度,兼顧公平性、挑戰(zhàn)性與趣味性,是提供優(yōu)秀在線游戲服務(wù)的重要內(nèi)容。各大游戲廠商在每款游戲中均投入大量人力物力來試圖實現(xiàn)這一目標(biāo)。
現(xiàn)有的npc行為大多是通過預(yù)先編制好的腳本進(jìn)行控制。由于人力與時間等開發(fā)資源的限制,游戲開發(fā)人員無法為每個場景下的每個npc編制應(yīng)對每個可能遇到情況的方法。為了逐步增加游戲挑戰(zhàn)性,開發(fā)人員會通過大幅強化npc的物理屬性(比如攻擊力、防御力等)來提高游戲玩家的難度。所以npc常顯得行為呆板但異常強大,且有損游戲的公平性。預(yù)編制腳本的一個重要缺陷是npc只具有被動應(yīng)對玩家的能力,而沒有主動推理能力。也就是說,玩家可以通過多次試探,推斷出其固定的行為模式,從而尋找到戰(zhàn)勝看似強大的npc的策略。更重要的是,這一策略還會在玩家間快速傳播,使得游戲的挑戰(zhàn)性與趣味性大幅降低。為此,游戲開發(fā)人員會根據(jù)游戲日志來頻繁修改npc腳本,從而保證游戲的趣味性,因頻繁修改npc腳本受限于人力成本,所以只會針對重要的怪物進(jìn)行npc腳本修改。如何針對游戲玩家的策略,有效地定量地調(diào)整腳本也非常依賴于游戲開發(fā)人員的經(jīng)驗。
技術(shù)實現(xiàn)要素:
本發(fā)明針對上述不足之處提供了一種基于多智能體技術(shù)的npc控制方法,解決現(xiàn)有技術(shù)中的npc不具有自動推理、自動調(diào)整行為,需要根據(jù)游戲開發(fā)人員的經(jīng)驗來頻繁的修改npc腳本,造成人力成本的浪費等問題。
為了實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:
一種基于多智能體技術(shù)的npc控制方法,其特征在于,包括以下步驟:
步驟(1)、為每個npc定義一個自動推理模型——交互式動態(tài)影響圖,根據(jù)npc自身的特點與場景的特點定義交互式動態(tài)影響圖的參數(shù);
步驟(2)、根據(jù)交互式動態(tài)影響圖的參數(shù),構(gòu)造npc的行為腳本;
步驟(3)、npc在與玩家交互過程中執(zhí)行npc的行為腳本,并記錄每一動作的執(zhí)行結(jié)果,其中動作即指行為腳本;
步驟(4)、根據(jù)步驟(3)中記錄的每一動作的執(zhí)行結(jié)果,更新交互式動態(tài)影響圖的參數(shù),重新構(gòu)造npc的行為腳本應(yīng)用于新的玩家交互中。
進(jìn)一步,所述步驟(1)中,根據(jù)npc自身的特點與場景的特點定義交互式動態(tài)影響圖的參數(shù)的具體步驟如下:
步驟(11)、在交互式動態(tài)影響圖中,根據(jù)npc的可執(zhí)行動作定義動作集合
步驟(12)、根據(jù)npc所處場景的性質(zhì)、npc與玩家角色的位置與屬性定義狀態(tài)集合s*;
步驟(13)、根據(jù)步驟(11)和步驟(12)定義從時間t到時間t+1,狀態(tài)st∈st通過npc動作
步驟(14)、根據(jù)npc角色的行為風(fēng)格與偏好,定義在時間t,npc通過動作
步驟(15)、根據(jù)現(xiàn)有的經(jīng)驗知識,初始化狀態(tài)轉(zhuǎn)移函數(shù)
步驟(16)、根據(jù)先驗在npc的交互式動態(tài)影響圖中包含有若干個刻畫玩家角色行為的策略描述
進(jìn)一步,所述步驟(2)的具體步驟如下:
步驟(21)、根據(jù)步驟(1)中所構(gòu)造的交互式動態(tài)影響圖和所需npc行為腳本長度,將交互式動態(tài)影響圖擴展成包含t步推理的交互式動態(tài)影響圖;
步驟(22)、采用經(jīng)典的動態(tài)規(guī)劃求解算法求解步驟(21)得到的包含了t步推理的交互式動態(tài)影響圖,最大化npc的即時期望效用與遠(yuǎn)期期望效用的加權(quán)和,尋找到能夠最大化npc角色期望效用的策略,即尋找到能夠最大化npc在每一時刻針對各種情形所應(yīng)采取的動作
其中,
步驟(23)、將步驟(22)得到的最大化npc期望效用的策略轉(zhuǎn)換成兼容當(dāng)前游戲的行為腳本格式。
進(jìn)一步,所述步驟(3)的具體步驟如下:
步驟(31)、npc在與玩家角色交互過程中,針對不同玩家角色的不同動作采用npc動作
步驟(32)、記錄每次npc動作
進(jìn)一步,所述步驟(4)的具體步驟如下:
步驟(41)、根據(jù)步驟(3)記錄每次動作執(zhí)行的結(jié)果,統(tǒng)計出npc在每個狀態(tài)st∈st時,玩家角色執(zhí)行的各個動作
根據(jù)統(tǒng)計得到的玩家行為策略描述
其中,
步驟(42)、根據(jù)步驟(3)記錄的每次動作執(zhí)行的結(jié)果,統(tǒng)計當(dāng)npc執(zhí)行動作
其中,
步驟(43)、將步驟(41)和步驟(42)得到的結(jié)果更新交互式動態(tài)影響圖,用于步驟(2)-步驟(4)。
綜上所述,由于采用了上述技術(shù)方案,本發(fā)明的有益效果是:
1、本發(fā)明中的交互式動態(tài)影響圖是人工智能最新研究成果之一,擁有強大的針對個體建模能力,能夠準(zhǔn)確的刻畫玩家的行為,并且基于模型的腳本生成算法運行效率與腳本質(zhì)量都滿足實際應(yīng)用的要求;
2、本發(fā)明可以通過預(yù)先為怪物npc定義的交互式動態(tài)影響圖,實現(xiàn)行為腳本的自動在線更新與生成,大幅降低游戲開發(fā)人員的工作負(fù)擔(dān);
3、在本發(fā)明中,怪物npc所包含的交互式動態(tài)影響圖的更新基于真實在線數(shù)據(jù),所以npc腳本的更新對玩家更有針對性,更進(jìn)一步地,通過每種怪物npc在多個副本之間共享數(shù)據(jù)與玩家策略描述,生成的npc行為腳本具有良好的通用性。
附圖說明
圖1是本發(fā)明包含2步推理的交互式動態(tài)影響圖;
圖2是本發(fā)明策略描述示意圖;
圖3是本發(fā)明執(zhí)行記錄數(shù)據(jù)示例。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
步驟(1)、為每個npc定義一個自動推理模型——交互式動態(tài)影響圖(以下簡稱影響圖),根據(jù)npc自身的特點與場景的特點定義影響圖的參數(shù)。
步驟(2)、根據(jù)影響圖的參數(shù),構(gòu)造npc的行為腳本。
步驟(3)、npc在與玩家交互過程中執(zhí)行行為腳本,并記錄每一動作,其中動作即指行為腳本。
步驟(4)、根據(jù)步驟(3)中記錄的每一動作的執(zhí)行結(jié)果,更新影響圖參數(shù),并重新產(chǎn)生npc的行為腳本應(yīng)用于新的玩家交互中。
所述步驟(1)中,根據(jù)npc自身的特點與場景的特點定義影響圖的參數(shù)具體如下:
在影響圖中,根據(jù)npc的可執(zhí)行動作定義動作集合
根據(jù)先驗知識,npc的影響圖中包含有若干個刻畫玩家角色行為的策略描述
所述步驟(2)的具體步驟如下:
步驟(21),針對步驟(1)中所構(gòu)造的影響圖,根據(jù)所需腳本長度,擴展成包含t步推理的影響圖。因為在t時刻,npc執(zhí)行的動作
步驟(22)、采用經(jīng)典的動態(tài)規(guī)劃求解算法求解步驟(21)得到的包含了t步推理的交互式動態(tài)影響圖,最大化npc的即時期望效用與遠(yuǎn)期期望效用的加權(quán)和,尋找到能夠最大化npc角色期望效用的策略,這里的策略指定了npc在每一時刻針對各種情形(包括自身的狀態(tài)、玩家的狀態(tài)、位置等)所應(yīng)采取的動作
其中,
步驟(23)、將步驟(22)得到的最大化npc期望效用的策略轉(zhuǎn)換成兼容當(dāng)前游戲的行為腳本格式。即將得到的由條件概率函數(shù)表達(dá)的策略,轉(zhuǎn)換成兼容當(dāng)前游戲的基于條件判斷的行為腳本格式。
所述步驟(3)的具體步驟如下:
(31)npc在與玩家角色交互過程中,執(zhí)行步驟(22)中針對不同玩家不同動作定義的行為腳本。每一次采取的動作同時取決于當(dāng)前狀態(tài)st,這里st也可以看作npc在不同時刻觀測到的信息。
(32)記錄每次動作執(zhí)行的結(jié)果:在每個時刻,包括玩家角色執(zhí)行的動作
所述步驟(4)的具體步驟如下:
(41)從步驟(32)記錄的每次動作執(zhí)行的結(jié)果,統(tǒng)計出npc在每個狀態(tài)st∈st時,玩家角色執(zhí)行的各個動作
根據(jù)統(tǒng)計得到的玩家行為策略描述
其中,
通過基于交互數(shù)據(jù)更新現(xiàn)有交互式動態(tài)影響圖中玩家角度的策略描述,能夠更加準(zhǔn)確地在行為腳本生成中預(yù)測玩家的行為,使得npc的行為在之后的對戰(zhàn)中更加智能。
(42)根據(jù)步驟(32)記錄的每次動作執(zhí)行的結(jié)果,統(tǒng)計當(dāng)npc角色執(zhí)行動作
通過基于交互數(shù)據(jù)更新現(xiàn)有影響圖中的狀態(tài)轉(zhuǎn)移函數(shù)與效用函數(shù),能夠更加準(zhǔn)確刻畫npc所處游戲場景,使得生成的npc行為在之后的對戰(zhàn)中更加智能。
(43)將步驟(41)和步驟(42)得到的結(jié)果更新交互式動態(tài)影響圖,用于步驟(2)-步驟(4)。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。