為什麼你們會相信一個程序生成的宇宙?

數學界有個著名的故事,很多人聽說過,簡單重溫一下大意是這樣的:有個人發明了國際象棋,國王很高興,要獎勵他。這個人說,我不要獎勵,您在棋盤的第一個格子給我放兩顆米(也有版本是一顆),第二個格子放4顆米,第三個8顆,以此類推,放滿棋盤就行了。國王爽快地就答應了,但在經過計算之後,發現傾其國庫都不能滿足這個需求,因為棋盤有64個格子,僅僅是最後一個格子,就需要放2的64次方顆米

2的64次方是18,446,744,073,709,551,616,這個數字在日常生活中幾乎完全接觸不到,也是《無人深空》里的星球數目。

關於《無人深空》,目前爭議已經多到大家審美疲勞,光是促使兩大遊戲銷售平台——Steam和亞馬遜無條件退款,已經是冠絕近幾個世代的「壯舉」,這裡就不多展開了。我們這篇文章的大前提,也是建立在這樣一個現實上:《無人深空》有著非常強勢的宣傳,而成品則是一邊倒的差評,遊戲性和內容極其慘烈。慘到了人們不免會納悶在遊戲工業如此發達的國外主機市場,為何會讓這種天方夜譚般的產品一步步走向市場。

程序不懂美

「用程序來生成海量內容」乃至「模擬一個宇宙」,這種構想不是《無人深空》獨有,這些年曾屢次出現過數個類似的項目,國內外皆有,無一例外以失敗告終,或者繼續以「宇宙沙盤」的名義忽悠大眾。

在繼續說下去之前,有必要先澄清一下這類遊戲的核心技術Procedural nGeneration,《無人深空》們理論上可以籍此產生近乎無窮的「遊戲內容」。對於計算機在「創造力」方面的瓶頸,其實很多人沒有直觀印象,因此在開發者繪出的圖景之下,容易對其抱有過高期待,同時也有相當多的誤解。

大眾開始談論《無人深空》後,網上關於Procedural Generation的話題開始增多,隨之而來的還有不少誤讀。Procedural Generation是一項非常古老的技術,有著近20年的歷史,但至今中文資料依然語焉不詳,這次很多人將其翻譯成「程序化生成」或「隨機生成」,導致人們將其與很多遊戲里司空見慣的「隨機生成」混淆了起來。比如你開一局《文明5》,打一把《暗黑3》,場景和地圖也可以說是隨機的、程序生成的,但他們和《無人深空》這類遊戲的原理和用戶體驗是兩碼事。

《無人深空》所用的Procedural Generation,應該歸為「過程生成」。迄今為止複雜度和多樣性舉世無雙的ASCII遊戲《矮人要塞》,在遊戲開始前會構建一個世界,即使這遊戲連圖形都沒有,全靠最簡單的ASCII字元組成,這個過程也相當漫長,最後生成的地圖文件,比遊戲本體還要大。而採用了「過程生成」技術的遊戲,普遍特徵是地圖奇大,但數據量很小。《無人深空》的PC版只有2.6GB,哪怕一個星球的數據量只有1位元組,這點容量也絕不可能裝得下。因此這個宇宙,是依靠有限的美術素材,在一定演算法的支持下,隨著玩家的探索,逐步生成出來的。

《矮人》的ASCII字元畫面

這種特性導致採用了此技術的遊戲可以輕鬆生成海量的場景和地圖,因為整個遊戲地圖就是一套複雜的數學公式集合,不同地點不同的值,得到不一樣的計算結果,從而生成「千差萬別」的豐富地形地貌,而不需要手工去逐一繪製,這樣一來時間和空間都節省了,美術方面只需要有限的基本素材,用演算法和值將其組合起來,以至於在極端條件下,一個純粹以過程生成的3D遊戲只有不到1MB的體積。

由於場景是即時生成的,也就無需額外的數據載入時間,因此「無縫」「無需載入」常常成為這類遊戲的一大賣點。

但遺憾的是,程序不懂美。

《無人深空》演示視頻里鱗次櫛比、錯落有致由各種動植物構成的美麗生物圈,如今來看應該都是開發組特意手動去校調的。因為玩家實際所能看到的世界,充滿了隨意、混亂與無序,就像「狗在打字機前創作的詩句」,毫無美感可言。

