從Famicom時代就開始玩遊戲的玩家們,應該多少有接觸過《Spelunker》(地底探險)這款遊戲吧?這款在地下洞穴中尋寶的動作遊戲有著地形豐富、寶物多樣、音樂悅耳等要素,但最具話題性的,還是主角弱得不可思議這點吧,不過這樣令人傻眼的特色,倒也讓《Spelunker》遊戲充滿了挑戰性,有著死忠的愛好者,並發展成一種代表性的存在。
呃,其實本文的主題並不是《Spelunker》,而是獨立遊戲《Spelunky》,之所以要先提一下《Spelunker》,當然是因為兩者之間有著一定的相似程度了。這個相似性不單只有遊戲的名稱,還包含了遊戲的許多要素,像是遊戲玩法、關卡的概略樣貌都讓人覺得這兩者之間有許多共通點。
事實上,《Spelunky》並不是《Spelunker》的抄襲作,甚至也稱不上有太多的諧仿,要說諧仿,其實《Spelunky》有個更加明確的致敬對象,那就是《印第安那瓊斯》系列。不過就遊戲整體內容來說,《Spelunky》可是完完全全的走出了自己的風格與玩法,讓這款遊戲從開發中版本就相當受到歡迎,在遊戲開發完成並釋出原始碼後,也出現了許多玩家自行修改的特別版本,而《Spelunky》的Xbox Live Arcade也正在開發中。
由於《Spelunky》是款已經完成一段時間、具有相當知名度的作品,網路上亦早就有許多相關介紹文章,因此本文在遊戲介紹的部分,就簡單的帶過去吧。《Spelunky》的基本遊戲概念就像《Spelunker》一樣,玩家所操控的地底探險者要在地下洞窟中蒐集財寶、閃避陷阱、尋找出路。
遊戲乍看之下雖然相當單純,實際上卻有許多細緻的設計,讓遊戲進行過程中充滿了驚奇感,甚至這之中還帶著一點反遊戲設計常理式的顛覆感,像是一不小心就會被老闆秒殺的商店,或者拯救的同時還可以把她當成投擲武器的金髮美女等等。
雖然《Spelunky》並沒有《Spelunker》那種超過腰部高度落下就會死亡的超虛弱體質,但是在《Spelunky》遊戲中,玩家只有相當有限的生命值,而且一旦死亡就必須要整個遊戲從頭來過,遊戲還是算有相當的難度。而《Spelunky》還有個重點就是遊戲的關卡是隨機產生的,每次遊玩都會碰到不同的關卡安排,讓遊戲過程充滿變化,亦讓挑戰性與耐玩度大幅提升!
總之,《Spelunky》是款相當值得一玩的獨立遊戲,PC版本可以免費在官網上下載,推薦給各位嘗試。而《Spelunky》的主作者Derek Yu除了有多年的獨立遊戲開發經驗外,本身也經營著TIG Source這個獨立遊戲社群網站。今年的GDC,Derek Yu與夥伴Andy Hull有一場簡短的演講「The Full Spelunky on SPELUNKY XBLA」,主要講述《Spelunky》這款遊戲的開發過程,以及《Spelunky XBLA》的開發概念。以下是該場演講的內容記錄,以及一些個人的看法補充。
Derek Yu在《Spelunky》之前就曾經製作過多款獨立遊戲,其中規模最大也最成功的是2007年時發表的《Aquaria》,這款作品也成了當年IGF的最大獎得主,而Derek Yu目前所致力於開發的下一款大型作品,就是將《Spelunky》發展為完整商業化作品的《Spelunky XBLA》。
不論是早年的《Eternal Daughter》或者是近年的《Aquaria》、《Spelunky XBLA》,這些較大規模的作品每款都花上Derek Yu兩年左右的開發時間,不過在開發這些大型作品之間,他也製作了許多的小型遊戲,而他認為這些小型遊戲,往往是大型遊戲的原點。這種演變可能是直接或非直接的,例如《Aquaria》有許多要素,是從《I’m O.K.》這款小遊戲演變而來的,但光看這兩款遊戲的畫面可能根本看不出兩者間有什麼關聯性;另一方面,《Spelunky XBLA》就很顯然是《Spelunky》的直接進化了。
因此Derek Yu說,他所製作的小型免費遊戲,其實就像是一種實驗性的雛型,而這些小prototype,概念可能是來自其他更小甚至根本沒有做出來過的portotype。以作畫來比喻的話,他把這些portotype當作是塗鴉,不要太在意有沒有「創造」出什麼作品,就是單純have fun,並且從中提取或激發出一些點子。如果prototype是塗鴉,那麼開發工具就是速寫本,Derek Yu採用的是Game Maker,不過其他像Flash、Unity等等開發工具也都是OK的,重點是輕便簡單用得順手就好。
Derek Yu接著展示了一個Rogue-like的遊戲圖片,而這就是《Spelunky》的prototype。
Derek Yu指出Rogue-like遊戲的特性是:回合制、具策略性、隨機的關卡產生、Permanent death(註)以及多變化性。而這種遊戲特性的優點是遊戲有很高的耐玩度,而且非常刺激,遊玩的過程帶有許多即興成分,但相對的,Rogue-like遊戲也有著畫面表現單調、遊戲步調緩慢、介面複雜和很容易磨掉玩家耐心的缺點。
註:美式RPG用語,指腳色只有一次性的生命,一旦死亡就是永久的死亡,亦無法透過讀檔等方式回復到先前的狀態。
當然也不是所有Rogue-like遊戲都符合上面所提出來的特性,就以Derek Yu自己舉的Rogue-like遊戲例子:《Diablo》、《Minecraft》和他強調自己很喜歡的《ToeJam & Earl》來說,雖然無疑都帶有Rogue-like的要素,卻也不是那麼典型的Rogue-like。
再來Derek Yu把話題轉到Platformer,也就是平台式的動作遊戲,特性是動作導向、考驗反應能力、關卡是預先作成。這樣的遊戲優點是操作簡單,而且成就感的獲得是立即性的;但缺點是遊戲性很容易重複,而且也沒辦法即興的玩。
話題會這麼一轉的原因是,原來Derek Yu在開發那款Rogue-like的prototype時,同時也還有兩款Platformer的prototype在製作著。而從這張圖就可以看出,prototype內其中一些元素在之後被運用到了《Spelunky》之中。
當時這幾個prototype的完成度其實都還在很初期的階段,Derek Yu卻開始有了或許可以將其結合在一起的想法,《Spelunky》的開發概念就這麼誕生了:動作導向、考驗反應能力、隨機的關卡產生、Permanent death、以及多變化性。
將Rogue-like與Platformer兩者的特性相結合後,缺點也巧妙的相互彌補了,產生了一個高可玩度、簡單、而且可以玩得相當隨性的遊戲。
而這樣的遊戲概念在實作上最大的挑戰就是關卡本身了。一個平台式動作遊戲能夠帶給玩家多少樂趣,就取決在關卡設計的良莠,而相對的,Rogue-like的魅力,則在於不可預期的隨機關卡。換言之,這兩種特性的結合可能是優缺點的互補,卻也有可能落得兩頭空。
首先Rogue-like隨機產生式的地城,其實是一種top-down view的結構,並不能夠直接讓採取side view的Platformer套用,因為那必然的會產生很多死路,關於這點,《Spelunky》先是很巧妙的藉由炸彈和繩索的加入避免掉完全的死路,並以地底探險的主題將其兜了起來。
整體關卡內容的產生上,首先每個關卡是由4*4個空間單位所組成,接著,在最上列產生起點、最下列產生終點,然後在起點和中點間規劃出由上而下、必然能夠通過的路徑。
每個空間單位其實是有設計好一些樣板的,以確保路線能夠正確的彼此相連,接著讓這些樣板隨機長出一些地形,讓相同的樣板也充滿了許多的變化,最後只要再加上怪物、陷阱、寶箱等等物件,關卡的產生就完成了。
這種關卡地形產生的製作方式讓一個小團隊有能力去生產出許多的內容,Derek Yu甚至形容說這是透過一兩個人的手就能夠創造出一個世界的感覺,而這種即時生成遊戲關卡的方式,當然也令遊戲每次進行時都有不同的體驗,讓遊戲常保新鮮感與刺激感,即使他自己開發了這麼久、歷經兩個版本的《Spelunky》,他依然可以從中獲得一些意外的樂趣。所以這種設計方式還有一個好處,那就是開發起來也很有趣!
接著Derek Yu所討論的話題是免費遊戲在商業開發中所扮演的腳色。《Spelunky》並不是第一個免費遊戲轉為商業遊戲的例子,例如《Super Meat Boy》一開始也是免費的Flash遊戲《Meat Boy》。拿google來說,他在一個成熟的服務推出前,也嘗試過許多實驗性的服務以吸取經驗。而這種方式的創作並不限定型式,又例如知名小說家村上春樹,在長篇大作之間,也寫過許多短篇幅的小說。因此,這種小型、免費公開的開發案,主要是用來實驗一些點子、用來放鬆自己,用來作為兩個大型開發案之間的調劑。
下面這張圖很精確的表達出Derek Yu的開發脈絡XD
演講的下半部分,則是由《Spelunky XBLA》的主程式Andy Hull來進行。首先《Spelunky》是什麼樣的契機之下開始發展成《Spelunky XBLA》的呢?其實這是來自於Jonathan Blow的提議。Jonathan Blow何許人也?正是大名鼎鼎的《Braid》作者(站上不久前剛好分享過一篇Jonathan Blow: How to program independent games,請前往參考)。Jonathan Blow表示他很喜歡《Spelunky》,主動聯絡了Derek Yu是否有將《Spelunky》搬上XBLA的意願,Derek Yu當然沒有拒絕的理由。藉由Jonathan Blow的牽線,遊戲提交到微軟進行開發審核,因為《Spelunky》本身已經是個高完成度的遊戲,不但遊戲長什麼樣子一目瞭然,更早就有一票支持者存在,這審核當然就相當順利的通過。
這樣的開發方式會面臨到的狀況是,玩家會因為玩過免費的《Spelunky》而對《Spelunky XBLA》充滿期待感,但相對的,《Spelunky》呈現過的點子也已經無法讓玩家感到新鮮,而必須要有更多的強化。當然,跟開發免費版《Spelunky》時期不同,現在開發者手中已經擁有許多來自玩家們的意見可以做為參考了。
Jonathan Blow對《Spelunky》的厚待還不只如此,他甚至允許Derek Yu與Andy Hull使用他的《Braid》原始碼來製作《Spelunky XBLA》。Jonathan Blow為何願意做到這種程度,Andy Hull只說:”Because he is AWESOME.”
使用《Braid》原始碼來製作新遊戲的好處是很容易起步,而且還可以從中學習到很多技術,而他們也確實使用了《Braid》的原始碼製作出初步版的《Spelunky》,但接著他們遇上了更多的問題。首先,畢竟程式不是出自於自己的手上,有許多的程式碼他們難以理解,這也造成了運用和除錯上的困難。同時,《Braid》和《Spelunky》雖然同樣都是Platformer形式的遊戲,彼此所訴求的方向卻不同,《Braid》那讓人驚豔的時空回溯系統在這裡根本用不到。最後,《Braid》開發時所使用的XDK版本時至今日已經有些許過時,讓他們在遇到一些狀況時會根本不知道是哪裡出了什麼問題。
所以,他們還是決定自己製作一個專屬的引擎。因為他們已經有《Spelunky》這個再明確不過的原典可以參考,所以遊戲引擎需要哪些功能也很容易規劃,撰寫程式碼時也可以確保用的都是自己看得懂的寫法,除錯上也更加容易、之後還可以運用到其他的遊戲上。當然缺點就是需要花費額外的時間開發引擎,並且需要重寫很多基礎項目。
至於《Spelunky XBLA》會是怎麼樣的遊戲,Andy Hull說這並不是把《Spelunky》給HD化了事這麼簡單,與其說是移植,其實更像是用一個續作的規格在製作《Spelunky XBLA》。因此,在遊戲的製作上不能夠害怕改變太多原作的要素,畢竟再怎麼說,《Spelunky XBLA》不是《Spelunky》,而《Spelunky XBLA》出現後,《Spelunky》也依舊存在。
其實上面特別這樣說這一段,有點讓人害怕遊戲會不會改爛、為了創新與改變而多出太多蛇足,當然Andy Hull表示會去改變的不會是那些運作良好的部分。接著就說明了《Spelunky XBLA》有哪些改進之處。首先,畫面的進化是一眼就看得出來的,接著則是操作介面的改進。Andy Hull自己也說其實《Spelunky》原作的操作方式在一開始是很讓他覺得困擾的,尤其是在商店購物的這部分,買個東西的步驟要使用到多個不同的按鍵這點很少人能夠一開始就搞懂,不過在《Spelunky XBLA》裡面將會修改得較為直覺。其他當然還有的改變就是新敵人、新道具的加入,以及本地端與網路多人遊戲的支援。雖然還沒能發表預計上市的日期,Andy Hull也就是請大家多多期待了。
Andy Hull所作的結論是,免費版的《Spelunky》在《Spelunky XBLA》版的開發過程中,就如同一個互動設計文件一樣,讓遊戲在製作上有很多可以明確遵循的方向。而其實由網友所編撰的「Spelunky Wiki」也在開發過程中發揮了一些參考效用。他認為,免費版《Spelunky》釋出後所獲得的效益其實遠比一般想像的大很多,因此,將小遊戲給做到好,累積起來的經驗將能夠創造出大型的商業價值遊戲。
《Spelunky XBLA》宣傳影片:
註:引上所引用之圖像、遊戲畫面,其所有權利屬原著作人或著作公司所有。