在各種各樣的益智解謎遊戲中,“推箱子”可以算是最經典、知名度最高的類型之一,有點類似於《掃雷》和《蜘蛛紙牌》。它玩起來簡潔明快,沒什麼壓力,即使是不了解電子遊戲的人,也能從中體會到樂趣。
不過,也許是因為太過經典,“推箱子”在大多數人心目中被打上了休閒、輕度、碎片化之類的標籤,他們可能會在通勤路上、飯後睡前,花一點時間玩個幾局,不會特別鉚足了勁嘗試解決問題或者獲得什麼成就——甚至不太介意遊戲的名字。而換個角度看,對休閒、益智的重視也讓許多“推箱子”遊戲在玩法上趨於雷同,只有那些最天馬行空的創新——比如《Baba Is You》——才能給人留下深刻印象。
《帕特里克的無窮箱子奇遇》(Patrick’s Parabox)就是一款能給人留下深刻印象的遊戲。

■ 腦洞大開的關卡設計
《帕特里克的無窮箱子奇遇》賣相非常可愛,上手也非常簡單。玩家只需要將作為“主角”的笑臉箱子和其他一些箱子推到指定地點,就大功告成。
然而,我很快發現這款遊戲並不像看上去那麼普通。它的確擁有經典“推箱子”遊戲的一切要素:一些箱子、一個推箱子的“人”,以及不小心把箱子推到牆角就會陷入死局的基本規律。但遊戲還引入了一種“嵌套”的概念——一些箱子可以嵌套進鏤空的箱子裡,箱子還可以通過縮放、映射等等機制,通過非常意想不到的方式到達其他地方。
換句話說,各種鏤空的箱子和嵌套機制,相當於把原本的地圖拓展了好幾倍,讓這個經典的滑塊問題的解法變得更加複雜有趣。這種用很小的點子撬動了很大創意的作品,讓人十分佩服。
整個遊戲一共有350關,每個大章節主推一種玩法,越到後來越腦洞大開。比如你有可能要用一些鏤空箱子造出原本不存在的推動路線,或者讓箱子放大、縮小,在同步嵌套中“遠程操控”一些箱子到達指定地點……
遊戲的開發者是Patrick Traynor,在之前的一些採訪中,他提到過這部作品的創意來源。 Patrick讀大學時是美國加利福尼亞州大學聖地亞哥分校遊戲開發俱樂部的一員,當時他和朋友們一起在遊戲社團中創作過一個小型Demo,基本玩法也是推箱子,但是加入了一些潛行元素。之後,他自己根據最初的想法做了一個雙人遊戲的模型,其中一位玩家控制的角色個子很小,而且可以穿牆——畢竟要“潛行”嘛。
沒過多久,Patrick暫時對這個項目失去了興趣,將它擱置起來。過了4年多,他才在陰差陽錯之間又把當初的代碼找出來,想在一次朋友聚會上展示。剛好,當時另一位開發者juner在某次Game Jam中公佈了一款同樣帶有多層嵌套元素的推箱子遊戲《Sokosoko》。 Patrick很受啟發,決定將這個點子繼續做下去,最後形成了現在的樣子。
雖然創意的雛形誕生很早,但這款遊戲大概花了Patrick兩年多的集中開發時間。在自己的社交動態和採訪中,Patrick提到了好幾個重要的靈感來源。除了juner的遊戲,還有之前同樣以燒腦著稱的獨立遊戲《Baba Is You》以及另一款久負盛名的“推箱子”遊戲變體《Stephen’s Sausage Roll》。
先來說說相對較老的那個。 《Stephen’s Sausage Roll》是一款2016年發售的解謎遊戲。遊戲中的“箱子”被設定為香腸,玩家的目標是將香腸全部烤熟。為此,玩家必須控制小人將這些香腸推到散佈在地圖中的烤架上。
這款遊戲的解謎難點在於,香腸有上下兩個面,每個面必須經過且僅能經過烤架一次,次數多了就會被烤焦,遊戲失敗。與此同時,香腸一般佔據並排的兩個格子,而烤架的形狀和尺寸多種多樣……所以,嚴格意義上講,香腸需要烤的並非只有上下兩個面,而是有4個“面”,或者說“格子”,玩家在“將箱子推到指定地點”的經典目標之外,還多了一個如何讓它每個面都在指定地點滾一遍的難題。
相信我,這個小小的設計為玩家增加的障礙難以估量。
另外,在《Stephen’s Sausage Roll》中,小人可以站在任何方位,用叉子將香腸前後左右移動,而不是像經典的“推箱子”遊戲那樣只能向前推。在站位合理的情況下,也可以同時移動多個香腸。借助地圖中的梯子,小人還可以站在香腸以及場景中的其他高台上,香腸之間也可以堆疊——沒錯,這是一款有立體地圖的推箱子遊戲!而這些機制究竟是開發者的“憐憫”,還是讓解謎關卡變得更加複雜,就見仁見智了。
作為《帕特里克的無窮箱子奇遇》的另一個重要靈感來源,2019年發售的遊戲《Baba Is You》對“推箱子”類型的創新看起來要更激進一些。在Steam評論區裡能夠看到不少玩家表示,這個遊戲玩到後來讓他們對自己的智商產生了懷疑……
這種感覺太正常了,因為《Baba Is You》將游戲的基本規則也變成了箱子——遊戲裡需要推動的“箱子”實際上是寫著文字的方塊,方塊根據文字顯示不同具有不同功能,把“箱子”推成不同順序就能夠改變遊戲規則。這樣一來,玩家的目標不再是老老實實把箱子從一個地方推到另一個地方,而是直接將構成規則的名詞“推”成新的順序,組成新的句子以贏得遊戲。比如把規則改成“Baba Is Win”就能原地過關。而在解謎過程中,原本構成障礙物的“wall”和“rock”也能通過這種方式變成別的工具,還有“shift”和“flag”之類的輔助型“箱子”能幫助你想辦法調整單詞的順序等等,形式非常多樣,遊戲機制靈活得叫人嘖嘖稱奇。
就個人感受而言,《Baba is You》對我這種普通玩家來說足夠吸引人,但有些關卡確實有些太難,遊戲的難度曲線過陡、缺乏適應過程也是許多玩家重點反饋的問題。 《帕特里克的無窮箱子奇遇》在這個方面做得比較好,基本每一章引入一種新機制,“手把手”地教上一陣子,循序漸進地解釋本章的主要玩法之後再出一些綜合性比較強的謎題,所以整體難度曲線比較平滑。這並不是一件容易的事,Patrick也在採訪中表示,難度曲線是設計過程中遇到的最大困難之一,給朋友們試玩過很多遍才慢慢定下來。
不過,總體而言,這些小瑕疵都不妨礙這幾款遊戲在謎題設計上的獨樹一幟,它們為眾多玩家和開發者們打開了新世界的大門。
■ 當“益智”遊戲遇上數學
歷史上最早的“推箱子”遊戲《倉庫番》(Sokoban)誕生於1982年,由日本Thinking Rabbit公司首次發行。遊戲屬於滑塊謎題的一種,最初的版本有10個經典關卡和10個帶隱藏牆壁的演化關卡。 1984年,Thinking Rabbit推出了有50個關卡的《倉庫番2》,之後又有了1989年的《倉庫番完美篇》和1991年的《倉庫番復仇篇》,兩者各有306個關卡,有點類似於總集篇。
遊戲最初是在日本非常古老的家用PC上發行的,後來通過Thinking Rabbit的授權移植到了一些別的平台和操作系統上,因此也衍生出了各種各樣不同的版本,包括Game Boy、SFC、PS和手機平台的版本,但是遊戲本身並沒有特別大的變化,甚至可以說一直再沒有官方新作誕生,反而是各種各樣的衍生和創意作品越來越多。
但不管怎樣,遊戲本身以及它被後輩們模仿的核心沒太大變化。 “倉庫番”系列基本奠定了此後大多數推箱子遊戲的基本規則,比如箱子只能推不能拉,以及人不能同時推兩個箱子。當然這些規則上的細節在後來者的設計中都可以被打破。

