当人工智能遇到游戏
在人工智能技術(shù)高度普及的今天,各個(gè)領(lǐng)域的應(yīng)用中都要加入些人工智能技術(shù)好像才能更符合當(dāng)下的業(yè)務(wù)產(chǎn)品需求。那么,人工智能技術(shù)是否有影響到游戲領(lǐng)域呢?當(dāng)人工智能技術(shù)和游戲技術(shù)結(jié)合的時(shí)候,會(huì)迸發(fā)出什么樣的火花呢?
馬里奧里的壞蘑菇:游戲人工智能初探
我們可以先來(lái)看一個(gè)游戲角色,這個(gè)游戲角色就是風(fēng)靡全球的馬里奧大叔。
第一代的馬里奧游戲是一個(gè)典型的平臺(tái)類游戲。在整個(gè)游戲場(chǎng)景中,馬里奧需要通過(guò)在各種平臺(tái)上移動(dòng)、跳躍、躲避敵人(當(dāng)然,也可以主動(dòng)攻擊)的方式,一直跑到最后,拉起小旗子來(lái)完成這個(gè)關(guān)卡。在整個(gè)過(guò)程中,玩家能控制的就是馬里奧這個(gè)角色,其他敵人,包括場(chǎng)景的機(jī)關(guān),都是由系統(tǒng)來(lái)控制的。整個(gè)游戲最開(kāi)始的一個(gè)場(chǎng)景是,馬里奧會(huì)遇到第一個(gè)敵人,一個(gè)長(zhǎng)著蘑菇樣子的怪物。
?
這個(gè)敵人會(huì)不停地移動(dòng),直直地沖向玩家,為什么說(shuō)是直直的呢?因?yàn)檫@個(gè)壞蘑菇真的是除了往前走,什么都不會(huì)做,它碰到物體就會(huì)折返,遇到臺(tái)階就會(huì)掉下去,在玩家看來(lái),它就是一個(gè)完全不會(huì)思考的傻瓜,它甚至不關(guān)心玩家在哪里,唯一的目標(biāo)就是傻傻地不停往前走。如果我說(shuō)這就是游戲的人工智能,你是不是會(huì)大跌眼鏡?但不管怎么樣,這的確就是游戲人工智能的雛形!
也許你覺(jué)得這好像和普遍認(rèn)為的人工智能天差地別,感覺(jué)就不是一個(gè)時(shí)代或者不是一個(gè)概念上的東西。是的,當(dāng)人工智能遇到游戲的時(shí)候,確實(shí)會(huì)有完全不同的表現(xiàn),這種表現(xiàn)是和游戲本身的特點(diǎn)分不開(kāi)的。當(dāng)然,隨著游戲的復(fù)雜度越來(lái)越高,后期也會(huì)用到更復(fù)雜的人工智能技術(shù)。
在馬里奧這個(gè)游戲的后期,你還會(huì)看到各種形形色色的敵人,每一種敵人都會(huì)有不同的行為表現(xiàn),比如有一種更聰明的扔錘子的敵人,它就不會(huì)直直地沖向玩家,而是會(huì)根據(jù)玩家的位置,去選擇這個(gè)錘子扔出去的距離是多少,并且它還會(huì)不停地在平臺(tái)上跳躍,來(lái)進(jìn)一步增加玩家躲避的難度。在我們玩整個(gè)游戲的過(guò)程中,面對(duì)的挑戰(zhàn)會(huì)越來(lái)越大,遇到的敵人也會(huì)變得越來(lái)越聰明,而在這樣的過(guò)程中,當(dāng)玩家的滿足感越來(lái)越強(qiáng)時(shí),就會(huì)有一種期待“后面我還會(huì)遇到什么樣的敵人和挑戰(zhàn)呢”。所有這些背后的控制都是游戲中的人工智能系統(tǒng)在運(yùn)作。
人工智能在游戲中的特點(diǎn)
有一句話說(shuō)“在一千個(gè)人眼中,有一千個(gè)哈姆雷特”。對(duì)于游戲來(lái)說(shuō),一千個(gè)游戲,就會(huì)有一千個(gè)不同的需求。雖然現(xiàn)在我們會(huì)把游戲分成一些大類,比如動(dòng)作類、角色扮演類、策略類等,但是即使在每一個(gè)大類中,每一個(gè)游戲的表現(xiàn)依然不同,甚至在如今的一些游戲大作中,會(huì)融合不同的游戲類型,表現(xiàn)出一些“跨界”的特質(zhì),游戲的這種特點(diǎn),使得游戲技術(shù)也需要適應(yīng)這種多變的設(shè)計(jì)需求,游戲人工智能也是如此。所以游戲人工智能一個(gè)很大的特點(diǎn),就是要滿足量身定做的需求。如果一個(gè)做體育類游戲人工智能的開(kāi)發(fā)者,轉(zhuǎn)去做一個(gè)動(dòng)作類游戲的人工智能,那他所要面對(duì)和解決的問(wèn)題,可能會(huì)是完全不同的。此外,量身定做的同時(shí),游戲人工智能還會(huì)牽扯游戲引擎很多模塊的協(xié)作,比如動(dòng)畫(huà)、物理、網(wǎng)絡(luò)同步等。
游戲人工智能的另一個(gè)特點(diǎn),就是趣味性比真實(shí)性要重要得多。游戲人工智能來(lái)說(shuō),最大的目標(biāo)就是“好玩”,即使一個(gè)游戲有再真實(shí)的表現(xiàn),如果不好玩,那就是不能成功的。
曾經(jīng)有一個(gè)獲獎(jiǎng)的游戲叫Fa?ade。它是一個(gè)由人工智能驅(qū)動(dòng)的交互式小說(shuō)類型的游戲,在游戲過(guò)程中,會(huì)給玩家一些對(duì)話,或者劇情的選擇,這些選擇會(huì)影響故事的最終結(jié)局,但不管這些選擇是如何的復(fù)雜,游戲的劇情都是在游戲設(shè)計(jì)者的控制范圍內(nèi)。Fa?ade這個(gè)游戲的特別之處就在于,它可以允許玩家通過(guò)輸入對(duì)話文字的方式與游戲內(nèi)的角色互動(dòng),換句話說(shuō),你可以和游戲中的人物聊天!這在游戲歷史上絕對(duì)是一個(gè)創(chuàng)舉,整個(gè)游戲就通過(guò)這種別開(kāi)生面的方式來(lái)推動(dòng)劇情的發(fā)展。在這個(gè)游戲的背后,當(dāng)然就包含著一系列人工智能技術(shù),比如自然語(yǔ)言處理等。這個(gè)游戲也被列為“1001個(gè)在你離世前一定要玩的游戲”之一。雖然這種探索對(duì)于游戲業(yè)界來(lái)說(shuō),還是非常小眾的,但我們依然可以看到,游戲中的人工智能,并不是為了追求極致的真實(shí)而存在的,而是應(yīng)該和整個(gè)游戲設(shè)計(jì)融為一體,為游戲的趣味性而服務(wù)。即使是像Fa?ade這樣的游戲,人工智能還是和整體游戲設(shè)計(jì)息息相關(guān),雖然你在玩的過(guò)程中感覺(jué)可以和游戲中的人隨心所欲地“聊天”,但是游戲的導(dǎo)向、劇情的發(fā)展依然在游戲設(shè)計(jì)者的手中。
“量身定做”和“趣味至上”是人工智能技術(shù)在游戲中的重要特點(diǎn),理解這兩個(gè)特點(diǎn),對(duì)于我們正確選擇和使用合適的游戲人工智能技術(shù)會(huì)非常有幫助。
人工智能在游戲中的應(yīng)用
那么人工智能會(huì)用在游戲的哪些地方呢?或者說(shuō)它如何和游戲產(chǎn)生化學(xué)反應(yīng)呢?
游戲中的物體一般分為兩種。一種是靜態(tài)物體,就是那些不會(huì)運(yùn)動(dòng)的物體,比如一棟建筑、一顆樹(shù)等;還有一種可以稱之為動(dòng)態(tài)物體,比如一個(gè)人、一個(gè)怪物、一種移動(dòng)的機(jī)關(guān)等。這些靜態(tài)和動(dòng)態(tài)的物體就構(gòu)成了整個(gè)游戲世界。
在動(dòng)態(tài)物體中,我們又可以分為兩種,一種是由玩家控制的物體,可以是一個(gè)人、一架飛機(jī)、一個(gè)滾動(dòng)的球或者是任何其他的“東西”;另一種就是由游戲系統(tǒng)控制的物體,比如飛向你的導(dǎo)彈、村莊里的路人、朝你吼叫的怪物等。在所有這些由游戲系統(tǒng)控制的物體背后,都需要一些邏輯運(yùn)算來(lái)支撐。從廣義的角度上來(lái)說(shuō),我們可以把這些都稱為由“人工智能系統(tǒng)”控制。雖然有一些物體,它并沒(méi)有所謂的思考過(guò)程,只是一些物理行為上的模擬,像前面提到的那些飛向你的導(dǎo)彈,它僅僅是由簡(jiǎn)單的物理公式所驅(qū)動(dòng)的。而從更為狹義的角度上來(lái)說(shuō),我們可以把那些既有思考過(guò)程(不管這個(gè)思考過(guò)程有多簡(jiǎn)單),又有行為表現(xiàn)的物體,稱為智能體。
以一個(gè)小村莊里的村民為例來(lái)分析一下,游戲人工智能到底是如何在游戲中發(fā)揮作用的。首先,我們可以先為這個(gè)村民定義兩個(gè)行為。二手游戲出售平臺(tái)第一個(gè)行為是在村中漫步,也就是無(wú)目的地到處走來(lái)走去。很多角色扮演類游戲中,會(huì)看到很多類似這樣的角色。為了讓我們?cè)O(shè)計(jì)的這個(gè)村民看上去更為真實(shí),可以再為他加一個(gè)帶有人情味一點(diǎn)的行為,那第二個(gè)行為就是當(dāng)這個(gè)村民路過(guò)玩家的時(shí)候,會(huì)轉(zhuǎn)過(guò)頭面帶微笑的對(duì)玩家說(shuō)“你好”,有了這樣的設(shè)計(jì),一個(gè)熱情好客、民風(fēng)淳樸的村莊就躍然紙上了。
對(duì)于這個(gè)村民的第一個(gè)“漫步”的行為,看似很簡(jiǎn)單,不就是到處走來(lái)走去嘛,但其實(shí)在實(shí)現(xiàn)的過(guò)程中就會(huì)發(fā)現(xiàn),我們必須要解決兩個(gè)問(wèn)題。一是,他應(yīng)該往哪里走,是選擇在河邊漫步,還是選擇去鄰居家串門(mén)?二是,如果他決定往河邊走,那他應(yīng)該選擇哪一條路走過(guò)去?是穿過(guò)人煙稀少的林間小道,還是走過(guò)熱鬧非凡的市井街區(qū)?所以當(dāng)這個(gè)村民踏出第一步之前,他就需要先“思考”這兩個(gè)問(wèn)題的答案,這個(gè)時(shí)候,游戲人工智能系統(tǒng)就開(kāi)始工作了。
第一個(gè)問(wèn)題在游戲人工智能中屬于“決策”層面的問(wèn)題。決策,換句話說(shuō),就是決定要做什么,要定一個(gè)目標(biāo),對(duì)于這個(gè)村民來(lái)說(shuō),就是要選擇一個(gè)移動(dòng)的目標(biāo)點(diǎn),這個(gè)選擇方法有很多,最簡(jiǎn)單的比如隨機(jī),就是我也不知道要去哪兒,丟個(gè)硬幣看看,正面就走這邊,反面就走另一邊,復(fù)雜一點(diǎn)比如決策樹(shù),這個(gè)村民會(huì)看天氣,看心情,看時(shí)間,根據(jù)這些因素來(lái)做決定,如果時(shí)候還早并且天氣不錯(cuò),那他也許就會(huì)選擇去河邊,但如果這時(shí)候心情不是很好,那他可能去朋友家串個(gè)門(mén)等,這些工作都可以由游戲人工智能系統(tǒng)來(lái)處理。
當(dāng)他選定了一個(gè)目標(biāo)點(diǎn)之后,接下來(lái)就要選擇怎么去哪個(gè)地方,這就是屬于“行為”層面的問(wèn)題,行為,就是表示怎么做,應(yīng)該要選擇什么樣的方式去完成前面的目標(biāo)。就移動(dòng)來(lái)說(shuō),要完成這個(gè)移動(dòng),一方面要選擇一條合理的路徑,這條路徑不能撞墻,不能繞圈或者走進(jìn)死胡同,這在游戲人工智能中被稱之為“尋路”的過(guò)程,游戲人工智能系統(tǒng)需要根據(jù)起始點(diǎn)和目標(biāo)點(diǎn),再結(jié)合各種尋路的算法來(lái)計(jì)算出這條路徑來(lái)。另一方面還要選擇一種運(yùn)動(dòng)的方式去走完這條路徑,可以是慢慢悠悠散步,也可以是急匆匆的趕路,這完全取決于游戲的設(shè)定和人工智能系統(tǒng)的控制。所以,這樣一個(gè)看似簡(jiǎn)簡(jiǎn)單單的漫步行為,人工智能技術(shù)都在其中發(fā)揮著作用。從思考到運(yùn)動(dòng),從決策到行為的方方面面都有人工智能參與。
說(shuō)到村民的第二個(gè)行為,我們就需要提到游戲人工智能系統(tǒng)的另一個(gè)重要的模塊,那就是對(duì)于這個(gè)世界的感知和信息的收集處理。前面我們提到靜態(tài)和動(dòng)態(tài)的物體組成了游戲的世界,但另一方面,這些物體也“生活”在這個(gè)游戲世界中,作為一個(gè)人工智能體,它也需要和人一樣,對(duì)這個(gè)世界有感知。人是通過(guò)五官去感知這個(gè)世界的,眼睛可以看,耳朵可以聽(tīng),雖然游戲中的智能體,沒(méi)有眼睛,沒(méi)有耳朵,但是我們可以模擬這樣的感知,比如視覺(jué),這個(gè)村民應(yīng)該怎么“看到”玩家?如果智能體沒(méi)有視覺(jué)的模擬,可能會(huì)出現(xiàn)一種奇怪的情況,當(dāng)玩家悄悄的出現(xiàn)在這個(gè)村民身后的時(shí)候,這個(gè)村民仿佛有超能力一樣,會(huì)轉(zhuǎn)過(guò)頭,微笑著對(duì)你說(shuō)“你好”,如果玩家看到這種情況,他就會(huì)有一種出戲的感覺(jué)——他都沒(méi)“看”到我,怎么能知道我在他身后呢?所以,如果我們能模擬人的感知,那這樣的情況就會(huì)好很多,比如為智能體定義一個(gè)類似于人的視野范圍,當(dāng)玩家出現(xiàn)在他的視野范圍內(nèi)時(shí),他才會(huì)“看到”玩家,并作出反應(yīng),這就自然很多。
有一個(gè)應(yīng)用非常廣泛的人工智能體的軟件模型,英語(yǔ)叫Belief–Desire–Intention模型(BDI模型),用中文翻譯過(guò)來(lái)的話,可以稱為“信念-欲望-意圖軟件模型”,這種模型是對(duì)于人類的智慧進(jìn)行了一種簡(jiǎn)化,意圖從一種模塊化的,易于實(shí)現(xiàn)的角度去模擬人的思考和決策過(guò)程。其實(shí)游戲人工智能系統(tǒng)就是對(duì)于BDI模型的一種實(shí)現(xiàn),與BDI每一層所對(duì)應(yīng)的,也就是上面提到的信息、決策和行為。對(duì)于游戲而言,每一層都有對(duì)應(yīng)的人工智能技術(shù),也正是這三個(gè)關(guān)鍵詞組成了游戲人工智能系統(tǒng)。
從最初的馬里奧大叔發(fā)展至今,游戲人工智能隨著硬件和需求的不斷升級(jí),不管從表現(xiàn)層面還是從技術(shù)層面,變得越來(lái)越豐富多彩。總體上來(lái)說(shuō),當(dāng)人工智能遇到游戲,需要根據(jù)不同的游戲類型,量身定做不同的方案,并以“好玩”為目標(biāo),采用不同層次的人工智能技術(shù),和游戲本身的設(shè)計(jì)特點(diǎn)相結(jié)合。希望通過(guò)本篇文章使大家對(duì)人工智能在游戲中的應(yīng)用有一個(gè)大概的了解。
?
總結(jié)
- 上一篇: 《炉石传说》架构设计赏析(1):游戏启动
- 下一篇: 教你利用工具将单机游戏改造成对战网游