遊戲AI是人工智能?其實還差的很遠
現在玩《俠盜獵車手》或者《看門狗》的玩家已經不會驚訝於界面上行人自然的動作和與玩家之間如同人類交流的交互方式了。戰略遊戲裡的虛擬主公們也會對玩家的精妙操作做出及時的反應。甚至多人對戰遊戲的電腦教練也能有板有眼地訓練菜鳥玩家,讓他們快速達到登堂入室的水平,和其他玩家對戰。這一切的背後,都有遊戲人工智能的身影。少了AI的電腦遊戲,現在的玩家已經很難想象了。
可遊戲AI的歷史卻並不久遠,即使是95後的玩家恐怕也還記得早年間電子遊戲那慘不忍睹的NPC反饋,有時候它們愚蠢的行爲甚至會讓玩家一秒鐘齣戲,失去了遊戲本身最擅長營造的沉浸感。舉個例子,95年出品的遊戲《三國志英傑傳》,被認爲是後來神作《曹操傳》的試水之作。可是玩家在各個城市裡探訪民情時,居民說話時甚至不會轉過來看着你。國產和臺產遊戲的智能水平就更讓人歎爲觀止了,1993年出品的老版《笑傲江湖》裡,林平之自己走散了逼得玩家自殺重來的場景仍然歷歷在目。這種遊戲讓習慣了高AI的00後玩家來玩,分分鐘崩潰在電腦面前。僅僅20年的功夫,遊戲AI就已經有了如此突飛猛進的發展,不得不說是骨灰玩家們的一大福音。很多人都覺得,這和從去年開始就被炒得火熱的高科技概念人工智能的進步有關係。然而事實卻並非如此。
有不少計算機科學家和程序員其實是很反感“遊戲人工智能”這個說法的。因爲在他們的眼裡,遊戲AI作爲人工智能的低級應用,表現都不夠好。遊戲人物體現出來的智能其實跟他們研究的人工智能沒有半毛錢關係。這些人的說法自然有他們的道理。遊戲製作者都會承認,遊戲表現出來的智能其實是程序員和設計師的安排,和它們自身的分析水平沒有關係。怎麼說呢,我們還是先稍微補一些基礎知識。
你們就當是這個妹子在上課吧
目前遊戲AI設計最常用的方法有兩種:規劃器法和行爲樹法,聽上去很專業,其實並不難懂。
所謂的規劃器法,是給NPC設置一系列不同的狀態,在不同的情況下激活不同的狀態,讓它看上去似乎對局勢有自己的判斷。舉個例子,從很早期的《使命召喚》和《榮譽勳章》開始,受到對面火力壓制的AI戰友就會壓低身子前進。這不是因爲它真的“知道”對面有子彈飛過來並設法躲避,而是預裝的規劃器告訴它當有子彈過來時模型就要做出壓低身子的行爲。這兩者似乎也沒什麼區別?區別大了,在一些玩家mod裡,如果忘記給AI士兵編輯行爲規劃器,就算天上掉原子彈他也不會有反應。這種偶爾出現的不真實場景會讓在一旁觀看的玩家覺得出戲,相信你也有過這樣的體驗。
而行爲樹法就更加沒什麼科技含量了,就是暴力枚舉所有可能的行爲,然後讓AI沿着規定好的路徑運動。早期的下棋軟件就是這種枚舉法的產物,電腦棋手其實完全不知道棋盤上落子的意義,只是跟着設計師設計好的動作應對對手的棋路。可是這種方法的一個缺點是當所有行爲的數量極爲龐大時,連電腦都記不住,就沒法玩了。電腦想在圍棋上戰勝人類,難就難在這了。而在電子遊戲上的行爲樹法體現最明顯的是我們和NPC的對話場景。我們選一句問題,NPC就回答一句,一直到沒話說爲止。所有的對話看似是你的選擇,實際上都是劇情設計師規定好的。
紳士們愛不釋手的《巧克力與香子蘭》,它的另一個名字是?
這兩種方法的結合,基本上就是所謂遊戲AI的算法。會編程的人應該能瞭解它的奧秘,這和神經算法、遺傳算法之類真正的人工智能算法確實搭不上邊。也難怪計算機科學家會對遊戲AI的水平不以爲然。不過這並不是事情的關鍵,讓玩家感覺到跟真的一樣,纔是最重要的。
在遊戲界首創,用很低的技術難度讓玩家體會到真實感的遊戲是具有劃時代意義的《德軍總部3D》。這款1992年發行的遊戲被認爲是第一人稱射擊遊戲FPS的真正鼻祖,它的貢獻不僅僅是爲後來的射擊類遊戲劃出一個基本的模板。在遊戲裡,主角B.J會被附近的德軍發現並追擊,敏銳的狼狗也會循味而來攻擊玩家。NPC對玩家行爲的即時反饋即使在前作《德軍總部》和《超越德軍總部》裡也是玩家體會不到的。製作人員甚至做了NPC人物的正反面(BOSS沒有背面),當士兵背朝主角時就不會發現玩家的行蹤。這種響應判定在以前的遊戲裡也是從來沒有出現過的。但這個機制的實現,不過是編程人員在士兵的判定區域裡挖掉了一塊不作判定而已。和很多人們看來只是捅破一層窗戶紙而已的發明一樣,這個機制的開創性重在創意而不是技術本身。
射擊類遊戲的AI好做,角色扮演類的AI就難了。FPS裡的NPC只需要面對玩家一個人,而且看到玩家就開槍,根本沒有討價還價的餘地。程序員需要設置的就只是要不要開槍的觸發器和開槍能否命中的概率。RPG遊戲本該也是如此,但爲了增加遊戲的豐富性,玩家往往還會有隊友。敵人NPC優先攻擊誰並不難設計,難的是怎麼讓隊友配合主角攻擊?有時候玩家想要的是隊友狂風暴雨般的猛攻,有時候則希望隊友休養生息。這種戰術上的波動很難由AI設計師用規劃器和行爲樹兩種方法預先設定,就只能交給玩家自行處理了。《勇者鬥惡龍》裡常有的一個橋段就是盜賊、戰士和魔法師三個配角和主角英雄合體,然後由英雄一人負責移動,遇到怪物時則分開攻擊。這種典型的日式RPG戰鬥模式就是早期人工智能實力不足的遺毒。事實上,一直到今天很多RPG遊戲都是照着這個思路在進行,是時候該做出改變了。
根據《勇者鬥惡龍》改編的日劇《勇士闖魔城》,裡面有很多RPG的梗
角色扮演類遊戲可以用玩家的多重操作彌補遊戲AI的弱智,即時戰略類遊戲又該怎麼辦呢?總不見得讓玩家自己左右互搏吧。確實,即時戰略類遊戲曾經是最不受待見的遊戲品類,因爲對手實在是太弱了。打過《魔獸爭霸3》的讀者想必會記得,人族打AI時有一個特別耍賴的戰術:箭塔流。第一個開發這個戰術的玩家看來是吃透了電腦的智力水平,直接一路把防禦塔修到人家家門口。電腦的工人就算看到有個農民在這造塔也假裝沒看到,繼續安心地工作。跟這樣的電腦對手打,中等水平的玩家都很快會喪失興趣,更別提指望提高技藝的高手玩家了。《魔獸爭霸3》已經是2003年的遊戲了,再之前戰略遊戲的智能水平也就可想而知。
烏泱烏泱的箭塔……
後來聲名鵲起的《命令與征服》系列第一部就不算一份太令人滿意的遊戲。儘管作爲RTS類遊戲的開拓者,它定義了一系列RTS的樣板模式,比如資源採集、建設基地、軍團作戰和戰爭迷霧等元素,當時的玩家仍然很快就厭惡了這款祖爺爺級的遊戲。AI的建造次序、出兵順序都有一定的規律,掌握了這種規律的玩家就能在電腦組織攻勢前反客爲主。一直到了《紅色警戒》第一步橫空出世,才解決了AI弱智的問題,但也很有限。想挑戰自己的玩家只能和電腦進行不公平的競賽:你還在造兵營呢,電腦已經二本了,這樣的遊戲也很難說讓玩家滿意。迄今爲止即時戰略遊戲還是有這個弊病,電腦通過“作弊”彌補自己的智商缺陷。
那你說既然人工智能都已經在圍棋場上戰勝人類了,就不能在遊戲裡也抖抖威風嗎?遊戲公司爲什麼不和人工智能研究所合作,做出更聰明的遊戲AI呢?
爲什麼呢
我們能想到的事情,商人和科學家肯定早就想到了,之所以沒有應用恐怕還是出於兩方面的考慮:效率成本和交互性瓶頸。
遊戲行業需要讓現金流快速運轉,很少有特別長期的開發計劃。所謂的新生代引擎,都是在一代一代的快速迭代中積累量變產生質變的,不會讓開發人員一下子拿出一個完美的次世代引擎來。可人工智能的開發週期就偏長,不到一定水平的人工智能拿出來還會被人笑話。你閒來無事願意調戲一下Siri和微軟小娜,要是在激戰正酣的時候遇到這倆廢物估計能把你氣炸。再加上開發人工智能的投入以千萬美元計,金山銀海砸下去還未必能出什麼成果,遊戲開發商自然只肯持觀望態度。有遠見的開發商也不是沒有。微軟收編《我的世界》以後,就在用這個遊戲訓練他們的人工智能算法。今年三月的報道是,無人控制的小人已經能夠自己爬上一片山坡了!多麼激動人心的消息……好吧,這點點進步離遊戲裡可用的AI實在是差得還很遠。
這個人工智能研究平臺叫AIX,有興趣的可以關注一下
玩家和人工智能的交互性也是一個問題。在VR和家用動態捕捉普及之前,玩家只能通過鍵盤和鼠標跟NPC交流。這種低信息強度的交流用傳統的行爲樹算法就夠了(想想你在《上古卷軸5》裡和雪漫城衛兵的對話),沒有必要引入人工智能。你難道想通過打字的方法和一個無所不知的NPC聊天嗎?但在遊戲世界的下一個時代,玩家和程序更密切的交互一定會對人工智能的介入產生需求,最終倒逼高級的人工智能扮演遊戲AI的角色。美國和中國的幾家科技公司都傳出消息,開發了幫助腦部病變的病人恢復智力的遊戲,只不過電極要插進頭蓋骨裡才能和病人互動。這也許是未來解決人工智能交互性瓶頸的一種可能性吧。(我不想開顱……)
人工智能在遊戲領域的應用還處在非常淺層次的階段,我們以爲NPC有智能,其實不過是設計師自己思維的體現罷了。但是隨着這幾年機器學習、遺傳算法的飛速進展,也許我們很快就能在遊戲裡見到活靈活現的虛擬人物了。
歡迎參加——愛玩網百萬稿費徵稿活動:當金牌作者,開本站專欄,領豐厚稿費,得專屬周邊!
遊戲專欄投稿信箱:otaku@vip.163.com
歡迎關注愛玩APP【精選】板塊,更多精彩等着你!