两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

交互式游戲中智能非玩家角色的實現(xiàn)方法及系統(tǒng)的制作方法

文檔序號:6611124閱讀:430來源:國知局
專利名稱:交互式游戲中智能非玩家角色的實現(xiàn)方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及交互式游戲的智能數(shù)據(jù)處理技術(shù),特別是指一種交互式游戲中智 能非玩家角色的實現(xiàn)方法及系統(tǒng)。
技術(shù)背景游戲的核心是其引擎,它為游戲提供光影、動畫、物理、渲染及輸入的支持, 并大量地節(jié)省了游戲的開發(fā)時間和費用。早期游戲引擎的設(shè)計沒有包含太多人工 智能的考慮。游戲中非玩家角色(Non-Player Character, NPC)的行為是由程 序員事先編好的,它們始終機械地遵循固定的行為策略,常常表現(xiàn)得不夠聰明。 上世紀(jì)90年代中后期以來,游戲的智能性成為各大游戲公司爭相追逐的目標(biāo), 其表現(xiàn)之一就是對引擎的革命在設(shè)計引擎時越來越多地使用人工智能技術(shù)。 Quake和Unreal是支持第一人稱射擊(First Person Shooting, FPS)游戲的 兩大最著名引擎。美國Michigan大學(xué)的Soar/Games項目研究開發(fā)了 Soar和開 源Quake II之間的接口,在傳統(tǒng)Quake II引擎的基礎(chǔ)上引入了推理式Agent 結(jié)構(gòu)Soar。 Unreal雖然不像Quake那樣完全開源,但它具有良好的C/S結(jié)構(gòu), 并為Client提供了面向?qū)ο蟮哪_本語言UnrealScript ,因此提供了比 Soar/Games更復(fù)雜的多NPC環(huán)境。美國Southern California大學(xué)和Carnegie Mellon大學(xué)基于Unreal Tournament游戲研究開發(fā)了 GameBot項目。另一方面, 即時戰(zhàn)略(Real-Time Strategy, RTS)游戲是FPS外影響較大的游戲類型。RTS 對游戲NPC的智能性要求更高,因為它不僅涉及單個NPC的智能表現(xiàn),而且更多 地會涉及到戰(zhàn)術(shù)的、戰(zhàn)略的、決策的智能行為。加拿大Alberta Edmonton大學(xué) 研究開發(fā)了基于客戶端-服務(wù)器(Client-Server, C/S)結(jié)構(gòu)的免費RTS引擎 0RTS。盡管如此,該項目的人工智能引擎還缺乏進一步補充實時規(guī)劃、不確定環(huán) 境下推理、對手建模、學(xué)習(xí)、空間和時間推理、協(xié)作等關(guān)鍵技術(shù)的研究,無法充 分實現(xiàn)網(wǎng)絡(luò)游戲中NPC的智能化。 發(fā)明內(nèi)容有鑒于此,本發(fā)明的目的是針對現(xiàn)有交互式游戲引擎技術(shù)的不足,提供一種 能夠使交互式游戲中非玩家角色更加智能化的實現(xiàn)方法,解決游戲開發(fā)中預(yù)設(shè)非
玩家角色動作程序復(fù)雜且過于機械的問題。為了達(dá)到上述目的,本發(fā)明提供了一種交互式游戲中智能非玩家角色的實現(xiàn) 方法,該方法通過服務(wù)器端的游戲引擎、包含JavaBot網(wǎng)絡(luò)應(yīng)用編程接口 (API) 和JavaBot底層處理單元以及BDI推理單元的游戲客戶端控制NPC智能化行為, 該方法包括以下步驟(1) 啟動包含JavaBot網(wǎng)絡(luò)應(yīng)用編程接口、 JavaBot底層處理單元、以及 BDI推理單元的客戶端,并將客戶端與服務(wù)器端游戲引擎相連; —(2) JavaBot網(wǎng)絡(luò)應(yīng)用編程接口將上述服務(wù)器端游戲引擎發(fā)出的游戲消息 進行解析并傳送到JavaBot底層處理單元;(3) JavaBot底層處理單元將上述游戲消息解析為狀態(tài)信息,并傳送到BDI 推理單元;(4) BDI推理單元將上述狀態(tài)信息處理后編譯為動作愿望傳送回JavaBot 底層處理單元;(5) JavaBot底層處理單元接收上述動作愿望并傳送到JavaBot網(wǎng)絡(luò)API;(6) JavaBot網(wǎng)絡(luò)API將上述動作愿望解析為動作命令傳送到服務(wù)器端的 游戲引擎;(7) 游戲引擎根據(jù)JavaBot網(wǎng)絡(luò)API傳送的動作命令控制NPC的動作,并 返回步驟(2)。在所述方法中,步驟(3)進一步包括JavaBot底層處理單元對JavaBot 網(wǎng)絡(luò)API解析過的游戲消息進行判斷,如果該消息表達(dá)的是游戲中NPC的底層行 為,則由JavaBot底層處理單元直接處理后跳至步驟(6);如果該消息表達(dá)的是 游戲中NPC的高級智能行為,則發(fā)送給BDI處理單元。在上述方法中,所述游戲中NPC的底層行為包括尋找目標(biāo)、跑動和閃避等等。在上述方法中,所述游戲中NPC的高級智能行為包括學(xué)習(xí)、規(guī)劃、決策、 推理和協(xié)作等等。本發(fā)明的另一個目的在于提供一種實現(xiàn)本發(fā)明方法的交互式游戲系統(tǒng),該系 統(tǒng)包括游戲服務(wù)器端游戲引擎和游戲客戶端,所述游戲客戶端還包括游戲Agent 單元;
所述的游戲Agent單元用于接收游戲服務(wù)器端發(fā)送的游戲消息,將消息進行 分析,并根據(jù)上述消息發(fā)出動作命令;所述的游戲客戶端用于與游戲服務(wù)器端相連,發(fā)送并接收游戲服務(wù)器端傳送 的游戲信息;所述的服務(wù)器端游戲引擎用于處理與具體游戲相關(guān)的光影、動畫、物理、渲 染信息及輸入的支持,以及將游戲玩家和NPC的游戲消息傳送給游戲客戶端,以 及根據(jù)包含游戲Agent單元的游戲客戶端發(fā)出的動作命令控制NPC的動作,以及 將動作變化后的游戲玩家和NPC的游戲消息傳送給游戲客戶端。在所述系統(tǒng)中,所述游戲Agent單元包括JavaBot網(wǎng)絡(luò)API、 JavaBot底 層處理單元、以及BDI推理單元;其中,JavaBot網(wǎng)絡(luò)API和JavaBot底層處 理單元用于接收游戲消息并發(fā)送給BDI推理單元處理;所述JavaBot網(wǎng)絡(luò)API和JavaBot底層處理單元還可以處理游戲底層行為, 同時將高級的智能行為發(fā)送給BDI推理單元處理;BDI推理單元包括信念、目標(biāo)和規(guī)劃三個部分;所述信念可以是游戲中任何 類型的Java對象;所述目標(biāo)是游戲中人物要實現(xiàn)的目標(biāo);規(guī)劃是游戲中實現(xiàn) agent目標(biāo)的方法。在上述系統(tǒng)中,所述BDI推理單元可由Jadex推理agent引擎實現(xiàn);其中 Jadex推理agent引擎處理游戲中的事件和消息,并選擇規(guī)劃庫中的合適的規(guī)劃 去執(zhí)行;其中信念庫決定了Jadex推理agent引擎的規(guī)劃執(zhí)行,而規(guī)劃的執(zhí)行又 可以改變信念庫,改變的信念將觸發(fā)內(nèi)部事件,產(chǎn)生新的目標(biāo)和新的規(guī)劃執(zhí)行。有益效果本發(fā)明的顯著優(yōu)點是在游戲引擎上增添了一層游戲Agent單元, 能夠讓游戲的開發(fā)者在編程處理NPC行為時以AOP的方式進行工作而不必考慮實 現(xiàn)細(xì)節(jié)。因此與傳統(tǒng)的過程化的或OOP的方法相比,這樣一個智能游戲平臺能夠 更有助于表達(dá)游戲NPC的智能行為、更好地支持游戲中智能技術(shù)的應(yīng)用。


