亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

游戲中角色行為的生成方法和裝置與流程

文檔序號(hào):11117187閱讀:435來源:國(guó)知局
游戲中角色行為的生成方法和裝置與制造工藝

本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體而言,涉及一種游戲中角色行為的生成方法和裝置。



背景技術(shù):

目前,在電腦游戲當(dāng)中,游戲玩家可以與電腦人工智能(Artificial Intelligence,簡(jiǎn)稱為AI)進(jìn)行交互或者對(duì)戰(zhàn)來體驗(yàn)游戲,因此電腦AI能力的強(qiáng)弱對(duì)于游戲玩家來說至關(guān)重要。一個(gè)好的AI能夠盡可能地模擬出人的動(dòng)作,機(jī)器學(xué)習(xí)是做出這樣的AI的目前最主要的一類方法。

一般來說,AI的實(shí)現(xiàn)有兩個(gè)階段:離線訓(xùn)練階段和在線實(shí)施階段。離線訓(xùn)練階段需要大量的有價(jià)值的訓(xùn)練數(shù)據(jù),而游戲的真實(shí)日志數(shù)據(jù)通常遠(yuǎn)遠(yuǎn)達(dá)不到數(shù)據(jù)量上的要求,目前通過仿真的方法進(jìn)行游戲模擬來產(chǎn)生日志數(shù)據(jù)是一種常用的做法。在線實(shí)施階段,為了快速準(zhǔn)確地預(yù)測(cè)下一步的策略或者動(dòng)作,基于當(dāng)前的游戲信息進(jìn)行仿真來模擬游戲進(jìn)程從而進(jìn)行評(píng)估也是一種常用的做法。游戲的仿真方法當(dāng)前主要有蒙特卡洛樹搜索(Monte Carlo Tree Search,簡(jiǎn)稱為MCTS)、行為樹等,例如,在棋類游戲中,利用MCTS來預(yù)測(cè)每一步的走子,在實(shí)時(shí)戰(zhàn)略游戲中,利用行為樹來控制NPC的下一步動(dòng)作。但是這些仿真方法或者僅僅考慮了兩個(gè)角色進(jìn)行對(duì)戰(zhàn),因而按照游戲的回合順序分別進(jìn)行模擬,或者假設(shè)非玩家角色(Non-Player Character,簡(jiǎn)稱為NPC)之間相互無關(guān),或者存在一些簡(jiǎn)單的單依賴關(guān)系,無論哪一種情況,對(duì)所有NPC同時(shí)進(jìn)行模擬都無法有效地處理實(shí)時(shí)多人對(duì)戰(zhàn)游戲中角色兩兩之間均可能都有依賴關(guān)系的情況。

圖1是根據(jù)相關(guān)技術(shù)中的一種游戲中角色行為的生成方法的流程圖。如圖1所示,該游戲中角色行為的生成方法包括以下步驟:步驟S101′,仿真模擬A方的策略或動(dòng)作,可以用MCTS等方法仿真;步驟S102′,判斷游戲是否結(jié)束,如果是,則結(jié)束,如果否,則轉(zhuǎn)至步驟S103′;步驟S103′,仿真模擬B方的策略或動(dòng)作,可以用MCTS等方法仿真,步驟S104′,判斷游戲是否結(jié)束,如果是,則結(jié)束,如果否,則轉(zhuǎn)至步驟S101′,可以實(shí)現(xiàn)棋類游戲的仿真,但是無法有效地處理實(shí)時(shí)多人對(duì)戰(zhàn)游戲中角色兩兩之間存在相互依賴的復(fù)雜情況,游戲中角色行為生成的準(zhǔn)確度較低。

圖2是根據(jù)相關(guān)技術(shù)中的另一種游戲中角色行為的生成方法的流程圖。如圖2所示,該游戲中角色行為的生成方法包括以下步驟:步驟S201′,同時(shí)仿真模擬所有NPC的策略或動(dòng)作,可以用MCTS等方法仿真;步驟S202′,判斷游戲是否結(jié)束,如果是,則結(jié)束,如果否,則轉(zhuǎn)至步驟S201′,可以實(shí)現(xiàn)實(shí)時(shí)戰(zhàn)略類游戲的仿真,但是無法有效地處理實(shí)時(shí)多人對(duì)戰(zhàn)游戲中角色兩兩之間存在相互依賴的復(fù)雜情況,游戲中角色行為生成的準(zhǔn)確度較低。

針對(duì)上述的游戲中角色行為生成的準(zhǔn)確度較低的問題,目前尚未提出有效的解決方案。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明實(shí)施例提供了一種游戲中角色行為的生成方法和裝置,以解決游戲中角色行為生成的準(zhǔn)確度較低的技術(shù)問題。

根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種游戲中角色行為的生成方法。該游戲中角色行為的生成方法包括:接收游戲客戶端發(fā)送的當(dāng)前游戲的狀態(tài)數(shù)據(jù),其中,狀態(tài)數(shù)據(jù)用于指示當(dāng)前游戲中多個(gè)角色的當(dāng)前狀態(tài);從當(dāng)前狀態(tài)開始,從預(yù)先獲取到的行為順序庫(kù)中獲取當(dāng)前游戲相關(guān)的行為順序序列,其中,行為順序序列中記錄了多個(gè)角色的行為執(zhí)行順序;按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬,得到模擬結(jié)果和更新后的行為預(yù)測(cè)模型,其中,更新后的行為預(yù)測(cè)模型是根據(jù)模擬結(jié)果進(jìn)行更新得到的;使用更新后的行為預(yù)測(cè)模型生成行為信息,其中,行為信息用于指示多個(gè)角色中的一個(gè)或多個(gè)在當(dāng)前狀態(tài)之后的下一個(gè)行為;將行為信息發(fā)送給游戲客戶端。

根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種游戲中角色行為的生成裝置。該游戲中角色行為的生成裝置接收單元,用于接收游戲客戶端發(fā)送的當(dāng)前游戲的狀態(tài)數(shù)據(jù),其中,狀態(tài)數(shù)據(jù)用于指示當(dāng)前游戲中多個(gè)角色的當(dāng)前狀態(tài);獲取單元,用于從當(dāng)前狀態(tài)開始,從預(yù)先獲取到的行為順序庫(kù)中獲取當(dāng)前游戲相關(guān)的行為順序序列,其中,行為順序序列中記錄了多個(gè)角色的行為執(zhí)行順序;模擬單元,用于按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬,得到模擬結(jié)果和更新后的行為預(yù)測(cè)模型,其中,更新后的行為預(yù)測(cè)模型是根據(jù)模擬結(jié)果進(jìn)行更新得到的;生成單元,用于使用更新后的行為預(yù)測(cè)模型生成行為信息,其中,行為信息用于指示多個(gè)角色中的一個(gè)或多個(gè)在當(dāng)前狀態(tài)之后的下一個(gè)行為;發(fā)送單元,用于將行為信息發(fā)送給游戲客戶端。

在本發(fā)明實(shí)施例中,接收游戲客戶端發(fā)送的當(dāng)前游戲的狀態(tài)數(shù)據(jù),狀態(tài)數(shù)據(jù)用于指示當(dāng)前游戲中多個(gè)角色的當(dāng)前狀態(tài);從當(dāng)前狀態(tài)開始,從預(yù)先獲取到的行為順序庫(kù)中獲取當(dāng)前游戲相關(guān)的行為順序序列,行為順序序列中記錄了多個(gè)角色的行為執(zhí)行順序;按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬,得到模擬結(jié)果和更新后的行為預(yù)測(cè)模型,更新后的行為預(yù)測(cè)模型是根據(jù)模擬結(jié)果進(jìn)行更新得到的;使用更新后的行為預(yù)測(cè)模型生成行為信息,行為信息用于指示多個(gè)角色中的一個(gè)或多個(gè)在當(dāng)前狀態(tài)之后的下一個(gè)行為;將行為信息發(fā)送給游戲客戶端,達(dá)到了對(duì)游戲中的角色行為進(jìn)行生成的目的,及使模擬更加合理,從而提高了游戲中角色行為生成的準(zhǔn)確度以及生成的效率,進(jìn)而解決了游戲中角色行為生成的準(zhǔn)確度較低的技術(shù)問題。

附圖說明

此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:

圖1是根據(jù)相關(guān)技術(shù)中的一種游戲中角色行為的生成方法的流程圖;

圖2是根據(jù)相關(guān)技術(shù)中的另一種游戲中角色行為的生成方法的流程圖;

圖3是根據(jù)本發(fā)明實(shí)施例的游戲中角色行為的生成方法的硬件環(huán)境的示意圖;

圖4是根據(jù)本發(fā)明實(shí)施例的一種游戲中角色行為的生成方法的流程圖;

圖5是根據(jù)本發(fā)明實(shí)施例的一種按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬的方法的流程圖;

圖6是根據(jù)本發(fā)明實(shí)施例的另一種按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)所述多個(gè)角色進(jìn)行仿真模擬的方法的流程圖;

圖7是根據(jù)本發(fā)明實(shí)施例的一種通過對(duì)歷史游戲日志進(jìn)行統(tǒng)計(jì)操作,得到行為順序庫(kù)中的行為順序序列的方法的流程圖;

圖8是根據(jù)本發(fā)明實(shí)施例的另一種游戲中角色行為的生成方法的流程圖;

圖9是根據(jù)本發(fā)明實(shí)施例的一種得到行為序列庫(kù)的基于統(tǒng)計(jì)的方法的流程圖;

圖10是根據(jù)本發(fā)明實(shí)施例的一種通過MCTS進(jìn)行模擬的方法的流程圖;

圖11是根據(jù)本發(fā)明實(shí)施例的一種游戲中的交互方法的流程示意圖;

圖12是根據(jù)本發(fā)明實(shí)施例的一種游戲中角色行為的生成裝置的示意圖;

圖13是根據(jù)本發(fā)明實(shí)施例的另一種游戲中角色行為的生成裝置的示意圖;

圖14是根據(jù)本發(fā)明實(shí)施例的另一種游戲中角色行為的生成裝置的示意圖;

圖15是根據(jù)本發(fā)明實(shí)施例的另一種游戲中角色行為的生成裝置的示意圖;以及

圖16是根據(jù)本發(fā)明實(shí)施例的一種終端的結(jié)構(gòu)框圖。

具體實(shí)施方式

為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。

需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語(yǔ)“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。

實(shí)施例1

根據(jù)本發(fā)明實(shí)施例,提供了一種游戲中角色行為的生成方法的實(shí)施例。

可選地,在本實(shí)施例中,上述游戲中角色行為的生成方法可以應(yīng)用于如圖3所示的由服務(wù)器302和終端304所構(gòu)成的硬件環(huán)境中。圖3是根據(jù)本發(fā)明實(shí)施例的游戲中角色行為的生成方法的硬件環(huán)境的示意圖。如圖3所示,服務(wù)器302通過網(wǎng)絡(luò)與終端304進(jìn)行連接,上述網(wǎng)絡(luò)包括但不限于:廣域網(wǎng)、城域網(wǎng)或局域網(wǎng),終端304并不限定于PC、手機(jī)、平板電腦等。本發(fā)明實(shí)施例的游戲中角色行為的生成方法可以由服務(wù)器302來執(zhí)行,也可以由終端304來執(zhí)行,還可以是由服務(wù)器302和終端304共同執(zhí)行。其中,終端304執(zhí)行本發(fā)明實(shí)施例的游戲中角色行為的生成方法也可以是由安裝在其上的客戶端來執(zhí)行。

圖4是根據(jù)本發(fā)明實(shí)施例的一種游戲中角色行為的生成方法的流程圖。如圖4所示,該游戲中角色行為的生成方法可以包括以下步驟:

步驟S402,接收游戲客戶端發(fā)送的當(dāng)前游戲的狀態(tài)數(shù)據(jù)。

