2016年6月5日 星期日

[程式設計]7個每位開發者都應該研讀的遊戲AI範例



7 examples of game AI that every developer should study



原作者:Richard Moss on 04/05/16 08:06:00 pm   

以下文章內容,除經另行註明,係由Gamasutra社群的成員所著。
其中表達的想法與意見為該作者所有,並不代表Gamasutra以及其母公司。



  幾乎所有的遊戲或多或少都要用到AI - 普遍來說是要提供玩家非人類對手。但在提到遊戲中好的AI時,不外乎還是Façade(編註:2005年出的互動式故事遊戲)、善與惡(Blatck & White)、Versu (編註:一個互動式故事引擎)、模擬市民(The Sims)以及戰慄突擊(F.E.A.R) - 這些都在市面上好一段時間了。
  那些遊戲並不是我們在構想AI系統時唯一能參考的範例。我們聯絡了數個開發者,詢問他們在比較近期的遊戲中,關於新穎和具啟發性的AI使用方式。
  下列遊戲都以其在AI應用上的有趣、精巧、和創新而著名,若你渴望用一些小小的推演思考來增進你的遊戲,這些都很值得一看。他們所探討的背後想法直指著未來在AI發展上令人激賞和多變的可能性。
  (想知道更多的話,請務必要看看Gamasutra裡關於世代流程的使用以及打造系統所列出的相關資訊清單)


1)全境封鎖中由AI主導的掩體切換尋路路徑

  全境封鎖(The Division)的敵人AI有著褒貶不一的評價 - 他們上一刻才站在完全沒有掩蔽的開放場地,接著下一秒就偷偷摸摸繞背然後殺你個措手不及。這遊戲試著要超越由十年前戰慄突擊所締造的高峰,此番嚐試值得細細檢視,但是全境封鎖最優秀的AI設計就是掩體切換的尋路路徑。
  如同湯姆克蘭西:火線獵殺(Tom Clancy’s Ghost Recon),玩家可以掃描掩體,但在這遊戲中玩家可以長壓掩護鍵,然後玩家就會自動跑到新地點去。本質上,這代表掩體之間的移動是自動的,如此玩家可以專注在策略上。而因為路徑會事先顯示在螢幕上(以細長白線繪出),玩家就可以看到他們是如何前往 - 這更進一步幫助玩家理出策略,因為他們可以推測這段自動衝刺所需的時間。
  濃縮精華:AI可以主導遊戲機制,幫助玩家更快更有效地移動,讓玩家能有額外的腦容量來應付更重要的東西,像是要開槍打誰和該怎麼打。


2)極限競速的Drivatar適應AI系統

  極限競速(Forza)從2005創立之時,這個遊戲系列就熱衷於將會學習的神經網絡帶到傳統AI設計上,用以控制非人類駕駛。這個Drivatar系統會觀查你的玩法並模擬你的開車風格 - 有點像是數十個時間競速模式中幽靈的綜合體。
  最新的Drivatar系統迭代已經和微軟的雲端服務綁定,它可以從中操縱以其他人類玩家為基準的AI車手,以及從每個玩家身上搜集更多的資料。如今,你的AI對手會模仿來自全世界的玩家 - 他們的愚蠢錯誤、怪癖、強項、和弱項 - 這都提供了更不可預期的體驗。
  好處是AI車手會學到所有種類的複雜駕駛技巧,而每個技巧都展現全然不同的賽車風格,讓他們看起來更像人類。很不幸地,這也代表就算難度調到最高,賽車摸擬類遊戲的狂熱玩家還是很難找到足供練習的非人類對手 - 因為僅有極少數的Drivatars會像專業車手那樣開車。
  濃縮精華:會模仿真人的學習性AI可以讓敵人和對手更像人類,但你要注意的是,大多數的人在遊戲中的專業程度和現實的專家實力不一樣,所以行為起來一點也不像專家。


