鋼鐵雄心3:人工智慧的遊戲性
既然回顧了Paradox社的遊戲,那麼就再來修訂、搬運一篇P社遊戲老文。這是一篇關於遊戲中的人工智慧(自動戰鬥)的討論。
所謂的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社遊戲設計筆記的「群星」和「維多利亞」,裡面對四萌,或者說五萌有全面的介紹。
如果誇張一點說,我們甚至可以說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裡面重演著,這麼一個龐大的系統,不可能沒有漏洞;牽涉到海空的複雜計算,則會讓漏洞成倍增長。
HOI3的設計師當然明白這一點,他們最終採用的對策思路雖然不成熟,但仍然值得其他遊戲設計師借鑒:設計人員的思路在最終的版本中顯得相當清晰,雖然細節執行得並不足夠好。
第一條思路是「如果AI不能改善,那就讓這件事情的規則複雜化,直到人腦不樂意進行全面的計算為止」。如果AI算不太好的部分,乾脆讓人也算不太好不就好了嗎?如果能讓複雜度增加到一般人的表現還不如AI就更好了。
所以,在HOI3裡面,設計人員把地面行省的數量增加了4倍,讓整個突破的過程變得漫長了許多。他們還增加了戰鬥寬度(Combat Width)的概念,一個省同時能展開的部隊數量是有限的,這是用來阻止玩家最喜歡的優勢兵力集中突破。堆疊懲罰就更狠一點,一旦部隊投入過多戰鬥力就下降的這個設計不光針對地面部隊,還威逼著玩家要把空軍部隊也分開,否則就要面臨驚人的懲罰。至於指揮鏈,就是個更赤裸裸地和玩家計算能力作對的設計了;如果不是補給系統的實現演算法實在太糟糕拖了後腿,這個設計本來應該能像一代戰棋名作東線戰役(War In Russia)裡面的指揮鏈一樣令人激動。
這條思路上的最終設計目標應當是,在玩家所消耗的時間和取得的成效之間達成一個巧妙的平衡,讓玩家清楚應該把哪些許可權和不必要的操作釋放給AI。確實,AI的戰鬥行動經常很愚蠢,它們的進攻行動也很慢,但多數玩家最終都會做出明智的選擇:把非主攻方向完全交給AI的步兵師進行滲透,而將珍貴的精銳部隊控制在自己手裡進行突破。當然,這個設計在最初的版本中還遠遠不完善,有大量的部隊不得不全部被控制在玩家的手中。經過了數個版本的改進後,單戰區的AI基本合格,P社在開發筆記中說HOI4將要延續這一設計思路,我們可以拭目以待即將到來的四代的改進。
第二條思路是「如果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代碼的時代了。
作為遊戲設計師,我們應當思考並研究,究竟哪些不必要的操作和關注是我們可以從玩家手裡解放的,又有哪些嶄新的體驗是我們可以在玩家解放之後交給他們的。
推薦閱讀:
※《茶杯頭》的Boss設計分析(1)
※《茶杯頭》的Boss設計分析(2)
※群星(Stellaris):當文明遇到歷史的邏輯
※致荒遊戲沙龍 Vol.3
※《超級馬里奧跑酷》這麼好玩,為什麼會得到差評?