在本申請(qǐng)上述步驟S402提供的技術(shù)方案中,接收游戲客戶端發(fā)送的當(dāng)前游戲的狀態(tài)數(shù)據(jù),其中,狀態(tài)數(shù)據(jù)用于指示當(dāng)前游戲中多個(gè)角色的當(dāng)前狀態(tài)。

游戲客戶端將當(dāng)前游戲的狀態(tài)數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送到游戲模擬服務(wù)器上,游戲模擬服務(wù)器接收客戶端發(fā)送的當(dāng)前游戲的狀態(tài)數(shù)據(jù)。在當(dāng)前游戲中,存在多個(gè)角色,可以將多個(gè)角色的當(dāng)前操作狀態(tài)的狀態(tài)數(shù)據(jù)、當(dāng)前動(dòng)作狀態(tài)的狀態(tài)數(shù)據(jù)等當(dāng)前游戲的狀態(tài)數(shù)據(jù)發(fā)送到游戲模擬服務(wù)器上,游戲模擬服務(wù)器進(jìn)而接收游戲客戶端發(fā)送的當(dāng)前操作狀態(tài)的狀態(tài)數(shù)據(jù)、當(dāng)前動(dòng)作狀態(tài)的狀態(tài)數(shù)據(jù)等當(dāng)前游戲的狀態(tài)數(shù)據(jù)。

可選地,在當(dāng)前游戲中存在A角色、B角色、C角色、D角色,A角色的當(dāng)前狀態(tài)為等待狀態(tài),B角色的當(dāng)前狀態(tài)為攻打狀態(tài),C角色的當(dāng)前狀態(tài)為逃跑狀態(tài),D角色的當(dāng)前狀態(tài)為處于具體位置的位置狀態(tài),接收A角色、B角色、C角色、D角色的當(dāng)前狀態(tài)的狀態(tài)數(shù)據(jù)。

步驟S404,從當(dāng)前狀態(tài)開始,從預(yù)先獲取到的行為順序庫(kù)中獲取當(dāng)前游戲相關(guān)的行為順序序列。

在本申請(qǐng)上述步驟S404提供的技術(shù)方案中,從當(dāng)前狀態(tài)開始,從預(yù)先獲取到的行為順序庫(kù)中獲取當(dāng)前游戲相關(guān)的行為順序序列,其中,行為順序序列中記錄了多個(gè)角色的行為執(zhí)行順序。

游戲的狀態(tài)數(shù)據(jù)用于指示游戲中多個(gè)角色的狀態(tài),包括了每一個(gè)角色行動(dòng)的時(shí)間,游戲中多個(gè)角色的狀態(tài)隨著時(shí)間的持續(xù)在游戲環(huán)境中會(huì)有不同的狀態(tài),比如,A角色在最近一次行動(dòng)的時(shí)間的狀態(tài)為逃跑狀態(tài),B角色在最近一次行動(dòng)的時(shí)間的狀態(tài)為攻打狀態(tài),A角色在之后行動(dòng)的時(shí)間的狀態(tài)可能為攻打狀態(tài),B角色在下一時(shí)刻的狀態(tài)可能為逃跑狀態(tài)。當(dāng)前游戲的狀態(tài)數(shù)據(jù)用于指示當(dāng)前游戲中多個(gè)角色的當(dāng)前狀態(tài),包括了每一個(gè)角色最近一次行動(dòng)的時(shí)間。在接收游戲客戶端發(fā)送的當(dāng)前游戲的狀態(tài)數(shù)據(jù)之后,便可以確定當(dāng)前游戲中多個(gè)角色的當(dāng)前狀態(tài),進(jìn)而可以確定每一個(gè)角色最近一次行動(dòng)的時(shí)間。

從當(dāng)前狀態(tài)開始,從預(yù)先獲取到的行為順序庫(kù)中獲取當(dāng)前游戲相關(guān)的行為順序序列。其中,從當(dāng)前狀態(tài)開始,也即,從每一個(gè)角色最近一次行動(dòng)的時(shí)間開始,而不考慮當(dāng)前游戲中多個(gè)角色在歷史行動(dòng)的時(shí)間的狀態(tài),當(dāng)前游戲相關(guān)的行為順序序列為本局游戲相關(guān)的行為順序序列。

從當(dāng)前狀態(tài)開始,從預(yù)先獲取到的行為順序庫(kù)中獲取當(dāng)前游戲相關(guān)的行為順序序列,也即,從每一個(gè)角色最近一次行動(dòng)的時(shí)間開始,從行為順序庫(kù)中獲取與本局游戲相關(guān)的行為順序序列,服務(wù)器在從行為順序庫(kù)中獲取與本局游戲相關(guān)的行為順序序列的時(shí)間是從當(dāng)前狀態(tài)對(duì)應(yīng)的最近一次行動(dòng)的時(shí)間開始的。該實(shí)施例的行為順序庫(kù)為預(yù)先獲取到的存放行為順序序列的數(shù)據(jù)庫(kù)。其中,行為順序序列,是指各個(gè)角色依次行動(dòng)的一種順序,記錄了多個(gè)角色的行為執(zhí)行順序,比如,在當(dāng)前游戲中某一方存在A角色、B角色、C角色和D角色,A角色、B角色、C角色和D角色為一個(gè)角色組合{A,B,C,D},角色組合是指該序列中所包含的角色I(xiàn)D的不可重復(fù)的集合。A角色、B角色、C角色和D角色依次行動(dòng)。如果從極小的時(shí)間粒度上去看,游戲中不同角色的行為其實(shí)是存在先后順序關(guān)系的。

可選地,在多人對(duì)戰(zhàn)游戲中,角色的組合是多樣化的,歷史積累大量的游戲日志數(shù)據(jù),一般是按照某個(gè)幀率(例如每秒60幀)來記錄的,通常在每一幀中最多只有一個(gè)角色在行動(dòng),這樣根據(jù)幀與幀之間的順序關(guān)系,以及每一幀對(duì)應(yīng)的有行為的角色,就可以得到不同角色的行為順序序列。在得到不同角色的行為順序序列之后,對(duì)大量的角色組合和與角色組合相對(duì)應(yīng)的行為順序序列進(jìn)行統(tǒng)計(jì),對(duì)相同的角色組合,保留出現(xiàn)次數(shù)最多的行為順序序列,從而得到行為順序庫(kù)。除了得到行為順序序列之外,每一個(gè)角色的行為頻率、行為失誤率等參數(shù)也可以一并統(tǒng)計(jì)得到。

從當(dāng)前狀態(tài)開始,從預(yù)先獲取到的行為順序庫(kù)中獲取當(dāng)前游戲相關(guān)的行為順序序列?,F(xiàn)對(duì)當(dāng)前游戲相關(guān)的行為順序序列介紹如下:

第一步,在步驟S402中獲取狀態(tài)數(shù)據(jù),該狀態(tài)數(shù)據(jù)包括每一個(gè)角色(無論是否AI控制)最近一次行動(dòng)的時(shí)間(這個(gè)狀態(tài)數(shù)據(jù)至少要傳過來);

第二步,獲取與每一方的角色組合相同的行為順序序列;

第三步,結(jié)合行為順序序列中的每個(gè)角色的“行為頻率”參數(shù)(這個(gè)參數(shù)需要在統(tǒng)計(jì)階段記錄下來)和第一步中的“最近一次行動(dòng)的時(shí)間”,將多方對(duì)應(yīng)的行為順序序列拼接在一起,形成包含游戲中所有角色在內(nèi)的完整行為順序序列。例如游戲有兩方:A、B和C、D,對(duì)應(yīng)的行為順序序列可以為AB和DC,拼接后形成的完整行為順序序列可以為ADCB;

第四步,基于上述的完整行為順序序列再開始后續(xù)的仿真模擬以及更新、預(yù)測(cè)等操作。

在從預(yù)先獲取到的行為順序庫(kù)中獲取當(dāng)前游戲相關(guān)的行為順序序列之后,對(duì)行為順序序列以隊(duì)列等形式存儲(chǔ),存儲(chǔ)行為順序序列中的每一個(gè)角色,可選地,至少存儲(chǔ)相關(guān)的角色的ID,存儲(chǔ)的參數(shù)還可以包括最后一次行為的時(shí)間、行為頻率、行為失誤率等。

步驟S406,按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬,得到模擬結(jié)果和更新后的行為預(yù)測(cè)模型。

在本申請(qǐng)上述步驟S406提供的技術(shù)方案中,按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬,得到模擬結(jié)果和更新后的行為預(yù)測(cè)模型,其中,更新后的行為預(yù)測(cè)模型是根據(jù)模擬結(jié)果進(jìn)行更新得到的。

在從預(yù)先獲取到的行為順序庫(kù)中獲取當(dāng)前游戲相關(guān)的行為順序序列之后,依次對(duì)每一個(gè)角色進(jìn)行仿真模擬,也即,對(duì)整個(gè)游戲進(jìn)程的仿真模擬,該仿真模擬可以采用MCTS、行為樹等方法。

可選地,以MCTS方法為例,從當(dāng)前狀態(tài)開始,使用行為預(yù)測(cè)模型,該預(yù)測(cè)模型可以為隨機(jī)預(yù)測(cè)模型,按照已經(jīng)確定的行為執(zhí)行順序?qū)Χ鄠€(gè)角色進(jìn)行仿真模擬,依次預(yù)測(cè)每一個(gè)角色的行為并計(jì)算行為對(duì)當(dāng)前游戲的影響;在仿真模擬結(jié)束之后,更新行為預(yù)測(cè)模型,如果仿真模擬沒有結(jié)束,則繼續(xù)對(duì)需要仿真模擬的對(duì)象進(jìn)行仿真模擬,直至仿真模擬完成。

在按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬之后,根據(jù)模擬結(jié)果來對(duì)行為預(yù)測(cè)模型進(jìn)行更新,比如,當(dāng)模擬結(jié)果判定為勝,則增大預(yù)測(cè)模型中對(duì)應(yīng)的預(yù)測(cè)結(jié)果出現(xiàn)的概率,當(dāng)模擬結(jié)果判定為負(fù),則減小預(yù)測(cè)模型中對(duì)應(yīng)的預(yù)測(cè)結(jié)果出現(xiàn)的概率,從而實(shí)現(xiàn)對(duì)行為預(yù)測(cè)模型的更新,重復(fù)執(zhí)行上述過程多次,直至達(dá)到在MCTS方法中設(shè)定的執(zhí)行次數(shù),實(shí)現(xiàn)了對(duì)游戲進(jìn)程進(jìn)行仿真模擬的目的。

可選地,完整的模擬過程為依次模擬角色行為,在判斷是否需要進(jìn)行下一個(gè)角色的模擬以及剛模擬完的角色是否要插入隊(duì)列的時(shí)候,需要先判斷當(dāng)前模擬是否終止,例如判斷游戲是否結(jié)束,或者是否達(dá)到某個(gè)分值等。當(dāng)整個(gè)模擬的過程終止之后,才會(huì)得到當(dāng)前的模擬結(jié)果,當(dāng)前的模擬結(jié)果可以為勝利,失敗等游戲結(jié)果,并根據(jù)這個(gè)游戲結(jié)果來更新行為預(yù)測(cè)模型。但在得到當(dāng)前的模擬結(jié)果之前,在依次對(duì)角色進(jìn)行模擬的每一次,都要判斷是否達(dá)到用于判斷模擬是否終止的條件。

步驟S408,使用更新后的行為預(yù)測(cè)模型生成行為信息。

在本申請(qǐng)上述步驟S408提供的技術(shù)方案中,使用更新后的行為預(yù)測(cè)模型生成行為信息,其中,行為信息用于指示多個(gè)角色中的一個(gè)或多個(gè)在當(dāng)前狀態(tài)之后的下一個(gè)行為。