3)異型:孤立中不停獵殺的Xenomorph

  第一人稱射擊遊戲通常會讓敵人AI到處亂走、射擊任何會動的東西,顯示它們只聰明到足以挑戰玩家。玩家是掠奪者,而畫面上一拖拉庫像壞人的東西是獵物。但異型:孤立(Alien: Isolation)的Xenomorph (編註:就是大家熟悉的電影中的那種異型種)反轉了這個慣例。四處遊盪的異型代表的是力量,而玩家 - 被剝奪了力量 - 這才瞭解被獵殺是什麼樣的感覺。你扛著槍,但只要一開火就會吸引能力超強且無法殺死的Xenomorph到你身邊。(雖然火焰噴射器將一些力量交還給你,使狀況變得複雜,但異型還是站在獵人的那一方。)
  異型或許只是跟著行為樹和寫給這些數位化生物的固定程式在跑而已(當你試著對Xenomorph耍小聰明或測試它的極限時會特別明顯),但要去預測它們何時以及在附近哪裡出現又太困難。這個無法預測性結合了異型的感知能力 - 它們有敏銳的聽覺 -以及某種導引系統讓異型隨時都會在玩家的周遭區域。結果就是產生了緊張和恐怖的體驗,逼得玩家躲在置物櫃裡好幾分鐘,並不斷四處檢查獵人是否潛伏在走道或通風口。
  濃縮精華:設計一個會在遊戲世界裡神出鬼沒、不眠不休獵殺玩家的AI,可以為關卡的設計帶來不確定性和建立緊張感。


4) The Ice-Bound Concordance的結合式敘事


  或許The Ice-Bound Concordance(以下簡稱IBC)第一眼會讓你覺得是個精美的"自行決定方向的冒險遊戲",但遊戲中關於KRIS這個仿作家AI的故事,並不是建立在分歧路線上。取而代之的是玩家和AI結合了預寫(用來防止某些變數)的故事片段文字來拼湊成一部小說。這是經由遊戲內的要素 - 對話樹、玩家在KRIS發想過程中的介入、符號、和事件抉擇 - 以及遊戲外部的要素的互動結果,外在要素就像是玩家秀給KRIS看AI不應該看到的實體床邊故事。開發者把他們這個很重視AI的自行決定方向冒險稱為結合式敘事。
  之前有很多開發者試著要用演算法來主導遊戲故事 - 像是FaçadeVersu - 他們都都專注在社群互動上,IBC則是看向內裡並說出一個更文學的故事,或可以說是很多故事。它可以搞定上萬個故事框架的變換,其中包含許多敘事的片段和一組複雜的規則來決定哪些要素會開啟或關閉。因此,AI和玩家(以及寫下這些故事片段的設計師)在述說故事的過程中通力合作,AI的目標是確保玩家會得到一個戲劇性上令人滿足的故事。
  濃縮精華:你可以運用AI來講一個在戲劇性上令人滿足的故事 - 既使它本來就很精采 - 這個故事會動態地以玩家的選擇來型塑,傳統分歧點的方式更加生動。


5) 城市征伐透過遺傳演算法的遊玩測試


  塔防(或塔攻)遊戲城市征伐(City Conquest)因為它極度使用人工智慧參與設計過程本身而顯得獨樹一幟。在這遊戲中AI變成了一個工具,它不是用來擴展或精煉玩家每一刻的遊戲體驗,而是用來進化設計本身 - 用來增進遊戲平衡和(希望能夠)以衡量每個迭代的設計是否有達標來策劃出一個更愉悅的整體遊戲體驗。
  先提醒你,這AI不是處理設計修正用的。設計師Paul Wozour寫下了這個遺傳演算法讓它行為像是自動且虛擬的遊玩測試小組,然後會進化成高手玩家並在這過程中找主流遊戲策略和需要微調的小要素。透過觀察這些機械玩家和人類玩家遊玩的方式,Tozour發現大大小小的問題,並獲得大量的資料來幫助他調整遊戲的參數。
  濃縮精華:AI可以幫助你讓你的遊戲變得更好,甚至在遊戲上線前就能經由遊玩測試找出主流策略。


