既然要回顧Paradox社的游戲,那么就再來修訂一篇老文。這是一篇關于游戲中的人工智能(自動戰斗)的討論。
所謂的AI,指的就是人工智能。人工智能這個東西,對一般大眾來說,感想大概是類似終結者這樣的:
對科技新聞比較敏感的一般大眾,對人工智能的感想則是“AI剛剛下贏了李世石”這樣的:
但對游戲玩家來說,AI的印象卻不是這么高大上的,而是……
沒錯,就是“自動戰斗”和“媽的智障”的混合體,偶爾混進“媽的作弊”作為調劑。每個用自動戰斗打過電腦,或者利用電腦策略BUG調戲過AI的游戲玩家,大概都會對現階段的游戲AI充滿了怨念:作為自己人的時候太蠢,而作為敵人的時候漏洞又太多。絕大多數情況下,游戲里的AI托管,只是游戲過程太過無聊,玩家懶得自己手動操作的替代品。
而我這次要講的鋼鐵雄心3,就是一個將幾乎全部的游戲性都寄托在了AI上的戰略游戲。它發售于2009年,我趕在今年這個系列的四代發售之前,將三代的文章搬運過來供各位讀者知曉這個系列的設計方向。
和P社其他游戲一樣,這個游戲確實BUG無數(當前版本已經好了很多),也有著難以數清的設計細節缺失和欠考慮的處理失誤,更有大量的程序失誤和不足,但它的設計思路還是很有可觀之處的。
還是先來簡單的游戲介紹。鋼鐵雄心3這個游戲,音譯是哈特矮人3(Hearts of Iron 3),意譯是小胡子養成計劃3,偶爾你還能看到其他的一些譯名,以下我們會統一簡稱為“HOI”。是個以模擬第二次世界大戰全景(1936-1948)作為目標的歷史戰略游戲。它在P社四萌之中占據很重要的位置,或許也是P社四萌中中國玩家玩的最多的一個游戲(原因你懂的)。
在這里我就不贅述“P社四萌”是什么了:不知道的讀者,請自行去翻找旗艦的P社游戲設計筆記的“群星”和“維多利亞”,里面對四萌,或者說五萌有全面的介紹。
群星(Stellaris)(上):為什么文明類游戲這么好玩?
群星(Stellaris)(下):當文明遇到歷史的邏輯
歷史的邏輯:這些戰略游戲里,有歷史書上沒教的東西
如果夸張一點說,我們甚至可以說P社四萌是迄今為止唯一一個試圖做出“宏觀戰略感”的游戲系列。而在這四萌中,HOI系列則擔負著在“戰術指揮”方面做出設計突破的責任。HOI初代成功導入了整個二戰的歷史和數據,HOI2代提供了強力的事件系統讓玩家們編寫了無數的MOD重現了各種各樣的歷史,而到了三代——
他們終于寫了一些代碼,讓軍隊可以在明確的目標下去自行戰斗了!
如果你玩過其他的P社游戲,就會知道這其中的巨大區別:在大多數P社歷史戰略游戲中,我們是要拖著部隊進行戰斗的;而在HOI3中,所有的部隊都可以丟給AI去指揮。對沒有玩過其他P社游戲的玩家,這么描述或許很難理解,我會嘗試換一種說法。
以前的HOI系列的游戲過程是這樣的:比如我選擇蘇聯開始游戲,我的游戲目標是“攻克柏林結束戰爭”。為了達成這個目標,我需要在漫長的戰線上點擊并手動調遣每一個師、生產這些部隊所需要的武器、調集所需要的海軍和空軍給他們提供支援,然后從庫爾斯克開始逐寸逐寸地奪回土地,消滅敵人的武裝力量。每天都有新的戰斗在發生,每小時都會有新的戰報傳來(游戲里每小時是一個行動階段),作為指揮官的玩家都要從早到晚地暫停游戲,以便拖動結束了攻擊的部隊繼續發動攻擊,追擊正前方潰退的敵軍達成突破,或者把潰敗了的部隊拖回后方整補。這些麻煩事情曾經讓我屢次放棄重玩的打算——大規模戰斗實在是太煩人了。
而在三代里呢?現在玩家只需要把幾百個師編組成一個“紅軍總參謀部”,然后在下面編制上“白俄羅斯方面軍”、“烏克蘭方面軍”之類的部隊,再給他們指定一個最終作戰目標——比如說“柏林”,一個作戰方針——比如說“閃擊”,接著這整個軍團就會自動開始作戰!
是的,這就夠了。從部隊移動、進攻到補給、修整,這個集團軍群都會按照自己的AI自動去完成。雖然效率不是很高,AI也有很多漏洞,但HOI3的這個設計思路確實在試圖把人從枯燥乏味的補戰線漏洞的行動中解脫出來,值得贊賞——事實上整個游戲進行的流程也因此流暢了很多。同樣,所有戰略層面的AI也可以選擇性托管,包括外交、內政、生產、諜報、科研在內的各個分項都可以選擇交給AI進行托管。
——沒錯,用網絡游戲的術語來說,這幾乎就是我們俗稱的“外掛”了。不用操作,自動進行,只有在出錯時偶爾來用一些操作進行調整。作為頭緒繁雜的戰略游戲來說,我個人認為這是個相當不錯的方向,比模擬并要求操作一切(那些不操作就不會動或者動得很差即時戰略游戲)或者完全不能操作一切(比如孢子什么的)的做法來得有趣。
但這里仍然有一個問題,再明顯不過而且很難解決的問題。這個問題就是:自動委托的AI怎么可能比人腦高明?這怎么可能變得好玩呢?
直覺的答案,當然是改善AI,讓AI變得好玩……但這其實是一個空中樓閣的說法。
改善AI永遠是最難的,AI永遠不知道自己會有些什么漏洞。和絕大多數有AI的戰略游戲一樣,鋼鐵雄心系列以及其兄弟系列們的歷史,就是聰明的玩家鉆AI漏洞的歷史。
用飛機+傘兵占領勝利點,用部隊誘騙艦隊不足的電腦國家離開駐防地,利用海戰AI的漏洞偷渡,這些手段被狡猾的玩家們玩得爐火純青。這一切也理所當然地在HOI3里面重演著,這么一個龐大的系統,不可能沒有漏洞;牽涉到??盏膹碗s計算,則會讓漏洞成倍增長。
HOI3的設計師當然明白這一點,他們最終采用的對策思路雖然不成熟,但仍然值得其他游戲設計師借鑒:設計人員的思路在最終的版本中顯得相當清晰,雖然細節執行得并不足夠好。
第一條思路是“如果AI不能改善,那就讓這件事情的規則復雜化,直到人腦不樂意進行全面的計算為止”。如果AI算不太好的部分,干脆讓人也算不太好不就好了嗎?如果能讓復雜度增加到一般人的表現還不如AI就更好了。
所以,在HOI3里面,設計人員把地面行省的數量增加了4倍,讓整個突破的過程變得漫長了許多。他們還增加了戰斗寬度(Combat Width)的概念,一個省同時能展開的部隊數量是有限的,這是用來阻止玩家最喜歡的優勢兵力集中突破。堆疊懲罰就更狠一點,一旦部隊投入過多戰斗力就下降的這個設計不光針對地面部隊,還威逼著玩家要把空軍部隊也分開,否則就要面臨驚人的懲罰。至于指揮鏈,就是個更赤裸裸地和玩家計算能力作對的設計了;如果不是補給系統的實現算法實在太糟糕拖了后腿,這個設計本來應該能像一代戰棋名作東線戰役(War In Russia)里面的指揮鏈一樣令人激動。
這條思路上的最終設計目標應當是,在玩家所消耗的時間和取得的成效之間達成一個巧妙的平衡,讓玩家清楚應該把哪些權限和不必要的操作釋放給AI。確實,AI的戰斗行動經常很愚蠢,它們的進攻行動也很慢,但多數玩家最終都會做出明智的選擇:把非主攻方向完全交給AI的步兵師進行滲透,而將珍貴的精銳部隊控制在自己手里進行突破。當然,這個設計在目前的版本中還遠遠不完善,有大量的部隊不得不全部被控制在玩家的手中,但我樂觀地估計,經過幾個版本和玩家自制MOD的優化之后,HOI3應當能夠取得一個較為合理的平衡。
第二條思路是“如果AI不能改善,那就讓設計內容簡單化,直到AI在這件事情上不會再出錯為止”,強行把人腦降低到和電腦一個水平。
典型的設計猶如HOI中的貿易系統,在所有的收支都統一到了金錢后,他們終于寫出了一個簡單而有效的算法,可以確保AI能夠用手里的資源交換回足夠的資源,以確保所有的工廠都能正常開工。再比如說空軍,他們把空軍的任務分解到和飛機種類一一對應之后,空軍AI看起來也正常得多了,各個機種各司其職。歸根結底,玩家最害怕的其實是“AI做蠢事”;如果一個AI所對應的設計內容簡單到AI幾乎不會做蠢事,那玩家會非常心安理得地將這些內容委托給AI。
但如果做不到,這條思路卻會產生很糟的結果,比如游戲里面的海軍。海軍各個艦種的角色混雜,所需要執行的任務也非常多樣,試圖簡單化的努力讓海軍AI的表現顯得非常糟糕。如果你委任了一整支海軍,登陸部隊會不帶任何護航艦隊就進行登陸嘗試,潛艇和驅逐艦會在不需要巡邏和破交的海域進行行動,珍貴的由航母和戰列艦組成的主力艦隊卻會因為不知道敵方主力艦隊的所在而呆在母港里面趴窩。類似的問題還有戰區增援需求和AI托管生產,這兩塊內容的簡化也顯得非常愚蠢,完全不需要的運輸機會得到驚人數量的請求而被大量制造,真正急需的補給部隊反而無法得到生產優先權。
內容簡單化是個比較有風險的設計決策,你必須確認“AI確實不會干蠢事”才好把這些內容徹底托管給它們。而且,如果整個游戲都采用內容簡單化的方針,你就必須要想到這樣一個問題:這么弱智的游戲還好玩嗎?是不是只有弱智玩家才會覺得它好玩?
第三條思路是“如果沒有把握讓AI掌管全局,那就把AI控制的部分拆散,讓玩家自行決定哪些部分是不必要的。”
這方面他們設計的時候已經考慮到了,但似乎考慮的程度還不夠。整個游戲拆散成了六塊,軍事、外交、內政、生產、諜報、科研,如果玩家不想操作哪個部分,就可以交給AI托管;如果覺得不放心,就可以拿回來手動管理。
但是,這看起來恐怕還不夠。如果要AI可玩,可能會需要更細致的分散托管。游戲中的每個模塊,分明都可以分解成更小的模塊進行AI設計。舉例來說,在生產里面,運輸船和IC調配都明顯可以寫出十分實際可用不會犯錯的AI,但生產流水線部分就難多了,這幾部分明顯應該讓玩家來選擇將哪些內容交給AI。諜報也有相同的問題,間諜派遣的優先度和實際執行的任務也是兩個獨立的模塊,應該分開。任何可以拆開的AI模塊,都應該拆散開來,讓玩家自己來評判代碼的水準。讓玩家最大限度地持有對AI的控制權,反而能帶來一種“用委任戰勝了系統”的特殊游戲體驗。
當然,如果把以上這些設計思路逆向解讀,對游戲設計師同樣也是很有用的。
如果系統能夠被宏或者外掛的自動程序打敗,通常這證明這個系統太過簡單。信任玩家大腦的智力或許會是更好的選擇。但反過來說……如果你預期你玩家的大腦其實并沒有什么智力的話,這種設計似乎也……
如果系統能夠被宏或者外掛的自動程序取代,通常這證明這個系統太過單調。如果發生了這種情況,那為什么不索性直接把這個單調的部分拜托給系統內的AI呢?在這個部分交給AI之后,你又該給玩家設計一些什么樣的系統作為替代呢?
如果系統因為過于龐大而真的潛藏著太多的風險,那為什么不索性將可以委任的部分拆開,然后讓玩家自行去選擇他需要把那些部分的內容“自動化”呢?
現在是一個計算能力已經能夠負擔得起相當程度AI代碼的時代了。
作為游戲設計師,我們應當思考并研究,究竟哪些不必要的操作和關注是我們可以從玩家手里解放的,又有哪些嶄新的體驗是我們可以在玩家解放之后交給他們的。
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。