圖l是本發(fā)明的工作運行流程。圖2是包含本發(fā)明的客戶端一服務(wù)器結(jié)構(gòu)。圖3是本發(fā)明的游戲包含Agent單元的框圖結(jié)構(gòu)。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖對本發(fā)明作進 一步的詳細(xì)描述。
本發(fā)明的核心是在游戲引擎上增加一層BDI推理單元,該單元與JavaBot 網(wǎng)絡(luò)API及JavaBot底層處理單元共同構(gòu)成游戲Agent單元,并內(nèi)嵌于游戲客戶 端中,通過這樣的結(jié)構(gòu)可以實現(xiàn)交互式游戲中NPC的智能化動作,并且使游戲 Agent單元無需經(jīng)過很大改動就能與不同的游戲引擎對接。下面通過實施例詳細(xì)說明本發(fā)明方法,該方法如圖1和圖3所示,具體包括 如下步驟步驟101:啟動游戲客戶端并將客戶端與服務(wù)器端基于Agent環(huán)境開發(fā)的游 戲引擎相連;步驟102: JavaBot網(wǎng)絡(luò)API接收服務(wù)器端游戲引擎發(fā)送的游戲消息,解析后發(fā)送5步驟103: JavaBot底層處理單元接收消息并解析,判斷是否是NPC的底層 行為,如果是底層行為,則進行步驟104,如果是高級智能行為,則進行步驟105;步驟104:由JavaBot底層處理單元處理該行為并發(fā)送,跳至步驟107。步驟105: BDI推理單元使用Jadex推理agent引擎完成交互式BDI過程, 通過信念、目標(biāo)、規(guī)劃三個部分將接收到的游戲狀態(tài)信息處理后編譯為動作愿望 后發(fā)送給JavaBot底層處理單元;步驟106: JavaBot底層處理單元接收到Jadex推理agent引擎解析的動作 愿望并發(fā)送到JavaBot網(wǎng)絡(luò)API。步驟107: JavaBot網(wǎng)絡(luò)API將動作愿望解析為動作命令并發(fā)送給服務(wù)器游 戲引擎。步驟108:服務(wù)器游戲引擎根據(jù)從JavaBot網(wǎng)絡(luò)API傳送的動作命令控制NPC 的動作,并返回步驟102。在上述方法中,步驟103中,所述游戲中NPC的底層行為包括尋找目標(biāo)、 跑動和閃避等等。在上述方法中,步驟103中,所述游戲中NPC的髙級智能行為包括學(xué)習(xí)、 規(guī)劃、決策、推理和協(xié)作等等。如圖2和圖3所示,本發(fā)明的重點在于該智能游戲的體系結(jié)構(gòu)以及客戶端和服務(wù) 器之間的網(wǎng)絡(luò)API,服務(wù)器之間的網(wǎng)絡(luò)API又包括三個部分消息及命令的格式、 消息和命令,下面詳細(xì)說明(1) 智能游戲的體系結(jié)構(gòu)。本發(fā)明的體系結(jié)構(gòu)包括游戲引擎、JavaBot編程 接口和BDI推理Agent引擎Jadex三個模塊。游戲引擎處理與具體游戲相關(guān)的光 影、動畫、物理、渲染信息及輸入的支持,構(gòu)成了游戲的服務(wù)器端。JavaBot編 程接口和BDI推理Agent引擎Jadex則共同構(gòu)成了游戲的客戶端。前者支持以面 向?qū)ο蟮姆绞教幚碛螒蚪巧牡讓有袨?例如尋找目標(biāo)、跑動、閃避等等),而 后者負(fù)責(zé)處理高級的智能行為(例如學(xué)習(xí)、規(guī)劃、決策、推理、協(xié)作等等)。在 游戲引擎不提供游戲Agent間通訊功能時(如Unreal引擎),Jadex還負(fù)責(zé)處理 游戲Agent之間的通訊。(2) 客戶端與游戲服務(wù)器間的網(wǎng)絡(luò)API。① 消息及命令的格式。本發(fā)明中的消息都具有形如"MSGTYPE {argl arglVal}{arg2arg2Val}..."的格式(不包含左右端的引號)。對消息的解析遵循以 下幾條規(guī)定a. 從左邊起第一個空格符前(不包括第一個空格符)所有的字符是消息(命 令)的類型;b. 消息中除了類型指示符以外的內(nèi)容都是用花括號U括起的attr-val對;c. 花括號中第一個字符至第一個空格符(不包括第一個空格符)之間所有 的字符表示屬性名稱(attr);d. vol部分從結(jié)束attr的空格符開始(不包括該空格符),至"}"結(jié)束,中 間可以包含一個或多個空格符。命令的格式及其解析與消息類似。② 感知消息。服務(wù)器向客戶端發(fā)送的感知消息包括同步消息和異步消息兩 類,分別說明如下a.同步消息。同步消息以固定(可調(diào)整)的時間間隔批量到達(dá)客戶端,內(nèi) 容包括圖形顯示的更新等等。在一批消息的開始,服務(wù)器發(fā)送一個帶時間戳的 "BEG"消息,當(dāng)這批消息發(fā)送結(jié)束時,服務(wù)器再發(fā)送一個帶有相同時間戳的 "END"消息。下面是一些常用的同步消息及其參數(shù)。BEG: —批同步消息的開始SLF: Agent的狀態(tài)信息GAM:游戲(環(huán)境)信息 NAV:游戲中的路徑節(jié)點MOV:游戲中的運動物體(例如門、電梯等等) INV:位于地上的可被撿起的物品 END:表示一批同步消息的結(jié)束b.異步消息。異步消息以事件的方式被客戶端響應(yīng)。下面是一些常用的 異步消息及其參數(shù)。NFO: Agent連接到服務(wù)器后服務(wù)器提供的幫助信息。VMS:從全局聊天通道中獲得的消息 VMT:從全局私人聊天通道獲得的消息; ZCF:腳步地域信息 ZCH:頭部地域信息 ZCB:身體地域信息CWP: Agent更換武器(命令的結(jié)果或自動更換)WAL:撞墻FAL:碰到絆腳物BMP:撞到了另一個Agent或玩家或障礙物HRP:聽到撿物品的聲音HRN:聽見了噪音(撞擊聲、射擊聲)SEE:看見了另一個玩家PRJ:接近的飛彈可能造成傷害KIL:某個玩家死亡DIE:死亡DAM:造成傷害HIT:傷害了另一個游戲者PTH:路徑節(jié)點的序列,作為GETPATH命令的返回結(jié)果發(fā)送給客戶端 RCH: CHECKREACH命令的布爾返回值FIN:游戲結(jié)束(沒有參數(shù))。③命令。Agent通過向游戲服務(wù)器發(fā)送命令來執(zhí)行動作。命令具有與消息相 類似的格式和解析方法。下面是一些常用的命令及其參數(shù)。
INIT:在游戲中創(chuàng)建一個Agent玩家,表明玩家參與到游戲中。該命令在接 受到NFO消息后發(fā)送Name:希望采用的名字;Team:希望加入的團隊;. SETWALK:設(shè)置移動的模式(走或跑,速度不同) STOP :停止所有的動作 JUMP:跳躍RUNTO:跑動至某個目標(biāo)位置STRAFE:與RUNTO類似,只是在接近目標(biāo)的過程中面對著另一個方向或物體TURNTO:轉(zhuǎn)向某個點、物體或指明旋轉(zhuǎn)角度 ROTATE:旋轉(zhuǎn)某個角度 SHOOT:使用武器射擊 CHANGEWEAPON :更換武器 STOPSHOOT :停止射擊CHECKREACH:檢査一下看是否能夠直接地移動到某個目標(biāo)位置而不遇到 障礙物GETPATH:得到通向特定位置的路徑 MESSAGE:向游戲世界或隊友發(fā)送一條消息PING:當(dāng)預(yù)期的同步消息沒能及時到達(dá)時向服務(wù)器發(fā)送該命令以査看網(wǎng)絡(luò) 連接狀況。
權(quán)利要求
1、一種交互式游戲中智能非玩家角色的實現(xiàn)方法,該方法通過服務(wù)器端的游戲引擎、包含JavaBot網(wǎng)絡(luò)應(yīng)用編程接口和JavaBot底層處理單元以及BDI推理單元的客戶端控制非玩家角色智能化行為,其特征在于,該方法包括以下步驟(1)啟動包含JavaBot網(wǎng)絡(luò)應(yīng)用編程接口、JavaBot底層處理單元、以及BDI推理單元的客戶端,并將客戶端與服務(wù)器端游戲引擎相連;(2)JavaBot網(wǎng)絡(luò)應(yīng)用編程接口將上述服務(wù)器端游戲引擎發(fā)出的游戲消息進行解析并傳送到JavaBot底層處理單元;(3)JavaBot底層處理單元將上述游戲消息解析為狀態(tài)信息,并傳送到BDI推理單元;(4)BDI推理單元將上述狀態(tài)信息處理后編譯為動作愿望傳送回JavaBot底層處理單元;(5)JavaBot底層處理單元接收上述動作愿望并傳送到JavaBot網(wǎng)絡(luò)應(yīng)用編程接口;(6)JavaBot網(wǎng)絡(luò)應(yīng)用編程接口將上述動作愿望解析為動作命令傳送到服務(wù)器端的游戲引擎;(7)游戲引擎根據(jù)JavaBot網(wǎng)絡(luò)應(yīng)用編程接口傳送的動作命令控制非玩家角色的動作,并返回步驟(2)。
2、 根據(jù)權(quán)利要求1所述的交互式游戲中智能非玩家角色的實現(xiàn)方法,其特 征在于,步驟(3)進一步包括JavaBot底層處理單元對JavaBot網(wǎng)絡(luò)應(yīng)用編 程接口解析過的游戲消息進行判斷,如果該消息表達(dá)的是游戲中非玩家角色的底 層行為,則由JavaBot底層處理單元直接處理后跳至步驟(6)。
3、 一種交互式游戲系統(tǒng),包括游戲服務(wù)器端游戲引擎和游戲客戶端,其特 征在于,所述游戲客戶端還包括游戲Agent單元;所述的游戲Agent單元用于接收游戲服務(wù)器端發(fā)送的游戲消息,將消息進行 分析,并根據(jù)上述消息發(fā)出動作命令;所述的游戲客戶端用于與游戲服務(wù)器端相連,發(fā)送并接收游戲服務(wù)器端傳送 的游戲信息;所述的服務(wù)器端游戲引擎用于處理與游戲相關(guān)的光影、動畫、物理、渲染信息和輸入的支持,以及將游戲玩家和非游戲玩家的游戲消息傳送給游戲客戶端, 以及根據(jù)包含游戲Agent單元的游戲客戶端發(fā)出的動作命令控制非游戲玩家的 動作,以及將動作變化后的游戲玩家和非游戲玩家的游戲消息傳送給游戲客戶 端。
4、 根據(jù)權(quán)利要求3所述的交互式游戲系統(tǒng),其特征在于,游戲Agent單元 包括JavaBot網(wǎng)絡(luò)應(yīng)用編程接口、 JavaBot底層處理單元、以及BDI推理單元; 其中,JavaBot網(wǎng)絡(luò)應(yīng)用編程接口和JavaBot底層處理單元用于接收游戲消息 并發(fā)送給BDI推理單元處理。
5、 根據(jù)權(quán)利要求4所述的交互式游戲系統(tǒng),其特征在于,所述JavaBot網(wǎng) 絡(luò)應(yīng)用編程接口和JavaBot底層處理單元還可以處理游戲底層行為,同時將高級 的智能行為發(fā)送給BDI推理單元處理。
6、 根據(jù)權(quán)利要求4所述的交互式游戲系統(tǒng),其特征在于,所述BDI推理單 元包括信念、目標(biāo)和規(guī)劃三個部分;所述信念可以是游戲中任何類型的Java對 象;所述目標(biāo)是游戲中角色要實現(xiàn)的目標(biāo);所述規(guī)劃是游戲中實現(xiàn)agent目標(biāo)的 方法。
7、 根據(jù)權(quán)利要求4所述的交互式游戲系統(tǒng),其特征在于,其中BDI推理單 元可由Jadex推理agent弓1擎實現(xiàn)。
8、 根據(jù)權(quán)利要求7所述的交互式游戲系統(tǒng),其特征在于,所述Jadex推理 agent引擎處理游戲中的事件和消息,并選擇規(guī)劃庫中的合適的規(guī)劃去執(zhí)行;所述信念庫決定了 Jadex推理agent引擎的規(guī)劃執(zhí)行,而規(guī)劃的執(zhí)行又可以 改變信念庫,改變的信念將觸發(fā)內(nèi)部事件,產(chǎn)生新的目標(biāo)和新的規(guī)劃執(zhí)行。
全文摘要
本發(fā)明公開了一種交互式游戲中智能非玩家角色的實現(xiàn)方法,該方法通過服務(wù)器端的游戲引擎、包含JavaBot網(wǎng)絡(luò)應(yīng)用編程接口、JavaBot底層處理單元,以及BDI推理單元的客戶端控制非玩家角色智能化行為。另外本發(fā)明還公開了一種實現(xiàn)本方法的交互式游戲系統(tǒng)。本發(fā)明的顯著優(yōu)點是在游戲引擎上增添了一層游戲Agent單元,能夠讓游戲的開發(fā)者在編程處理NPC行為時以AOP的方式進行工作而不必考慮實現(xiàn)細(xì)節(jié)。因此這樣一個智能NPC的實現(xiàn)系統(tǒng)能夠更有助于表達(dá)游戲中非玩家角色的智能行為、更好地支持游戲中智能技術(shù)的應(yīng)用。
文檔編號G06F9/44GK101158897SQ20071013380
公開日2008年4月9日 申請日期2007年10月9日 優(yōu)先權(quán)日2007年10月9日
發(fā)明者皓 王, 羅文杰, 陽 高 申請人:南京大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
兴化市| 富源县| 寿光市| 武川县| 榆社县| 寿光市| 芒康县| 大冶市| 磐安县| 太谷县| 贺兰县| 榆树市| 商洛市| 池州市| 临漳县| 镇巴县| 天长市| 永胜县| 南开区| 神木县| 景洪市| 天柱县| 和顺县| 孙吴县| 罗山县| 渝北区| 安龙县| 凌源市| 芜湖县| 乐陵市| 商南县| 永和县| 双鸭山市| 宾川县| 察隅县| 额济纳旗| 广宗县| 公主岭市| 北宁市| 墨玉县| 延庆县|