可選地,判斷按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬的次數(shù)是否達(dá)到預(yù)定的模擬次數(shù),如果按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬的次數(shù)達(dá)到預(yù)定的模擬次數(shù),使用最新的行為預(yù)測(cè)模型預(yù)測(cè)當(dāng)前角色中的一個(gè)或多個(gè)在當(dāng)前狀態(tài)之后的下一個(gè)行為,也即,以行為預(yù)測(cè)模型中的最大概率的行為來模擬當(dāng)前角色中的一個(gè)或多個(gè)在當(dāng)前狀態(tài)之后的下一個(gè)行為,該行為包括客戶端執(zhí)行的策略或動(dòng)作。

可選地,該實(shí)施例中的預(yù)定的模擬次數(shù)為使用MCTS方法來完成仿真模擬的次數(shù),與MCTS方法中設(shè)定的執(zhí)行次數(shù)不一樣。

步驟S410,將行為信息發(fā)送給游戲客戶端。

在本申請(qǐng)上述步驟S410提供的技術(shù)方案中,將行為信息發(fā)送給游戲客戶端。

在使用更新后的行為預(yù)測(cè)模型生成行為信息之后,將行為信息發(fā)送給游戲客戶端,客戶端執(zhí)行行為信息中的策略或動(dòng)作。可選地,判斷游戲是否結(jié)束,如果判斷出游戲結(jié)束,則結(jié)束游戲,如果判斷出游戲沒有結(jié)束,則執(zhí)行步驟S402,接收游戲客戶端發(fā)送的當(dāng)前游戲的狀態(tài)數(shù)據(jù)。其中,判斷游戲是否結(jié)束,是指根據(jù)游戲本身程序的設(shè)定來進(jìn)行判斷,比如,當(dāng)擊敗所有對(duì)手,或者占領(lǐng)對(duì)手領(lǐng)地,或者比分率先達(dá)到某一個(gè)分值時(shí),確定游戲結(jié)束。

通過上述步驟S402至步驟S410,通過接收游戲客戶端發(fā)送的當(dāng)前游戲的狀態(tài)數(shù)據(jù),其中,狀態(tài)數(shù)據(jù)用于指示當(dāng)前游戲中多個(gè)角色的當(dāng)前狀態(tài);從當(dāng)前狀態(tài)開始,從預(yù)先獲取到的行為順序庫(kù)中獲取當(dāng)前游戲相關(guān)的行為順序序列,其中,行為順序序列中記錄了多個(gè)角色的行為執(zhí)行順序;按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬,得到模擬結(jié)果和更新后的行為預(yù)測(cè)模型,其中,更新后的行為預(yù)測(cè)模型是根據(jù)模擬結(jié)果進(jìn)行更新得到的;使用更新后的行為預(yù)測(cè)模型生成行為信息,其中,行為信息用于指示多個(gè)角色中的一個(gè)或多個(gè)在當(dāng)前狀態(tài)之后的下一個(gè)行為;將行為信息發(fā)送給游戲客戶端,可以解決游戲中角色行為生成的準(zhǔn)確度較低的技術(shù)問題,進(jìn)而達(dá)到提高游戲中角色行為生成的準(zhǔn)確度和生產(chǎn)的效率的技術(shù)效果。

作為一種可選的實(shí)施例,步驟S406,按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬,得到模擬結(jié)果和更新后的行為預(yù)測(cè)模型包括:重復(fù)執(zhí)行以下步驟,直到達(dá)到預(yù)定的模擬次數(shù):在本次模擬中按照行為執(zhí)行順序依次從多個(gè)角色中獲取當(dāng)前待模擬的角色,重復(fù)執(zhí)行圖5所示的步驟。

圖5是根據(jù)本發(fā)明實(shí)施例的一種按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬的方法的流程圖。如圖5所示,該步驟包括:

步驟S501,使用上次模擬后更新得到的行為預(yù)測(cè)模型對(duì)當(dāng)前待模擬的角色進(jìn)行模擬。

在本申請(qǐng)上述步驟S501提供的技術(shù)方案中,使用上次模擬后更新得到的行為預(yù)測(cè)模型對(duì)當(dāng)前待模擬的角色進(jìn)行模擬,對(duì)當(dāng)前待模擬的角色進(jìn)行模擬不是針對(duì)一個(gè)角色的,而是針對(duì)所有角色的,游戲是一步步按照預(yù)測(cè)模擬進(jìn)行下去,最終會(huì)產(chǎn)生一個(gè)游戲結(jié)果,比如,勝利、失敗等結(jié)果。

步驟S502,判斷對(duì)當(dāng)前待模擬的角色進(jìn)行模擬之后是否得到用于指示當(dāng)前游戲結(jié)束的當(dāng)前的模擬結(jié)果。

在本申請(qǐng)上述步驟S502提供的技術(shù)方案中,用于指示當(dāng)前游戲結(jié)束的當(dāng)前的模擬結(jié)果可以為游戲結(jié)束,或者是到某個(gè)分值的情況。

步驟S503,若得到當(dāng)前的模擬結(jié)果,則結(jié)束本次模擬,并根據(jù)當(dāng)前的模擬結(jié)果對(duì)上次模擬后更新得到的行為預(yù)測(cè)模型進(jìn)行更新。

在本申請(qǐng)上述步驟S503提供的技術(shù)方案中,在判斷對(duì)當(dāng)前待模擬的角色進(jìn)行模擬之后是否得到用于指示當(dāng)前游戲結(jié)束的當(dāng)前的模擬結(jié)果之后,若得到當(dāng)前的模擬結(jié)果,則結(jié)束本次模擬,并根據(jù)當(dāng)前的模擬結(jié)果對(duì)上次模擬后更新得到的行為預(yù)測(cè)模型進(jìn)行更新,其中,模擬結(jié)果包括每次模擬得到的當(dāng)前的模擬結(jié)果,更新后的行為預(yù)測(cè)模型是使用最后一次模擬得到的當(dāng)前的模擬結(jié)果對(duì)倒數(shù)第二次模擬后更新得到的行為預(yù)測(cè)模型進(jìn)行更新得到的。

可選地,從當(dāng)前狀態(tài)開始,模擬游戲的進(jìn)程,使用行為預(yù)測(cè)模型按照選定的行為順序序列,依次預(yù)測(cè)每一個(gè)角色的行為并計(jì)算行為對(duì)當(dāng)前游戲的影響,該行為預(yù)測(cè)模型可以為隨機(jī)預(yù)測(cè)模型。計(jì)算行為對(duì)當(dāng)前游戲的影響是根據(jù)游戲本身的設(shè)計(jì)來進(jìn)行的。判斷該次模擬是否達(dá)到模擬結(jié)束條件,如果該次模擬達(dá)到模擬結(jié)束條件,根據(jù)當(dāng)前的模擬結(jié)果對(duì)上次模擬后更新得到的行為預(yù)測(cè)模型進(jìn)行更新,比如,當(dāng)模擬結(jié)果判定為勝,則增大上次模擬后更新得到的行為預(yù)測(cè)模型中對(duì)應(yīng)的預(yù)測(cè)結(jié)果出現(xiàn)的概率,當(dāng)模擬結(jié)果判定為負(fù)則減小上次模擬后更新得到的行為預(yù)測(cè)模型中對(duì)應(yīng)的預(yù)測(cè)結(jié)果出現(xiàn)的概率。如果該次模擬沒有達(dá)到模擬結(jié)束條件,則繼續(xù)使用行為預(yù)測(cè)模型按照選定的行為順序序列,依次預(yù)測(cè)每一個(gè)角色的行為并計(jì)算行為對(duì)當(dāng)前游戲的影響??蛇x地,模擬結(jié)束條件可以是模擬直至游戲結(jié)束,或者是模擬達(dá)成事先指定的模擬完成條件,比如,達(dá)到一定的模擬步數(shù)則確定模擬完成。如果模擬未完成則繼續(xù)模擬,直至完成模擬。

在根據(jù)當(dāng)前的模擬結(jié)果對(duì)上次模擬后更新得到的行為預(yù)測(cè)模型進(jìn)行更新之后,判斷按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬的次數(shù)是否達(dá)到預(yù)定的模擬次數(shù),如果按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬的次數(shù)達(dá)到預(yù)定的模擬次數(shù),則使用最新的行為預(yù)測(cè)模型預(yù)測(cè)當(dāng)前角色的行為,也即,以行為預(yù)測(cè)模型中的最大概率的行為來模擬當(dāng)前角色的行為。其中,預(yù)定的模擬次數(shù)是事先人工指定的一個(gè)參數(shù)。如果按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬的次數(shù)未達(dá)到預(yù)定的模擬次數(shù),那么需要繼續(xù)按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬。

該實(shí)施例通過重復(fù)執(zhí)行以下步驟,直到達(dá)到預(yù)定的模擬次數(shù):在本次模擬中按照行為執(zhí)行順序依次從多個(gè)角色中獲取當(dāng)前待模擬的角色,重復(fù)執(zhí)行以下步驟:使用上次模擬后更新得到的行為預(yù)測(cè)模型對(duì)當(dāng)前待模擬的角色進(jìn)行模擬;判斷對(duì)當(dāng)前待模擬的角色進(jìn)行模擬之后是否得到用于指示當(dāng)前游戲結(jié)束的當(dāng)前的模擬結(jié)果;若得到當(dāng)前的模擬結(jié)果,則結(jié)束本次模擬,并根據(jù)當(dāng)前的模擬結(jié)果對(duì)上次模擬后更新得到的行為預(yù)測(cè)模型進(jìn)行更新,達(dá)到了按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬,得到模擬結(jié)果和更新后的行為預(yù)測(cè)模型,進(jìn)而達(dá)到提高游戲中角色行為生成的準(zhǔn)確度和生成的效率的技術(shù)效果。

作為一種可選的實(shí)施例,按照行為執(zhí)行順序從多個(gè)角色中獲取當(dāng)前待模擬的角色包括:從執(zhí)行隊(duì)列中取出位于隊(duì)首的當(dāng)前待模擬的角色,其中,多個(gè)角色按照行為執(zhí)行順序存入執(zhí)行隊(duì)列。

行為順序序列中的多個(gè)角色以執(zhí)行隊(duì)列的形式存儲(chǔ),行為順序序列中記錄了多個(gè)角色的行為執(zhí)行順序。從執(zhí)行隊(duì)列中取出位于隊(duì)首的當(dāng)前待模擬的角色,也即,從執(zhí)行隊(duì)列中獲取第一個(gè)需要仿真模擬的對(duì)象進(jìn)行仿真模擬。仿真模擬可以采用MCTS、行為樹等方法。MCTS仿真是指對(duì)游戲進(jìn)行事先指定的多次模擬并對(duì)行為預(yù)測(cè)模型進(jìn)行更新,利用最新的行為預(yù)測(cè)模型來決定角色當(dāng)前應(yīng)當(dāng)采取的策略,一次來模擬當(dāng)前角色的行為,利用行為樹進(jìn)行仿真可以按照行為樹提供的復(fù)雜的規(guī)則來決定角色當(dāng)前應(yīng)當(dāng)采取的策略,以此來模擬當(dāng)前角色的行為,其中,復(fù)雜的規(guī)則一般是人工定義的,比如,當(dāng)血量低于某一個(gè)閾值時(shí),角色應(yīng)當(dāng)朝哪一個(gè)方向逃離危險(xiǎn)區(qū)域多少距離。采用MCTS、行為樹等方法進(jìn)行仿真模擬的計(jì)算耗時(shí)低,仿真模擬效果好。

作為一種可選的實(shí)施例,在使用上次模擬后更新得到的行為預(yù)測(cè)模型對(duì)當(dāng)前待模擬的角色進(jìn)行模擬,得到當(dāng)前的模擬結(jié)果之前,判斷模擬是否結(jié)束,如果模擬沒有結(jié)束,將已執(zhí)行完模擬的當(dāng)前待模擬的角色重新插入到執(zhí)行隊(duì)列中,也即,插入隊(duì)列操作是在得到最終模擬結(jié)果之前完成的,在所有角色都經(jīng)過多次模擬之后才能得到游戲的結(jié)果。