錯落有致的風景美如畫,但你在實際遊戲中,只能看到遍地雜亂的怪石頭怪植物怪動物

所以迄今為止,依靠「過程生成」而來的遊戲,沒有一個能讓人記住的漂亮場景,更遑論美學與藝術性。

一個故事,一講再講

《無人深空》這個遊戲總讓我想起一個非常相似的項目——《無限星辰》。而如果一個人對《無限星辰》稍有了解,也能很容易看出《無人深空》的不靠譜之處。

這是一個始於11年前,至今沒有做出來的項目。

在《無限星辰》的舊版官網首頁醒目位置,還掛著一條2008年管理員發布的信息,上書:

夫《無限星辰(Infinity)》者,大型多人線上遊戲也。

一切玩家,入於未來太空,漫遊乎星漢中流,行星十億百億計。

上下四方,皆順自然演化;往古來今,盡由程序生成。

俯仰細察,一草一木宛然可見;扶搖直上,萬千星雲盡入眼底。

可探險、可交兵、可互市、可通信。

噫吁嘻,星辰無限,豈有涯際!

從「往古來今,盡由程序生成」這句話可以看出《無限星辰》項目對於過程生成技術的執念。在2007年左右,《無限星辰》名噪一時,「過程生成」這個概念因此被拿出來科普過一陣(如果你現在搜索這個詞,還經常能搜到那時的帖子)。當時官方論壇的人們興緻勃勃地談論著遊戲的遠大前景,甚至打算集眾多愛好者的力量,一起把這個遊戲搞出來。當時官方也放出過一些Demo演示,可以說,如今《無人深空》所宣傳的賣點,在當時這個項目中,就全包含了。

這個項目當然不會有結果,但在沉寂了數年後,就在2015年底,這個項目改名為《無限星辰:戰爭遺迹》,又捲土重來,並上Kickstarter參加了眾籌。

在官網的眾籌專題頁面,《無限星辰:戰爭遺迹》被如此描述:

《無限星辰:戰爭遺迹》是一部能無縫登陸星球表面,建造升級飛船、基地,史詩般的太空模擬遊戲。數百名玩家的戰爭將綿延整個完全無縫、過程生成、真實尺度的恆星系內!

「外界評論」——值得一提的是最下面這個人已經退出《星際公民》項目兩年了

《無限星辰》再次出現在公眾視野的時機有些耐人尋味。在2015年,它不是孤例,除了有《無人深空》在E3上大放異彩外,國內還有另外一個類似的項目,叫《幻》,曾於2015年9月開啟眾籌,眾籌雖然失敗了,但成功獲得了國內廠商的投資。

《幻》的目標,按照官方的說法,是創造一個1:1大小的虛擬太陽系,裡面有數百顆可登錄的星球等著玩家去探索,有行星,衛星,小行星,甚至彗星、星球與星球之間的距離也是真實比例的,同時,星球間的旅行是無縫的,也就是沒有載入這個說法(是不是很眼熟?)。在早期的宣傳語中,《幻》還將有「超高的自由度」和「很強電影感」。

當時的眾籌說明

模擬宇宙遊戲們的賣點和宣傳都像同一個文案寫的

作為國產獨立遊戲,從眾籌開始,《幻》的開發商就深諳「搏出位」的理念,將中國遊戲概括為「請充值」,而將自己的遊戲概括為「最牛X」。這個理念在近期演繹到了高潮——3天前,《幻》的官網上線,在官方問答中,充滿了自High式的言論:

上述很好地迎合了最近國內互聯網的話題:創業者為什麼越來越壞了?

搏出位的言論帶來了很多爭議,面對外界的質疑,製作人在官網上說了他們的新計劃:

很多人對此表示質疑,你們如此小的一個團隊吃的下這麼一個大世界嗎?人們是有理由質疑我們的,我們也一直在思考這個問題。當然,現在我們有了思考的結果。那就是,徹底(除了核心程序部分,世界觀架構等部分)將遊戲,或者說這個世界交給玩家來打造。

根據官網的說法,遊戲會將絕大部分美術資源陸續開放給玩家,玩家可以遞交他們製作的美術資源;將提供玩家寫作的功能,可以根據截圖來創造故事、分支、任務、等等;遊戲內將提供功能強大的「編程」系統,玩家完全可以設計出各種匪夷所思的程序,機械,任務乃至演算法各種強大和稀奇古怪的玩意。