6) 測試The Witness中的行進路線

  Jonathan Blow(編註:此遊戲的作者)希望The Witness中的行進過程能夠盡可能地流暢且不受阻礙。若玩家被卡在地圖邊邊或撞到牆、又或是他們能夠走過地型到一個地方但不能原路返回的話,這可能會讓玩家抽離出遊戲世界中。這可能會打破沉浸感,而沉浸感是這遊戲是最重要的願景。為了確保不會發生這樣的事,他要求程式設計師Casey Muratori強化玩家移動的程式。Muratori寫出一個用來測試碰撞的演算法來做為回應。
  他的演算法跳進遊戲中取代了玩家並探索了整座島。當它在行走時會創造出節點並在地上顯示出連結這些點的線。白線代表可以走,紅線代表無法走。(這演算法也可以用更高的密度來探索靠近邊界的區域。)如果狀態改變的話,假設是門被打開好了,那它會往回走然後再從那個點往前繼續探索接下來的區域。藉由觀看結果,開發團隊可以找出行進程式碼的問題或是需要修正的關卡幾何構造。
  濃縮精華:AI可以幫你進行苦工,來找出所有那些會讓單純只是想探索你遊戲世界的玩家感到喪氣的討厭問題。


7) 惡靈勢力、搖滾史密斯2014、及其他遊戲的AI Director


  好幾年以來,惡靈勢力(Left 4 Dead)兩款系列作用來控制多人合作遊戲上節奏的AI Director仍然是個很棒的系統。AI Director能掌控典型的AI功能,像是敵人行進方式以及用令人滿意且擬真的方式來接替人類玩家。但真正讓這系統有趣的是它在每場遊戲都會出現的高層級影響。
  AI Director的主要工作是掌管步調。它將緊張感營造到高峰,然後放鬆,接著又再次營造,然後在這一次遊戲中隨著玩家逐漸步向終點而不斷重覆。它能辦到這點是藉由模擬玩家的緊張程度(會被像是近距離戰鬥或是遠距離戰鬥、彈藥數和血量、附近的殭屍數所影響),然後調整殭屍的進攻方式 - 從哪來、有多少會攻擊、什麼型式的攻擊、以及集中攻擊誰。
  AI Director從那時開始就在許多其他遊戲中帶來很好的效果,像是惡靈勢力之後的極地戰嚎(Far Cry)系列、惡靈進化(Evolve)、和搖滾史密斯2014(Rocksmith 2014) - 這遊戲利用Director來控制遊戲中你現場吉它演出時的音樂伴奏。但惡靈勢力仍是最好的研究範例。
  濃縮精華:每個玩家都是不同的,而擁有一個能夠改變遊戲節奏和緊張感的AI來調整每一刻的需求,你就可以確保每個人都能有滿足且具挑戰性的體驗。

不只是炮灰
  有了上述的範例,人工智慧在遊戲中可以有無數種用途。它可以用來當做測試工具讓你的程式或設計更健全,並讓成品更為有趣,或是它可以藉由展現出一點點的策略學習或適應性來讓NPC們看起來比較聰明,雖然總的來說還是笨笨的。
  AI可以是一隻看不見的手,用來執導整場秀,或是充當場上和玩家一起行動的炮灰和同伴。AI可以引導或是誤導玩家,幫助或阻礙玩家。它可以讓壞人們看起來真的是要合作無間來殺害或荼毒玩家,或是它可以讓一個敵人變成可怕的獵手。AI可以模仿、擬人、學習、忘卻、教導、以及合作。
  這都是演算法的成果,所以它們會做任何你想要它們做的事。你只要想到有創意的方法來拿捏它在誘使、困惑、擾亂、協助、阻撓、處理、和分享時的強度就好。不要將AI的想法侷限在只要聰明到能稍稍阻撓玩家就好。反而是要想像它能如何在小地方或大方向上提昇遊戲體驗。

  感謝Jonathan Tremblay、David Churchill、和Anne Sullivan合力幫助我完成這篇文章,以及Tommy Thompson在YouTube頻道上AI and Games提供的進一步指導。


翻譯:XDorz87

校訂:MilkReaver