圖6是根據(jù)本發(fā)明實(shí)施例的另一種按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)所述多個(gè)角色進(jìn)行仿真模擬的方法的流程圖。如圖6所示,該按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)所述多個(gè)角色進(jìn)行仿真模擬的方法還包括以下步驟:

步驟S601,在未得到用于指示當(dāng)前游戲結(jié)束的當(dāng)前的模擬結(jié)果的情況下,將已執(zhí)行完模擬的當(dāng)前待模擬的角色存入執(zhí)行隊(duì)列的隊(duì)尾;或者,獲取當(dāng)前待模擬的角色在當(dāng)前狀態(tài)下的最后一次行為的執(zhí)行時(shí)間T1,以及預(yù)先記錄的行為頻率所對(duì)應(yīng)的間隔時(shí)間T2。

在本申請(qǐng)上述步驟S601提供的技術(shù)方案中,在使用上次模擬后更新得到的行為預(yù)測(cè)模型對(duì)當(dāng)前待模擬的角色進(jìn)行模擬之后,在未得到用于指示當(dāng)前游戲結(jié)束的當(dāng)前的模擬結(jié)果的情況下,將已經(jīng)仿真模擬完畢的當(dāng)前待模擬的角色重新插入該執(zhí)行隊(duì)列,可以將已經(jīng)仿真模擬完畢的對(duì)象根據(jù)行為順序序列中的行為執(zhí)行順序依次插入執(zhí)行隊(duì)列的隊(duì)尾,或者獲取根據(jù)每個(gè)角色最后一次行為的時(shí)間T1以及根據(jù)行為頻率得到的行為間隔時(shí)間T2,其中,行為頻率與最后一次行為相對(duì)應(yīng)。

步驟S602,將已執(zhí)行完模擬的當(dāng)前待模擬的角色存入執(zhí)行隊(duì)列中與(T1+T2)對(duì)應(yīng)的位置上。

在本申請(qǐng)上述步驟S602提供的技術(shù)方案中,在將已執(zhí)行完模擬的當(dāng)前待模擬的角色存入執(zhí)行隊(duì)列的隊(duì)尾;或者,獲取當(dāng)前待模擬的角色在當(dāng)前狀態(tài)下的最后一次行為的執(zhí)行時(shí)間T1,以及預(yù)先記錄的行為頻率所對(duì)應(yīng)的間隔時(shí)間T2之后,計(jì)算其下一次行為所發(fā)生的時(shí)間T1+T2,然后按照時(shí)間T1+T2插入到執(zhí)行隊(duì)列中相應(yīng)的位置。

該實(shí)施例通過在未得到用于指示當(dāng)前游戲結(jié)束的當(dāng)前的模擬結(jié)果的情況下,將已執(zhí)行完模擬的當(dāng)前待模擬的角色存入執(zhí)行隊(duì)列的隊(duì)尾;或者,獲取當(dāng)前待模擬的角色在當(dāng)前狀態(tài)下的最后一次行為的執(zhí)行時(shí)間T1,以及預(yù)先記錄的行為頻率所對(duì)應(yīng)的間隔時(shí)間T2,將已執(zhí)行完模擬的當(dāng)前待模擬的角色存入執(zhí)行隊(duì)列中與(T1+T2)對(duì)應(yīng)的位置上,達(dá)到了提高游戲中角色行為生成的準(zhǔn)確度和生成的效率的技術(shù)效果。

作為一種可選的實(shí)施例,在從預(yù)先獲取到的行為順序庫(kù)中獲取當(dāng)前游戲相關(guān)的行為順序序列之前,通過對(duì)歷史游戲日志進(jìn)行統(tǒng)計(jì)操作,得到行為順序庫(kù)中的行為順序序列,其中,歷史游戲日志中的每條游戲日志記錄是按照預(yù)定幀率記錄的,預(yù)定幀率下的每一幀中最多只有一個(gè)角色在執(zhí)行行為。

從游戲日志數(shù)據(jù)庫(kù)中依次讀取一條歷史游戲日志;每一條歷史游戲日志均按照預(yù)定幀率來記錄的,其中每一幀中至多只有一個(gè)角色在行動(dòng)。依次從該條歷史游戲日志的每一幀中抽取出有行為記錄的角色及其相關(guān)數(shù)據(jù),并按時(shí)間順序排列成一個(gè)游戲日志完整序列,可以從第一幀開始,把每一幀中有行為記錄的角色和相關(guān)數(shù)據(jù)抽取出來,相關(guān)數(shù)據(jù)包括角色屬于哪一方、角色的行為頻率、角色的行為失誤率等數(shù)據(jù),然后按照時(shí)間順序排列,得到游戲日志完整序列。將上述游戲日志完整序列按照各方進(jìn)行分解,產(chǎn)生各方的序列;從上述各方序列的第一個(gè)角色開始,依次找出排列中各方的最小全序列;每一方的全序列是指該方的某一包含該方所有的角色的連續(xù)子序列,連續(xù)子序列是指該子序列對(duì)應(yīng)的角色序列字符串要能被該方序列對(duì)應(yīng)的角色序列字符串所包含。其中,序列有包含關(guān)系,如果一條序列對(duì)應(yīng)的角色序列字符串被另一條序列對(duì)應(yīng)的角色序列字符串所包含,則稱前者被后者包含,或者稱前者小于后者。

每一條歷史游戲日志會(huì)產(chǎn)生一個(gè)游戲日志完整序列,每一個(gè)游戲日志完整序列會(huì)產(chǎn)生多個(gè)各方序列,每一個(gè)各方序列會(huì)產(chǎn)生多個(gè)最小全序列,從而對(duì)產(chǎn)生的所有的最小全序列進(jìn)行計(jì)數(shù)。對(duì)包含角色組合相同的最小全序列,將次數(shù)最多的最小全序列加入行為順序庫(kù),從而獲取行為順序庫(kù),從預(yù)先獲取到的行為順序庫(kù)中獲取當(dāng)前游戲相關(guān)的行為順序序列。

作為一種可選的實(shí)施例,通過對(duì)歷史游戲日志進(jìn)行統(tǒng)計(jì)操作,得到行為順序庫(kù)中的行為順序序列包括:從每條游戲日志記錄中獲取每幀有行為記錄的角色,得到游戲日志完整序列;從游戲日志完整序列中獲取每個(gè)角色集合的子序列;從每個(gè)角色集合的子序列中得到角色集合的最小全序列;在歷史游戲日志的所有游戲日志記錄的最小全序列中,對(duì)于角色組合相同的最小全序列,將出現(xiàn)次數(shù)最多的最小全序列記錄為行為順序庫(kù)中的行為順序序列。

圖7是根據(jù)本發(fā)明實(shí)施例的一種通過對(duì)歷史游戲日志進(jìn)行統(tǒng)計(jì)操作,得到行為順序庫(kù)中的行為順序序列的方法的流程圖。如圖7所示,該通過對(duì)歷史游戲日志進(jìn)行統(tǒng)計(jì)操作,得到行為順序庫(kù)中的行為順序序列的方法以下步驟:

步驟S701,從每條游戲日志記錄中獲取每幀有行為記錄的角色,得到游戲日志完整序列。

在本申請(qǐng)上述步驟S701提供的技術(shù)方案中,從每條游戲日志記錄中獲取每幀有行為記錄的角色,得到游戲日志完整序列,其中,游戲日志完整序列是按照時(shí)間順序?qū)γ織l游戲日志記錄中的所有幀中的有行為記錄的角色進(jìn)行排列得到的。

依次從每條游戲日志記錄中的每一幀中抽取出有行為記錄的角色及其相關(guān)數(shù)據(jù),并按時(shí)間順序排列成一個(gè)游戲日志完整序列。

步驟S702,從游戲日志完整序列中獲取每個(gè)角色集合的子序列。

在本申請(qǐng)上述步驟S702提供的技術(shù)方案中,從游戲日志完整序列中獲取每個(gè)角色集合的子序列,其中,多個(gè)角色被劃分為至少兩個(gè)角色集合,每個(gè)角色集合的子序列是按照時(shí)間順序?qū)λ袔袑儆谠摻巧系?、有行為記錄的角色進(jìn)行排列得到的。

從游戲日志完整序列的第一幀開始,把每一幀中有行為記錄的角色和相關(guān)數(shù)據(jù)抽取出來,相關(guān)數(shù)據(jù)包括角色屬于哪一方,比如,有的游戲中,角色會(huì)被劃分為多個(gè)不同的陣營(yíng),每一個(gè)陣營(yíng)稱為一方,為角色集合的子序列。相關(guān)數(shù)據(jù)還包括角色的行為頻率、角色的行為失誤率等數(shù)據(jù),然后按照時(shí)間順序排列對(duì)所有幀中屬于該角色集合的、有行為記錄的角色進(jìn)行排列。

舉例而言,假設(shè)該條行為記錄中一共包含6個(gè)角色,記為A、B、C、D、E、F,那么,每一幀中可以至多抽取到其中一個(gè)角色的相關(guān)數(shù)據(jù),可以用多維數(shù)組的方式記錄下來,仍以A、B、C、D、E、F來代表相應(yīng)的數(shù)組。假設(shè)該條日志數(shù)據(jù)中有20幀記錄了角色的行為,那么按照時(shí)間順序排列得到的游戲日志完整序列類似于ACBBDEFABCDFEABCDFEC形式。

將上述游戲日志完整序列按照各個(gè)就是集合進(jìn)行分解,產(chǎn)生每個(gè)角色集合的子序列。假設(shè)上述例子中角色A、C、E為一方,角色B、D、F為另一方,那么序列ACBBDEFABCDFEABCDFEC就被分解成兩個(gè)子序列:ACEACEACEC和BBDFBDFBDF。

步驟S703,從每個(gè)角色集合的子序列中得到角色集合的最小全序列。

在本申請(qǐng)上述步驟S703提供的技術(shù)方案中,從每個(gè)角色集合的子序列中得到角色集合的最小全序列,其中,最小全序列包括:子序列中的連續(xù)字符串,其中,連續(xù)字符串僅包括角色集合中的每個(gè)角色的標(biāo)識(shí);在歷史游戲日志的所有游戲日志記錄的最小全序列中,對(duì)于角色組合相同的最小全序列,將出現(xiàn)次數(shù)最多的最小全序列記錄為行為順序庫(kù)中的行為順序序列。從上述每個(gè)角色集合的子序列的第一個(gè)角色開始,依次找出排列中各方的最小全序列;在每個(gè)角色集合的子序列中,把每個(gè)角色集合的最小全序列都找出來。每個(gè)角色集合的全序列是指該角色集合的某一包含該角色集合中所有的角色的連續(xù)子序列,比如,對(duì)于角色集合的ACEACEACEC序列而言,子序列中的連續(xù)字符串ACE是全序列,而AEC、AC均不是。序列有包含關(guān)系,如果一條序列對(duì)應(yīng)的角色序列字符串被另一條序列對(duì)應(yīng)的角色序列字符串所包含,則稱前者被后者包含,或者稱前者小于后者。比如,AEC被CAECE包含,或者AEC小于CAECE。最小全序列是指該全序列在包含關(guān)系中是最小的全序列。依次是指從角色集合的序列的第一個(gè)角色開始遍歷直至該角色集合的序列的最后一個(gè)角色。比如,以角色集合的ACEACEACEC為例,最小全序列為:ACE、CEA、EAC。

對(duì)于角色組合相同的最小全序列,將出現(xiàn)次數(shù)最多的最小全序列記錄為行為順序庫(kù)中的行為順序序列,將次數(shù)最多的最小全序列加入行為序列庫(kù)。其中,角色組合是指該序列中所包含的角色I(xiàn)D的不可重復(fù)的集合,比如,CAECE的角色組合是集合{C,A,E}。