如果你見過一些互聯網UGC(用戶產生內容)產品創業者講的情懷故事,你會發現上面這些說法簡直再熟悉不過了。

技術的正確用法?

看上去,這些將內容重心依託在「過程生成技術」的遊戲,往往呈現出一種欺世盜名的面貌。但事實也沒這麼絕對,此類技術下也有一個非常正面的例子——《我的世界》。

《我的世界》是一個典型的「過程生成」遊戲,其默認的生成策略是:自動生成以玩家所在區塊為中心的21×21共441個區塊。這441個區塊的區域稱為視野。也就是說,進入一張全新的地圖,就會從空白開始存儲441個區塊,之後隨著玩家移動,視野擴張到未生成的區塊時,便會生成新區塊。區塊一旦被生成就會存儲到遊戲里,因此《我的世界》的地圖實際上是一直變大的,你探索的地方越多,地圖文件越大。

但同時,《我的世界》也是一款畫面元素極其抽象的遊戲,其更類似於樂高,基本只提供基礎元素,玩家可以通過這些基礎的元素,來創造非常複雜的場景與建築,但遊戲本身並不會提供很現成的、高完成度的素材——也只有這樣,MC才會有極大的擴展性與自由度(同時要玩家創造力的支持創造美)。而本文提到的這些遊戲,均不具備這種「樂高」性質,而是呈現出一種相對「高複雜度」的美術表現——在當前的計算機水平下,無論怎樣精妙的演算法,都不可能使其具有視覺上和Gameplay層面的美感。

那麼迄今為止,採用「過程生成」技術的項目中,有誕生過什麼完成度湊合的遊戲嗎?

還真有一個,是個賽車遊戲,名叫《燃料》(Fuel),07年出品,因為擁有14000平方公里的無縫大地圖,還申請了世界吉尼斯記錄。在使用過程生成技術打造的遊戲世界裡,《Fuel》屬於完成度非常高的了,場景已經相當複雜,但當時外媒如IGN是如何評價它的的呢:

地圖是呆板設計的堆積,許多解鎖功能無意義。

遠看還不錯,但當視角拉近後,就有很多瑕疵、紋理錯誤。

AI問題和環境問題讓整個遊戲無趣。

遊戲帶著你去發現、收集所有東西,但玩家不會有興趣完成。

《燃料》的地圖已經算得上完成度非常高了,地形和植被多變,還有龍捲風之類的極端天氣,但,依然不會有什麼給人留下印象的地方

當時申請吉尼斯世界紀錄的地圖,任何一個太空模擬遊戲,想在星球上尺度上模擬出《燃料》這樣的地圖,現在依然沒啥可能

而另一款採用了同樣技術的《孢子》,在當時可以稱得上「有趣」,但這種有趣是建立在《孢子》里塞了5個經過設計且完全不同的遊戲模式,以及豐富而先進的玩家自創內容上的。至於程序化生成的海量內容,則更偏向於噱頭——我們該很慶幸Will Wright沒有把「創造」的部分完全交給演算法。

《孢子》有點生不逢時,如果生在當下,其龐大的UGC內容恐怕會成為一時的現象,而在當時主要是在一些論壇里傳播

最後,我傾向於用一位網友的話為本文划上句號:遊戲賣的是創造出來的獨特,美術素材的每個像素是創造,每一行代碼是創造,坑錢的數值也是創造。優秀的地圖生成演算法當然也是創造。但,也會隨著被消費而失去生命。

PS.你可能注意到我沒有寫《星際公民》,因為《星際公民》的內容生產方式,和這些同類產品(如果稱得上同類的話)很不一樣,限於篇幅,這裡就不做展開了。也許在未來,我們會對這個項目做專門的分析與討論。

請關注游研社微信公眾號:yysaag

推薦閱讀:

「單機有什麼意思?」,「網遊只知道騙錢!」
玩《Dead Cells》不死個上百次你還想通關?
企鵝插手單機平台,到底想幹什麼?
《如龍》,是為成熟男人準備的一道雞湯
遊戲看完直播後還有入正的必要嗎?

TAG:无人深空NoMan'sSky | 单机游戏 | 游戏开发 |