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