該實(shí)施例通過從每條游戲日志記錄中獲取每幀有行為記錄的角色,得到游戲日志完整序列,其中,游戲日志完整序列是按照時(shí)間順序?qū)γ織l游戲日志記錄中的所有幀中的有行為記錄的角色進(jìn)行排列得到的;從游戲日志完整序列中獲取每個(gè)角色集合的子序列,其中,多個(gè)角色被劃分為至少兩個(gè)角色集合,每個(gè)角色集合的子序列是按照時(shí)間順序?qū)λ袔袑儆谠摻巧系摹⒂行袨橛涗浀慕巧M(jìn)行排列得到的;從每個(gè)角色集合的子序列中得到角色集合的最小全序列,其中,最小全序列包括:子序列中的連續(xù)字符串,其中,連續(xù)字符串僅包括角色集合中的每個(gè)角色的標(biāo)識(shí);在歷史游戲日志的所有游戲日志記錄的最小全序列中,對(duì)于角色組合相同的最小全序列,將出現(xiàn)次數(shù)最多的最小全序列記錄為行為順序庫(kù)中的行為順序序列,實(shí)現(xiàn)了通過對(duì)歷史游戲日志進(jìn)行統(tǒng)計(jì)操作,得到行為順序庫(kù)中的行為順序序列的目的,進(jìn)而達(dá)到了提高游戲中角色行為生成的準(zhǔn)確度和生成的效率的技術(shù)效果。

作為一種可選的實(shí)施例,當(dāng)前游戲包括實(shí)時(shí)戰(zhàn)略類游戲,多個(gè)角色被劃分為至少兩個(gè)角色集合,其中,至少兩個(gè)角色集合在實(shí)時(shí)戰(zhàn)略類游戲中是對(duì)立的。

本發(fā)明實(shí)施例通過行為順序序列,使得對(duì)實(shí)時(shí)多人對(duì)戰(zhàn)游戲中多個(gè)角色的仿真模擬變得可行,這樣的方式與實(shí)時(shí)多人對(duì)戰(zhàn)游戲的特點(diǎn)更為貼近,相對(duì)更加合理,而且計(jì)算耗時(shí)也非常低,再結(jié)合MCTS、行為樹等模擬仿真方法,不僅可以使得AI更為接近甚至超越人類選手的水平,提升AI的能力,而且整個(gè)模擬過程可以很好的滿足實(shí)時(shí)多人對(duì)戰(zhàn)游戲嚴(yán)格的實(shí)時(shí)性的要求,達(dá)到了提高游戲中角色行為生成的準(zhǔn)確度和生成的效率的技術(shù)效果,更好地提高游戲玩家的體驗(yàn)。

實(shí)施例2

下面結(jié)合優(yōu)選的實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)行說明。

本發(fā)明實(shí)施例提出了一種實(shí)時(shí)多人對(duì)戰(zhàn)游戲中基于順序的仿真方法,能夠針對(duì)實(shí)時(shí)多人對(duì)戰(zhàn)游戲這種復(fù)雜情況做出更合理的模擬,更好地提升AI的能力,并且能滿足實(shí)時(shí)多人對(duì)戰(zhàn)游戲嚴(yán)格的實(shí)時(shí)性的要求。

圖8是根據(jù)本發(fā)明實(shí)施例的另一種游戲中角色行為的生成方法的流程圖。如圖8所示,該游戲中角色行為的生成方法包括以下步驟:

步驟S801,從行為順序庫(kù)中取出本局游戲相關(guān)的行為順序序列。

從行為順序庫(kù)中取出本局游戲相關(guān)的行為順序序列,行為順序序列數(shù)據(jù)庫(kù)中的行為順序序列可以通過對(duì)歷史的游戲日志進(jìn)行統(tǒng)計(jì)等方法得到。

行為序列庫(kù)是存放行為順序數(shù)據(jù)的數(shù)據(jù)庫(kù)。其中,行為順序,是指各個(gè)角色依次行動(dòng)的一種順序,如果從極小的時(shí)間粒度上去看,游戲中不同角色的行為其實(shí)是存在先后順序關(guān)系的。在多人對(duì)戰(zhàn)游戲里,角色的組合是多樣化的,可以通過基于統(tǒng)計(jì)的辦法得到不同角色組合中各個(gè)角色的行為順序。

可選地,歷史積累的大量游戲日志數(shù)據(jù),一般是按照某個(gè)幀率(例如每秒60幀)來記錄的,通常在每一幀中最多只有一個(gè)角色在行動(dòng),這樣一來,根據(jù)幀與幀之間的順序關(guān)系,以及每一幀對(duì)應(yīng)的有行為的角色,就可以得到不同角色的行為順序序列,再對(duì)大量的角色組合和對(duì)應(yīng)的行為順序序列進(jìn)行統(tǒng)計(jì),對(duì)相同的角色組合,保留出現(xiàn)次數(shù)最多的行為順序序列,就可得到行為序列庫(kù)。不僅如此,除了得到行為順序序列外,每一個(gè)角色的行為頻率、行為失誤率等參數(shù)也可以一并統(tǒng)計(jì)得到,從而實(shí)現(xiàn)從行為順序庫(kù)中取出本局游戲相關(guān)的行為順序序列。

本局游戲相關(guān)的行為順序序列的實(shí)現(xiàn)過程如下:

第一步,在中獲取狀態(tài)數(shù)據(jù),該狀態(tài)數(shù)據(jù)包括每一個(gè)角色(無論是否AI控制)最近一次行動(dòng)的時(shí)間(這個(gè)狀態(tài)數(shù)據(jù)至少要傳過來);

第二步,獲取與每一方的角色組合相同的行為順序序列;

第三步,結(jié)合行為順序序列中的每個(gè)角色的“行為頻率”參數(shù)(這個(gè)參數(shù)需要在統(tǒng)計(jì)階段記錄下來)和第一步中的“最近一次行動(dòng)的時(shí)間”,將多方對(duì)應(yīng)的行為順序序列拼接在一起,形成包含游戲中所有角色在內(nèi)的完整行為順序序列。例如游戲有兩方:A、B和C、D,對(duì)應(yīng)的行為順序序列可以為AB和DC,拼接后形成的完整行為順序序列可以為ADCB;

第四步,基于上述的完整行為順序序列再開始后續(xù)的仿真模擬以及更新、預(yù)測(cè)等操作。

步驟S802,將該行為順序序列以隊(duì)列等形式存儲(chǔ)。

將該行為順序序列以隊(duì)列等形式存儲(chǔ),該隊(duì)列也即執(zhí)行隊(duì)列。對(duì)于行為順序序列中的每一個(gè)對(duì)象(即角色),至少需要存儲(chǔ)相關(guān)的角色的ID,除此之外,存儲(chǔ)的參數(shù)還可以包含:最后一次行為的時(shí)間、行為頻率、行為失誤率等。

步驟S803,從該隊(duì)列中取出第一個(gè)需要仿真模擬的對(duì)象進(jìn)行仿真模擬。

從該隊(duì)列中取出第一個(gè)需要仿真模擬的對(duì)象進(jìn)行仿真模擬,仿真模擬可以采用MCTS、行為樹等方法。

步驟S804,判斷模擬是否結(jié)束。

判斷模擬是否結(jié)束,如果判斷出模擬結(jié)束,則結(jié)束模擬,如果判斷出模擬沒有結(jié)束,則執(zhí)行步驟S805。其中,判斷模擬是否結(jié)束,是指根據(jù)游戲本身程序的設(shè)定來進(jìn)行判斷,比如,擊敗所有對(duì)手,或者占領(lǐng)對(duì)手領(lǐng)地,或者比分率先達(dá)到某一個(gè)分值等。

步驟S805,將已經(jīng)仿真模擬完畢的對(duì)象重新插入該隊(duì)列。

將已經(jīng)仿真模擬完畢的對(duì)象重新插入該隊(duì)列,執(zhí)行步驟S803。

已經(jīng)模擬完畢的對(duì)象重新插入該隊(duì)列比如,可以根據(jù)行為順序序列中的順序依次插入隊(duì)列尾部,或者根據(jù)每個(gè)角色最后一次行為的時(shí)間T1以及根據(jù)行為頻率得到的行為間隔時(shí)間T2,計(jì)算其下一次行為所發(fā)生的時(shí)間T1+T2,然后按照時(shí)間插入到隊(duì)列中相應(yīng)的位置。

該實(shí)施例從行為順序庫(kù)中取出本局游戲相關(guān)的行為順序序列,將該行為順序序列以隊(duì)列等形式存儲(chǔ),從該隊(duì)列中取出第一個(gè)需要仿真模擬的對(duì)象進(jìn)行仿真模擬,判斷游戲是否結(jié)束,如果判斷出游戲結(jié)束,則結(jié)束游戲,如果判斷出游戲沒有結(jié)束,將已經(jīng)仿真模擬完畢的對(duì)象重新插入該隊(duì)列,從而實(shí)現(xiàn)了通過順序序列的方式進(jìn)行仿真模擬的目的。這樣的方式與實(shí)時(shí)多人對(duì)戰(zhàn)游戲的特點(diǎn)更為貼近,相對(duì)更加合理,而且計(jì)算耗時(shí)也非常低,再結(jié)合上述提及的業(yè)界主流的仿真模擬方法,不僅可以使得AI更為接近甚至超越人類選手的水平,提升AI的能力,而且整個(gè)模擬過程可以很好的滿足實(shí)時(shí)多人對(duì)戰(zhàn)游戲嚴(yán)格的實(shí)時(shí)性的要求。

圖9是根據(jù)本發(fā)明實(shí)施例的一種得到行為序列庫(kù)的基于統(tǒng)計(jì)的方法的流程圖。如圖9所示,該得到行為序列庫(kù)的基于統(tǒng)計(jì)的方法包括以下步驟:

步驟S901,從游戲日志數(shù)據(jù)庫(kù)中依次讀取一條游戲日志數(shù)據(jù)。

每一條游戲日志數(shù)據(jù)均按照某個(gè)給定的幀率來記錄的,其中每一幀中至多只有一個(gè)角色在行動(dòng)。

步驟S902,依次從該條日志數(shù)據(jù)的每一幀中抽取出有行為記錄的角色及其相關(guān)數(shù)據(jù),并按時(shí)間順序排列成一個(gè)游戲日志完整序列。

從第一幀開始,把每一幀中有行為記錄的角色和相關(guān)數(shù)據(jù)抽取出來,相關(guān)數(shù)據(jù)包括角色屬于哪一方(有的游戲中,角色會(huì)被劃分為多個(gè)不同的陣營(yíng),每一個(gè)陣營(yíng)稱為一方)、角色的行為頻率、角色的行為失誤率等數(shù)據(jù),然后按照時(shí)間順序排列。假設(shè)該條游戲記錄中一共包含6個(gè)角色,記為A、B、C、D、E、F,那么,每一幀中可以至多抽取到其中一個(gè)角色的相關(guān)數(shù)據(jù),可以用多維數(shù)組的方式記錄下來,以A、B、C、D、E、F來代表相應(yīng)的數(shù)組。假設(shè)該條日志數(shù)據(jù)中有20幀記錄了角色的行為,那么按照時(shí)間順序排列得到的游戲日志完整序列類似于ACBBDEFABCDFEABCDFEC這樣的形式。

步驟S903,將上述游戲日志完整序列按照各方進(jìn)行分解,產(chǎn)生各方的序列。

假設(shè)上述例子中角色A、C、E為一方,角色B、D、F為另一方,那么序列ACBBDEFABCDFEABCDFEC就被分解成兩個(gè)序列:ACEACEACEC和BBDFBDFBDF。

步驟S904,從上述各方序列的第一個(gè)角色開始,依次找出排列中各方的最小全序列。