那麼,為什麼“推箱子”如此長盛不衰,吸引了一代又一代開發者和玩家呢?原因也許在於,“推箱子”雖然經常被當作休閒益智遊戲,但它本質上是個非常複雜的問題,比表面看上去複雜得多,而人們樂於通過戰勝這些難關獲得樂趣和滿足感。
就像所有類型的遊戲都會有孜孜不倦,探索各種可能性和最優解的硬核玩家,“推箱子”遊戲也有一批忠實擁躉。有些特別的是,很多致力於研究“推箱子”的人是數學專業,尤其是專注於研究算法的人。如果你在網絡上搜索“推箱子”,會發現有相當一部分結果指向“推箱子遊戲自動求解算法”,“箱子推動路徑搜索算法”乃至“判斷推箱子關卡是否有解的多項式空間的算法”等等看起來令人生畏的東西。
實際上,“推箱子”這種表面上很簡潔和基礎的解謎遊戲,其複雜的本質很早就受到了數學家們的關注。
這個問題究竟有多複雜?在維基百科“推箱子”詞條的頁面上能看到這樣一段描述:“推箱子的解的複雜度被數學家證明了達到NP難(NP-hard)的程度,後來更被證明了它是PSPACE完全的。”
描述中這兩個看起來很專業的名詞都涉及到計算複雜度理論。看不懂也沒關係,一般人只要知道,要用數學方法去證明一個推箱子關卡有解,是這一領域最困難的問題之一。如果要編寫程序去自動求解某個推箱子關卡,運算量也十分龐大,甚至量子計算機也不能快速解決……
一位“推箱子”愛好者,同時也是數學專業領域的博主曾經寫過不少博文,專門討論相關的數學問題,比如“推箱子”關卡文件和正則表達式、“推箱子”路徑搜索算法……他也在實際操作中發現,“我們舉辦了好幾年的MF8(魔方吧)’推箱子’網絡比賽,尚未見到有人或者組織能夠用計算機快速解出我們的比賽主關”,而且,“在實踐中,大多推’箱子’求解程序使用大量的內存,往往是隨’推箱子’關卡大小呈指數增長”。
在這一點上,人腦可能比計算機更神奇。玩家們往往憑藉直覺和反推的邏輯思維去解決遊戲中的謎題,並且非常享受過程中的挑戰。而對開發者來說,這意味著他們有大量毫不重複的關卡可用,在設計上擁有非常廣闊的創作空間。在經典機制之外加上各種變數,就更加千變萬化。
當然,這也可能造成一些困難。比如《Baba Is You》在很長時間中一直在更新關卡,小修小補,因為玩家在實際遊玩的過程中推出了很多開發者都沒想到的路線,有些容易導致關卡出現Bug。關卡編輯器也是在推箱子遊戲愛好者中很受歡迎的更新,大佬們紛紛自己上手,設計出各種精彩的謎題。
回到《帕特里克的無窮箱子奇遇》,如果說它在我眼中有什麼在同類游戲中獨樹一幟的特殊魅力,大概就是那種毫不掩飾的“Geek感”。遊戲中的嵌套機制必定會在某個時刻造成“套娃”的效應,在後面的關卡中會出現“無窮大”和“無窮小”兩個悖論。這意味著玩家在遊戲中將某個箱子無限地推出了現有的嵌套箱外,或者將某個箱子無限地推進現有的嵌套箱裡面,非常有意思。網絡上還出現瞭如何同時推出兩個悖論的教程。這種感覺還挺奇特的,彷彿自己一不小心在遊戲中造出了什麼神秘時空……就像小時候總喜歡盯著相對而立的兩面鏡子中無限延伸的空間那樣。
這些機制將游戲和數學的聯繫在明面上表現了出來,搭配上可愛的美術風格和關卡本身的樂趣,有點痛快地展示“Geek的浪漫”的意思。而且,這種浪漫是錦上添花,一點也不高高在上,並不會影響普通玩家通關;硬核玩家則可以深挖這些機制,比如B站上就出現了計算數學專業的UP主發出的視頻《如何用“集合論”知識玩“推箱子”》,感覺就是用理論知識解釋了各種關卡為什麼要這麼解。在評論區中,不少同好開始熱烈地討論集合論是不是最適合用在這款遊戲上的理論,讓我覺得自己彷彿誤入了數學興趣小組。
■ 一個令人驚喜的好例子
總而言之,我想,最精巧、最俱生命力的解謎遊戲的魅力,除了關卡本身的創意,還在於這種智性的浪漫。你能感覺到它背後有更深層的東西,能隱約地瞥見其中的奧秘,但你不需要變得很專業或者很聰明就能體會到樂趣,何況還有關卡編輯器這種參與感和互動感很強的元素存在。
《帕特里克的無窮箱子奇遇》是一個令人驚喜的好例子。它某種意義上的確是站在巨人肩膀上的產物,在它之前,各種各樣的開發者們已經為“推箱子”這一地基般的遊戲類型添磚加瓦了40年,但《帕特里克的無窮箱子奇遇》依然展現出了自己的特性。我喜歡開發者展現出的對遊戲的熱情,還有在過程和結果中展現出的智慧的美妙。
未來它會不會像《Baba Is You》那樣進行大幅更新,或者玩出什麼新花樣呢?目前還沒有這種跡象,但這種可能性始終值得期待。