每一方的全序列是指該方的某一包含該方所有的角色的連續(xù)子序列,連續(xù)子序列是指該子序列對(duì)應(yīng)的角色序列(序列中只保留角色I(xiàn)D)字符串要能被該方序列對(duì)應(yīng)的角色序列字符串所包含,比如,對(duì)于ACEACEACEC這個(gè)序列而言,ACE是全序列,而AEC、AC均不是。序列有包含關(guān)系:如果一條序列對(duì)應(yīng)的角色序列字符串被另一條序列對(duì)應(yīng)的角色序列字符串所包含,則稱前者被后者包含,或者稱前者小于后者。比如,AEC被CAECE包含,或者AEC小于CAECE。最小是指該全序列在包含關(guān)系中是最小的。依次是指從各方序列的第一個(gè)角色開始遍歷直至該方序列的最后一個(gè)角色。以ACEACEACEC為例,找到的最小全序列為:ACE、CEA、EAC。

步驟S905,統(tǒng)計(jì)游戲日志數(shù)據(jù)庫(kù)中產(chǎn)生的所有的最小全序列的次數(shù)。

每一條游戲日志會(huì)產(chǎn)生一個(gè)游戲日志完整序列,每一個(gè)游戲日志完整序列會(huì)產(chǎn)生多個(gè)各方序列,每一個(gè)各方序列會(huì)產(chǎn)生多個(gè)最小全序列。

步驟S906,對(duì)包含角色組合相同的最小全序列,將次數(shù)最多的最小全序列加入行為序列庫(kù)。

對(duì)包含角色組合相同的最小全序列,將次數(shù)最多的最小全序列加入行為序列庫(kù),角色組合是指該序列中所包含的角色I(xiàn)D的不可重復(fù)的集合,比如,CAECE的角色組合是集合{C,A,E}。

該實(shí)施例的本局游戲相關(guān)的行為順序序列,是指行為順序序列數(shù)據(jù)庫(kù)中角色組合與本局游戲中AI控制的每一方的角色組合(控制多方即多個(gè)角色組合)相同的行為順序序列。

在游戲進(jìn)行的同時(shí),還可以實(shí)時(shí)分析對(duì)手的行為順序序列與行為頻率、行為失誤率等,對(duì)AI的行為順序序列和其它參數(shù)進(jìn)行調(diào)整,使得AI的能力與對(duì)手更為接近,不會(huì)比對(duì)手太強(qiáng)或太弱。

圖10是根據(jù)本發(fā)明實(shí)施例的一種通過MCTS進(jìn)行模擬的方法的流程圖。如圖10所示,該通過MCTS進(jìn)行模擬的方法包括以下步驟:

步驟S1001,從當(dāng)前狀態(tài)開始,使用行為預(yù)測(cè)模型依照選定的行為順序序列,依次預(yù)測(cè)每一個(gè)角色的行為并計(jì)算行為對(duì)當(dāng)前游戲的影響。

從當(dāng)前狀態(tài)開始,使用行為預(yù)測(cè)模型按照選定的行為順序序列,依次預(yù)測(cè)每一個(gè)角色的行為并計(jì)算行為對(duì)當(dāng)前游戲的影響。行為預(yù)測(cè)模型可以為隨機(jī)預(yù)測(cè)模型。

利用MCTS仿真是指進(jìn)行多次(事先指定的游戲的模擬次數(shù))的模擬。計(jì)算行為對(duì)當(dāng)前游戲的影響是根據(jù)游戲本身的設(shè)計(jì)來進(jìn)行的。計(jì)算行為對(duì)當(dāng)前游戲的影響是根據(jù)游戲本身的設(shè)計(jì)來進(jìn)行的。

步驟S1002,判斷該次模擬是否結(jié)束。

判斷該次模擬是否結(jié)束,如果判斷出該次模擬結(jié)束,執(zhí)行步驟S1003,如果判斷出該次模擬沒有結(jié)束,執(zhí)行步驟S1001。

模擬結(jié)束條件可以是模擬直至游戲結(jié)束,或者是模擬達(dá)成事先指定的模擬完成條件,比如,達(dá)到一定的模擬步數(shù)等。如果模擬未完成則繼續(xù)模擬,直至完成模擬。

步驟S1003,更新行為預(yù)測(cè)模型。

在每次模擬結(jié)束之后,根據(jù)模擬結(jié)果來對(duì)行為預(yù)測(cè)模型進(jìn)行更新。比如,當(dāng)模擬結(jié)果判定為勝時(shí),則增大預(yù)測(cè)模型中對(duì)應(yīng)的預(yù)測(cè)結(jié)果出現(xiàn)的概率,當(dāng)模擬結(jié)果判定為負(fù)時(shí),則減小預(yù)測(cè)模型中對(duì)應(yīng)的預(yù)測(cè)結(jié)果出現(xiàn)的概率,從而實(shí)現(xiàn)了對(duì)預(yù)測(cè)行為模型的更新。

步驟S1004,判斷是否達(dá)到模擬次數(shù)。

在更新行為預(yù)測(cè)模型之后,判斷是否達(dá)到模擬次數(shù),如果判斷出達(dá)到模擬次數(shù),執(zhí)行步驟S1005,如果判斷出未達(dá)到模擬次數(shù),執(zhí)行步驟S1001。

模擬次數(shù)是事先人工指定的一個(gè)參數(shù)。如果沒有達(dá)到模擬次數(shù)的要求,那么需要繼續(xù)模擬。

步驟S1005,使用最新的行為預(yù)測(cè)模型預(yù)測(cè)當(dāng)前角色的行為。

即以行為預(yù)測(cè)模型中的最大概率的行為來模擬當(dāng)前角色的行為。

本發(fā)明實(shí)施例的游戲中角色行為的生成方法,能夠針對(duì)實(shí)時(shí)多人對(duì)戰(zhàn)游戲做出更合理的模擬,使得AI更接近甚至超越人類選手的水平,更好的提升AI的能力,并且能滿足實(shí)時(shí)多人對(duì)戰(zhàn)游戲嚴(yán)格的實(shí)時(shí)性的要求,提高了游戲中角色行為的生成的準(zhǔn)確度和生成的效率,進(jìn)而提高了游戲玩家的用戶體驗(yàn)。

需要說明的是,對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。

通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實(shí)施例的方法可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。

實(shí)施例3

本發(fā)明實(shí)施例的應(yīng)用環(huán)境可以但不限于參照上述實(shí)施例中的應(yīng)用環(huán)境,本實(shí)施例中對(duì)此不再贅述。本發(fā)明實(shí)施例提供了用于實(shí)施上述游戲中角色行為的生成方法的一種可選的具體應(yīng)用。

發(fā)明提出的基于順序的仿真方法能夠針對(duì)實(shí)時(shí)多人對(duì)戰(zhàn)游戲這種復(fù)雜情況做出更合理的模擬,更好的提升AI的能力,并且能滿足實(shí)時(shí)多人對(duì)戰(zhàn)游戲嚴(yán)格的實(shí)時(shí)性的要求。

本發(fā)明提出一種實(shí)時(shí)多人對(duì)戰(zhàn)游戲中基于順序的仿真方法,能夠針對(duì)實(shí)時(shí)多人對(duì)戰(zhàn)游戲這種復(fù)雜情況做出更合理的模擬,更好的提升AI的能力,并且能滿足實(shí)時(shí)多人對(duì)戰(zhàn)游戲嚴(yán)格的實(shí)時(shí)性的要求。

本技術(shù)主要應(yīng)用在實(shí)時(shí)多人對(duì)戰(zhàn)游戲的人機(jī)對(duì)戰(zhàn)模式,提升游戲AI的能力,優(yōu)化玩家的用戶體驗(yàn)。

圖11是根據(jù)本發(fā)明實(shí)施例的一種游戲中的交互方法的流程示意圖。如圖11所示,該游戲過程中的交互方法包括以下步驟:

步驟S1101,游戲客戶端將當(dāng)前游戲的狀態(tài)數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送到游戲模擬服務(wù)器上。

步驟S1102,游戲模擬服務(wù)器通過仿真方法選擇最佳的策略或動(dòng)作并返回給游戲客戶端。

步驟S1103,客戶端執(zhí)行返回的策略或動(dòng)作。

在該實(shí)施例中,游戲客戶端實(shí)時(shí)上傳狀態(tài)數(shù)據(jù)至游戲模擬服務(wù)器,該狀態(tài)數(shù)據(jù)包括當(dāng)前的操作狀態(tài)的狀態(tài)數(shù)據(jù),或者當(dāng)前的動(dòng)作的動(dòng)作狀態(tài)數(shù)據(jù)等。游戲模擬服務(wù)器根據(jù)當(dāng)前狀態(tài)數(shù)據(jù)按照預(yù)測(cè)行為模型在行為順序庫(kù)中獲取角色組合與本局游戲中的每一方的角色組合相同的行為順序序列,按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬,得到模擬結(jié)果和更新后的行為預(yù)測(cè)模型,該模擬結(jié)果可以為輸、或者贏的模擬結(jié)果,使用更新后的行為預(yù)測(cè)模型生成行為信息,該行為信息為使用行為預(yù)測(cè)模型對(duì)一個(gè)或多個(gè)角色進(jìn)行預(yù)測(cè)得到的最佳策略或者動(dòng)作,也即,游戲客戶端執(zhí)行的策略或者動(dòng)作的概率最高。將該行為信息發(fā)送給游戲客戶端,客戶端執(zhí)行游戲模擬服務(wù)器返回的策略或者動(dòng)作。

本發(fā)明實(shí)施例提出一種實(shí)時(shí)多人對(duì)戰(zhàn)游戲中基于順序的仿真方法,能夠針對(duì)實(shí)時(shí)多人對(duì)戰(zhàn)游戲做出更合理的模擬,使得AI更接近甚至超越人類選手的水平,更好的提升AI的能力,并且能滿足實(shí)時(shí)多人對(duì)戰(zhàn)游戲嚴(yán)格的實(shí)時(shí)性的要求,提高玩家的用戶體驗(yàn)。

實(shí)施例4

根據(jù)本發(fā)明實(shí)施例,還提供了一種用于實(shí)施上述游戲中角色行為的生成方法的游戲中角色行為的生成裝置。圖12是根據(jù)本發(fā)明實(shí)施例的一種游戲中角色行為的生成裝置的示意圖。如圖12所示,該游戲中角色行為的生成方法包括:接收單元10,獲取單元20,模擬單元30,生成單元40和發(fā)送單元50。

接收單元10,用于接收游戲客戶端發(fā)送的當(dāng)前游戲的狀態(tài)數(shù)據(jù),其中,狀態(tài)數(shù)據(jù)用于指示當(dāng)前游戲中多個(gè)角色的當(dāng)前狀態(tài)。

獲取單元20,用于從當(dāng)前狀態(tài)開始,從預(yù)先獲取到的行為順序庫(kù)中獲取當(dāng)前游戲相關(guān)的行為順序序列,其中,行為順序序列中記錄了多個(gè)角色的行為執(zhí)行順序。

模擬單元30,用于按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬,得到模擬結(jié)果和更新后的行為預(yù)測(cè)模型,其中,更新后的行為預(yù)測(cè)模型是根據(jù)模擬結(jié)果進(jìn)行更新得到的。

生成單元40,用于使用更新后的行為預(yù)測(cè)模型生成行為信息,其中,行為信息用于指示多個(gè)角色中的一個(gè)或多個(gè)在當(dāng)前狀態(tài)之后的下一個(gè)行為。

發(fā)送單元50,用于將行為信息發(fā)送給游戲客戶端。

圖13是根據(jù)本發(fā)明實(shí)施例的另一種游戲中角色行為的生成裝置的示意圖。如圖13所示,該游戲中角色行為的生成裝置包括:接收單元10,獲取單元20,模擬單元30,生成單元40和發(fā)送單元50。其中,模擬單元30包括:執(zhí)行模塊31。

需要說明的是,該實(shí)施例的接收單元10,獲取單元20,模擬單元30,生成單元40和發(fā)送單元50與圖12所示實(shí)施例的游戲中角色行為的生成裝置中的作用相同,此處不再贅述。

執(zhí)行模塊31,用于重復(fù)執(zhí)行以下步驟,直到達(dá)到預(yù)定的模擬次數(shù):在本次模擬中按照行為執(zhí)行順序依次從多個(gè)角色中獲取當(dāng)前待模擬的角色,重復(fù)執(zhí)行以下步驟:使用上次模擬后更新得到的行為預(yù)測(cè)模型對(duì)當(dāng)前待模擬的角色進(jìn)行模擬;判斷對(duì)當(dāng)前待模擬的角色進(jìn)行模擬之后是否得到用于指示當(dāng)前游戲結(jié)束的當(dāng)前的模擬結(jié)果;若得到當(dāng)前的模擬結(jié)果,則結(jié)束本次模擬,并根據(jù)當(dāng)前的模擬結(jié)果對(duì)上次模擬后更新得到的行為預(yù)測(cè)模型進(jìn)行更新。

可選地,模擬結(jié)果包括每次模擬得到的當(dāng)前的模擬結(jié)果,更新后的行為預(yù)測(cè)模型是使用最后一次模擬得到的當(dāng)前的模擬結(jié)果對(duì)倒數(shù)第二次模擬后更新得到的行為預(yù)測(cè)模型進(jìn)行更新得到的。

可選地,模擬單元30用于從執(zhí)行隊(duì)列中取出位于隊(duì)首的當(dāng)前待模擬的角色,其中,多個(gè)角色按照行為執(zhí)行順序存入在執(zhí)行隊(duì)列。

可選地,執(zhí)行模塊31還用于在未得到用于指示當(dāng)前游戲結(jié)束的當(dāng)前的模擬結(jié)果的情況下,將已執(zhí)行完模擬的當(dāng)前待模擬的角色存入執(zhí)行隊(duì)列的隊(duì)尾;或者,獲取當(dāng)前待模擬的角色在當(dāng)前狀態(tài)下的最后一次行為的執(zhí)行時(shí)間T1,以及預(yù)先記錄的行為頻率所對(duì)應(yīng)的間隔時(shí)間T2,并將已執(zhí)行完模擬的當(dāng)前待模擬的角色存入執(zhí)行隊(duì)列中與(T1+T2)對(duì)應(yīng)的位置上,其中,行為頻率與最后一次行為相對(duì)應(yīng)。

圖14是根據(jù)本發(fā)明實(shí)施例的另一種游戲中角色行為的生成裝置的示意圖。如圖14所示,該游戲中角色行為的生成裝置包括:接收單元10,獲取單元20,模擬單元30,生成單元40和發(fā)送單元50。該游戲中角色行為的生成裝置還包括:統(tǒng)計(jì)單元60。

需要說明的是,該實(shí)施例的接收單元10,獲取單元20,模擬單元30,生成單元40和發(fā)送單元50與圖12所示實(shí)施例的游戲中角色行為的生成裝置中的作用相同,此處不再贅述。

統(tǒng)計(jì)單元60,用于在從預(yù)先獲取到的行為順序庫(kù)中獲取當(dāng)前游戲相關(guān)的行為順序序列之前,通過對(duì)歷史游戲日志進(jìn)行統(tǒng)計(jì)操作,得到行為順序庫(kù)中的行為順序序列,其中,歷史游戲日志中的每條游戲日志記錄是按照預(yù)定幀率記錄的,預(yù)定幀率下的每一幀中最多只有一個(gè)角色在執(zhí)行行為。

圖15是根據(jù)本發(fā)明實(shí)施例的另一種游戲中角色行為的生成裝置的示意圖。如圖15所示,該游戲中角色行為的生成裝置包括:接收單元10,獲取單元20,模擬單元30,生成單元40,發(fā)送單元50和統(tǒng)計(jì)單元60。其中,統(tǒng)計(jì)單元60包括:第一獲取模塊61,第二獲取模塊62,第三獲取模塊63和記錄模塊64。

需要說明的是,該實(shí)施例的接收單元10,獲取單元20,模擬單元30,生成單元40,發(fā)送單元50和統(tǒng)計(jì)單元60與圖14所示實(shí)施例的游戲中角色行為的生成裝置中的作用相同,此處不再贅述。

第一獲取模塊61,用于從每條游戲日志記錄中獲取每幀有行為記錄的角色,得到游戲日志完整序列,其中,游戲日志完整序列是按照時(shí)間順序?qū)γ織l游戲日志記錄中的所有幀中的有行為記錄的角色進(jìn)行排列得到的。

第二獲取模塊62,用于從游戲日志完整序列中獲取每個(gè)角色集合的子序列,其中,多個(gè)角色被劃分為至少兩個(gè)角色集合,每個(gè)角色集合的子序列是按照時(shí)間順序?qū)λ袔袑儆谠摻巧系?、有行為記錄的角色進(jìn)行排列得到的。

第三獲取模塊63,用于從每個(gè)角色集合的子序列中得到角色集合的最小全序列,其中,最小全序列包括:子序列中的連續(xù)字符串,其中,連續(xù)字符串僅包括角色集合中的每個(gè)角色的標(biāo)識(shí)。

記錄模塊64,用于在歷史游戲日志的所有游戲日志記錄的最小全序列中,對(duì)于角色組合相同的最小全序列,將出現(xiàn)次數(shù)最多的最小全序列記錄為行為順序庫(kù)中的行為順序序列。

可選地,在本發(fā)明實(shí)施例中的游戲中角色行為的生成裝置中,當(dāng)前游戲包括實(shí)時(shí)戰(zhàn)略類游戲,多個(gè)角色被劃分為至少兩個(gè)角色集合,其中,至少兩個(gè)角色集合在實(shí)時(shí)戰(zhàn)略類游戲中是對(duì)立的。

需要說明的是,該實(shí)施例中的接收單元10可以用于執(zhí)行本申請(qǐng)實(shí)施例1中的步驟S402,該實(shí)施例中的獲取單元20可以用于執(zhí)行本申請(qǐng)實(shí)施例1中的步驟S404,該實(shí)施例中的模擬單元30可以用于執(zhí)行本申請(qǐng)實(shí)施例1中的步驟S406,該實(shí)施例中的生成單元40可以用于執(zhí)行本申請(qǐng)實(shí)施例1中的步驟S408,該實(shí)施例中的發(fā)送單元50可以用于執(zhí)行本申請(qǐng)實(shí)施例1中的步驟S410。

該實(shí)施例通過接收單元10接收游戲客戶端發(fā)送的當(dāng)前游戲的狀態(tài)數(shù)據(jù),其中,狀態(tài)數(shù)據(jù)用于指示當(dāng)前游戲中多個(gè)角色的當(dāng)前狀態(tài),通過獲取單元20從當(dāng)前狀態(tài)開始,從預(yù)先獲取到的行為順序庫(kù)中獲取當(dāng)前游戲相關(guān)的行為順序序列,其中,行為順序序列中記錄了多個(gè)角色的行為執(zhí)行順序,通過模擬單元30按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬,得到模擬結(jié)果和更新后的行為預(yù)測(cè)模型,其中,更新后的行為預(yù)測(cè)模型是根據(jù)模擬結(jié)果進(jìn)行更新得到的,通過生成單元40使用更新后的行為預(yù)測(cè)模型生成行為信息,其中,行為信息用于指示多個(gè)角色中的一個(gè)或多個(gè)在當(dāng)前狀態(tài)之后的下一個(gè)行為,通過發(fā)送單元50將行為信息發(fā)送給游戲客戶端,可以解決游戲中角色行為生成的準(zhǔn)確度較低的技術(shù)問題,達(dá)到了提高游戲中角色行為生成的準(zhǔn)確度和生成的效率的技術(shù)效果。

此處需要說明的是,上述單元和模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場(chǎng)景相同,但不限于上述實(shí)施例所公開的內(nèi)容。需要說明的是,上述單元和模塊作為裝置的一部分可以運(yùn)行在如圖3所示的硬件環(huán)境中,可以通過軟件實(shí)現(xiàn),也可以通過硬件實(shí)現(xiàn)。其中,硬件環(huán)境包括網(wǎng)絡(luò)環(huán)境。

實(shí)施例5

根據(jù)本發(fā)明實(shí)施例,還提供了一種用于實(shí)施上述游戲中角色行為的生成方法的服務(wù)器或終端。

圖16是根據(jù)本發(fā)明實(shí)施例的一種終端的結(jié)構(gòu)框圖。如圖16所示,該終端可以包括:一個(gè)或多個(gè)(圖中僅示出一個(gè))處理器161、存儲(chǔ)器163、以及傳輸裝置165(如上述實(shí)施例中的發(fā)送裝置)。如圖16所示,該終端還可以包括輸入輸出設(shè)備167。

其中,存儲(chǔ)器163可用于存儲(chǔ)軟件程序以及模塊,如本發(fā)明實(shí)施例中的游戲中角色行為的生成方法和裝置對(duì)應(yīng)的程序指令/模塊,處理器161通過運(yùn)行存儲(chǔ)在存儲(chǔ)器163內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述的游戲中角色行為的生成方法。存儲(chǔ)器163可包括高速隨機(jī)存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,如一個(gè)或者多個(gè)磁性存儲(chǔ)裝置、閃存、或者其他非易失性固態(tài)存儲(chǔ)器。在一些實(shí)例中,存儲(chǔ)器163可進(jìn)一步包括相對(duì)于處理器161遠(yuǎn)程設(shè)置的存儲(chǔ)器,這些遠(yuǎn)程存儲(chǔ)器可以通過網(wǎng)絡(luò)連接至終端。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動(dòng)通信網(wǎng)及其組合。

上述的傳輸裝置165用于經(jīng)由一個(gè)網(wǎng)絡(luò)接收或者發(fā)送數(shù)據(jù),還可以用于處理器與存儲(chǔ)器之間的數(shù)據(jù)傳輸。上述的網(wǎng)絡(luò)具體實(shí)例可包括有線網(wǎng)絡(luò)及無線網(wǎng)絡(luò)。在一個(gè)實(shí)例中,傳輸裝置165包括一個(gè)網(wǎng)絡(luò)適配器(Network Interface Controller,NIC),其可通過網(wǎng)線與其他網(wǎng)絡(luò)設(shè)備與路由器相連從而可與互聯(lián)網(wǎng)或局域網(wǎng)進(jìn)行通訊。在一個(gè)實(shí)例中,傳輸裝置165為射頻(Radio Frequency,RF)模塊,其用于通過無線方式與互聯(lián)網(wǎng)進(jìn)行通訊。

其中,具體地,存儲(chǔ)器163用于存儲(chǔ)應(yīng)用程序。

處理器161可以通過傳輸裝置165調(diào)用存儲(chǔ)器163存儲(chǔ)的應(yīng)用程序,以執(zhí)行下述步驟:

接收游戲客戶端發(fā)送的當(dāng)前游戲的狀態(tài)數(shù)據(jù),其中,狀態(tài)數(shù)據(jù)用于指示當(dāng)前游戲中多個(gè)角色的當(dāng)前狀態(tài);

從當(dāng)前狀態(tài)開始,從預(yù)先獲取到的行為順序庫(kù)中獲取當(dāng)前游戲相關(guān)的行為順序序列,其中,行為順序序列中記錄了多個(gè)角色的行為執(zhí)行順序;

按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬,得到模擬結(jié)果和更新后的行為預(yù)測(cè)模型,其中,更新后的行為預(yù)測(cè)模型是根據(jù)模擬結(jié)果進(jìn)行更新得到的;

使用更新后的行為預(yù)測(cè)模型生成行為信息,其中,行為信息用于指示多個(gè)角色中的一個(gè)或多個(gè)在當(dāng)前狀態(tài)之后的下一個(gè)行為;將行為信息發(fā)送給游戲客戶端。

處理器161還用于執(zhí)行下述步驟:按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬,得到模擬結(jié)果和更新后的行為預(yù)測(cè)模型包括:重復(fù)執(zhí)行以下步驟,直到達(dá)到預(yù)定的模擬次數(shù):在本次模擬中按照行為執(zhí)行順序依次從多個(gè)角色中獲取當(dāng)前待模擬的角色,重復(fù)執(zhí)行以下步驟:使用上次模擬后更新得到的行為預(yù)測(cè)模型對(duì)當(dāng)前待模擬的角色進(jìn)行模擬;判斷對(duì)當(dāng)前待模擬的角色進(jìn)行模擬之后是否得到用于指示當(dāng)前游戲結(jié)束的當(dāng)前的模擬結(jié)果;若得到當(dāng)前的模擬結(jié)果,則結(jié)束本次模擬,并根據(jù)當(dāng)前的模擬結(jié)果對(duì)上次模擬后更新得到的行為預(yù)測(cè)模型進(jìn)行更新;其中,模擬結(jié)果包括每次模擬得到的當(dāng)前的模擬結(jié)果,更新后的行為預(yù)測(cè)模型是使用最后一次模擬得到的當(dāng)前的模擬結(jié)果對(duì)倒數(shù)第二次模擬后更新得到的行為預(yù)測(cè)模型進(jìn)行更新得到的。

處理器161還用于執(zhí)行下述步驟:從執(zhí)行隊(duì)列中取出位于隊(duì)首的當(dāng)前待模擬的角色,其中,多個(gè)角色按照行為執(zhí)行順序存入執(zhí)行隊(duì)列。

處理器161還用于執(zhí)行下述步驟:在未得到用于指示當(dāng)前游戲結(jié)束的當(dāng)前的模擬結(jié)果的情況下,將已執(zhí)行完模擬的當(dāng)前待模擬的角色存入執(zhí)行隊(duì)列的隊(duì)尾;或者,獲取當(dāng)前待模擬的角色在當(dāng)前狀態(tài)下的最后一次行為的執(zhí)行時(shí)間T1,以及預(yù)先記錄的行為頻率所對(duì)應(yīng)的間隔時(shí)間T2,并將已執(zhí)行完模擬的當(dāng)前待模擬的角色存入執(zhí)行隊(duì)列中與(T1+T2)對(duì)應(yīng)的位置上,其中,行為頻率與最后一次行為相對(duì)應(yīng)。

處理器161還用于執(zhí)行下述步驟:在從預(yù)先獲取到的行為順序庫(kù)中獲取當(dāng)前游戲相關(guān)的行為順序序列之前,通過對(duì)歷史游戲日志進(jìn)行統(tǒng)計(jì)操作,得到行為順序庫(kù)中的行為順序序列,其中,歷史游戲日志中的每條游戲日志記錄是按照預(yù)定幀率記錄的,預(yù)定幀率下的每一幀中最多只有一個(gè)角色在執(zhí)行行為。

處理器161還用于執(zhí)行下述步驟:從每條游戲日志記錄中獲取每幀有行為記錄的角色,得到游戲日志完整序列,其中,游戲日志完整序列是按照時(shí)間順序?qū)γ織l游戲日志記錄中的所有幀中的有行為記錄的角色進(jìn)行排列得到的;從游戲日志完整序列中獲取每個(gè)角色集合的子序列,其中,多個(gè)角色被劃分為至少兩個(gè)角色集合,每個(gè)角色集合的子序列是按照時(shí)間順序?qū)λ袔袑儆谠摻巧系?、有行為記錄的角色進(jìn)行排列得到的;從每個(gè)角色集合的子序列中得到角色集合的最小全序列,其中,最小全序列包括:子序列中的連續(xù)字符串,其中,連續(xù)字符串僅包括角色集合中的每個(gè)角色的標(biāo)識(shí);在歷史游戲日志的所有游戲日志記錄的最小全序列中,對(duì)于角色組合相同的最小全序列,將出現(xiàn)次數(shù)最多的最小全序列記錄為行為順序庫(kù)中的行為順序序列。

采用本發(fā)明實(shí)施例,提供了一種游戲中角色行為的生成方法的方案。接收游戲客戶端發(fā)送的當(dāng)前游戲的狀態(tài)數(shù)據(jù),狀態(tài)數(shù)據(jù)用于指示當(dāng)前游戲中多個(gè)角色的當(dāng)前狀態(tài);從當(dāng)前狀態(tài)開始,從預(yù)先獲取到的行為順序庫(kù)中獲取當(dāng)前游戲相關(guān)的行為順序序列,行為順序序列中記錄了多個(gè)角色的行為執(zhí)行順序;按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬,得到模擬結(jié)果和更新后的行為預(yù)測(cè)模型,更新后的行為預(yù)測(cè)模型是根據(jù)模擬結(jié)果進(jìn)行更新得到的;使用更新后的行為預(yù)測(cè)模型生成行為信息,行為信息用于指示多個(gè)角色中的一個(gè)或多個(gè)在當(dāng)前狀態(tài)之后的下一個(gè)行為;將行為信息發(fā)送給游戲客戶端,達(dá)到了對(duì)游戲中的角色行為進(jìn)行生成的目的,從而實(shí)現(xiàn)了提高游戲中角色行為生成的準(zhǔn)確度和生成的效率的技術(shù)效果,進(jìn)而解決了游戲中角色行為生成的準(zhǔn)確度較低的技術(shù)問題。

可選地,本實(shí)施例中的具體示例可以參考上述實(shí)施例中所描述的示例,本實(shí)施例在此不再贅述。

本領(lǐng)域普通技術(shù)人員可以理解,圖16所示的結(jié)構(gòu)僅為示意,終端可以是智能手機(jī)(如Android手機(jī)、iOS手機(jī)等)、平板電腦、掌上電腦以及移動(dòng)互聯(lián)網(wǎng)設(shè)備(Mobile Internet Devices,MID)、PAD等終端設(shè)備。圖16并不對(duì)上述電子裝置的結(jié)構(gòu)造成限定。例如,終端還可包括比圖16中所示更多或者更少的組件(如網(wǎng)絡(luò)接口、顯示裝置等),或者具有與圖16所示不同的配置。

本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令終端設(shè)備相關(guān)的硬件來完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:閃存盤、只讀存儲(chǔ)器(Read-Only Memory,ROM)、隨機(jī)存取器(Random Access Memory,RAM)、磁盤或光盤等。

實(shí)施例6

本發(fā)明的實(shí)施例還提供了一種存儲(chǔ)介質(zhì)??蛇x地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以用于執(zhí)行游戲中角色行為的生成方法的程序代碼。

可選地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以位于上述實(shí)施例所示的網(wǎng)絡(luò)中的多個(gè)網(wǎng)絡(luò)設(shè)備中的至少一個(gè)網(wǎng)絡(luò)設(shè)備上。

可選地,在本實(shí)施例中,存儲(chǔ)介質(zhì)被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:

接收游戲客戶端發(fā)送的當(dāng)前游戲的狀態(tài)數(shù)據(jù),其中,狀態(tài)數(shù)據(jù)用于指示當(dāng)前游戲中多個(gè)角色的當(dāng)前狀態(tài);

從當(dāng)前狀態(tài)開始,從預(yù)先獲取到的行為順序庫(kù)中獲取當(dāng)前游戲相關(guān)的行為順序序列,其中,行為順序序列中記錄了多個(gè)角色的行為執(zhí)行順序;

按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬,得到模擬結(jié)果和更新后的行為預(yù)測(cè)模型,其中,更新后的行為預(yù)測(cè)模型是根據(jù)模擬結(jié)果進(jìn)行更新得到的;

使用更新后的行為預(yù)測(cè)模型生成行為信息,其中,行為信息用于指示多個(gè)角色中的一個(gè)或多個(gè)在當(dāng)前狀態(tài)之后的下一個(gè)行為;將行為信息發(fā)送給游戲客戶端。

可選地,存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:按照行為執(zhí)行順序依次使用行為預(yù)測(cè)模型對(duì)多個(gè)角色進(jìn)行仿真模擬,得到模擬結(jié)果和更新后的行為預(yù)測(cè)模型包括:重復(fù)執(zhí)行以下步驟,直到達(dá)到預(yù)定的模擬次數(shù):在本次模擬中按照行為執(zhí)行順序依次從多個(gè)角色中獲取當(dāng)前待模擬的角色,重復(fù)執(zhí)行以下步驟:使用上次模擬后更新得到的行為預(yù)測(cè)模型對(duì)當(dāng)前待模擬的角色進(jìn)行模擬;判斷對(duì)當(dāng)前待模擬的角色進(jìn)行模擬之后是否得到用于指示當(dāng)前游戲結(jié)束的當(dāng)前的模擬結(jié)果;若得到當(dāng)前的模擬結(jié)果,則結(jié)束本次模擬,并根據(jù)當(dāng)前的模擬結(jié)果對(duì)上次模擬后更新得到的行為預(yù)測(cè)模型進(jìn)行更新;其中,模擬結(jié)果包括每次模擬得到的當(dāng)前的模擬結(jié)果,更新后的行為預(yù)測(cè)模型是使用最后一次模擬得到的當(dāng)前的模擬結(jié)果對(duì)倒數(shù)第二次模擬后更新得到的行為預(yù)測(cè)模型進(jìn)行更新得到的。

存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:從執(zhí)行隊(duì)列中取出位于隊(duì)首的當(dāng)前待模擬的角色,其中,多個(gè)角色按照行為執(zhí)行順序存入執(zhí)行隊(duì)列。

存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:在未得到用于指示當(dāng)前游戲結(jié)束的當(dāng)前的模擬結(jié)果的情況下,將已執(zhí)行完模擬的當(dāng)前待模擬的角色存入執(zhí)行隊(duì)列的隊(duì)尾;或者,獲取當(dāng)前待模擬的角色在當(dāng)前狀態(tài)下的最后一次行為的執(zhí)行時(shí)間T1,以及預(yù)先記錄的行為頻率所對(duì)應(yīng)的間隔時(shí)間T2,并將已執(zhí)行完模擬的當(dāng)前待模擬的角色存入執(zhí)行隊(duì)列中與(T1+T2)對(duì)應(yīng)的位置上,其中,行為頻率與最后一次行為相對(duì)應(yīng)。

存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:在從預(yù)先獲取到的行為順序庫(kù)中獲取當(dāng)前游戲相關(guān)的行為順序序列之前,通過對(duì)歷史游戲日志進(jìn)行統(tǒng)計(jì)操作,得到行為順序庫(kù)中的行為順序序列,其中,歷史游戲日志中的每條游戲日志記錄是按照預(yù)定幀率記錄的,預(yù)定幀率下的每一幀中最多只有一個(gè)角色在執(zhí)行行為。

存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:從每條游戲日志記錄中獲取每幀有行為記錄的角色,得到游戲日志完整序列,其中,游戲日志完整序列是按照時(shí)間順序?qū)γ織l游戲日志記錄中的所有幀中的有行為記錄的角色進(jìn)行排列得到的;從游戲日志完整序列中獲取每個(gè)角色集合的子序列,其中,多個(gè)角色被劃分為至少兩個(gè)角色集合,每個(gè)角色集合的子序列是按照時(shí)間順序?qū)λ袔袑儆谠摻巧系摹⒂行袨橛涗浀慕巧M(jìn)行排列得到的;從每個(gè)角色集合的子序列中得到角色集合的最小全序列,其中,最小全序列包括:子序列中的連續(xù)字符串,其中,連續(xù)字符串僅包括角色集合中的每個(gè)角色的標(biāo)識(shí);在歷史游戲日志的所有游戲日志記錄的最小全序列中,對(duì)于角色組合相同的最小全序列,將出現(xiàn)次數(shù)最多的最小全序列記錄為行為順序庫(kù)中的行為順序序列。

可選地,本實(shí)施例中的具體示例可以參考上述實(shí)施例中所描述的示例,本實(shí)施例在此不再贅述。

可選地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以包括但不限于:U盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。

上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。

上述實(shí)施例中的集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在上述計(jì)算機(jī)可讀取的存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)或多臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。

在本發(fā)明的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。

在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的客戶端,可通過其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。

所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。

另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。

以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1