獨立團隊是如何飛上高天的:《浮天小子》開發(fā)手記

和其他所有獨立游戲開發(fā)手記一樣,所有的故事都開始于一句:“如果我們……”

編輯星詠2015年09月11日 18時43分

編者按:這是一篇非常非常長的開發(fā)手記,詳細記錄了《浮天小子》(Heroki)的開發(fā)經(jīng)驗和教訓,原文發(fā)布于Gamasutra,由觸樂編譯。這款游戲曾經(jīng)獲得蘋果的全球首頁大圖推薦,你可以點擊這里來獲得詳細的游戲評測和視頻。開發(fā)者對評測中提出的諸如“關卡過長”的一些問題,給予了正面回應。同時把自己在開發(fā)過程中走過的彎路一一細數(shù),想必能給各位游戲開發(fā)者一些借鑒。這里是他們的官方博客,里面有更加詳盡的資料。

 

和其他所有獨立游戲開發(fā)手記一樣,所有的故事都開始于一句:“如果我們……”

當iPhone3GS推出的時候,Michael Balm(音樂家,特效制作)是我們之中第一個買蘋果手機的,并且把它看做一個嚴肅的游戲設備。他和Bobby Bouman(3D效果制作)詳細交換了相關的意見。不過在當時,Bobby Bouman在Triumph Studios制作某個3A的主機游戲,他覺得手機游戲?qū)嵲谔^簡單,而且也不看好移動設備作為游戲平臺的前景。

隨著時間流逝,iPhone逐漸證明了自己在游戲方面的潛力。我們逐漸產(chǎn)生了“在這個平臺上搞點什么”的想法。一天夜里,當我們一起滑冰的時候,Bobby和Jeffrey Kamermans(程序員)聊起來移動游戲開發(fā)的事情,并且最終同意加入我們。而在鹿特丹的一次旅行中,我們邀請到另外一個朋友, Jimmy de Meza,來擔任游戲的概念設計。

如果我們把自己的專長都集中在一起,會做出怎樣的游戲?由于我們都有自己的工作,所以游戲的開發(fā)只能在業(yè)余時間完成。這就決定了這款游戲必須具備兩個特點:要足夠小(沒錯,?。?,要足夠有趣。

Picomy_TeamPhoto
開發(fā)團隊Picomy的合影

在一開始的時候,我們有無窮無盡的點子和想法。為了檢驗這些點子的可行性,我們開始為這些點子匹配合適的游戲機制。我們所想到的第一個游戲十分簡單:玩家在游戲中需要操作一輛載滿了乘客的公交車,在一條顛簸的路上行駛,汽車每顛簸一下就會有幾名乘客掉出來,最后在終點以所剩的乘客多少來定勝負——對于我們來說,這個游戲足夠簡單,也足夠有效地磨合了團隊。

團隊的所有成員都十分喜歡“有趣”甚至是有點怪異的游戲機制,我們決定通過自己的作品,探索移動平臺上可能的游戲機制。在制作游戲的過程中,負責程序的Jeffrey正在做其他完全不相干的小項目,但是他將自己的靈光一閃告訴了我們。多虧了他的點子,我們第一次發(fā)現(xiàn)了最適合觸屏設備的操作方式:在觸屏設備上,我們可以把一個物體進行360度旋轉(zhuǎn),推來推去。就好像一陣風把屏幕里的世界吹過一樣,你的指尖就是那陣風!這是第一個得到我們所有人認可的游戲原型,太完美了!

很快,我們就發(fā)現(xiàn)這個新的思路背后有無限的潛力。所以我們就中止了“公交車”項目,全力發(fā)掘這個新點子的潛力。根據(jù)這個機制,我們最初的游戲原型是一個迷宮游戲,玩家需要在不驚動任何守衛(wèi)的情況下走到終點。開始,我們覺得一年怎么也能做完了。沒想到,這個小點子做成了一個大項目,而且居然做了有5年。

我們做對了的事情

新平臺上的操作方法

在一開始,我們就知道自己必須圍繞新的操作方式來做文章。核心玩法一旦確定,我們自然而然地產(chǎn)生了很多新的想法。而我們最終的目標,就是做一個向諸多經(jīng)典游戲致敬的冒險游戲。

嚴格來說,《浮天小子》并不能算作平臺過關游戲,因為它會飛!之所以給它增加上飛行功能,為了體現(xiàn)游戲獨特的操作。游戲在保留了原有的平臺游戲的要素和挑戰(zhàn)性,同時因為有了新的操作方式,又大大提高了角色的自由度。

Heroki_Character_Development
游戲主角Heroki,看起來和一個淘氣的小男孩一樣

Heroki可以去到地圖上任何一個地方探索——我們在設計探索地圖的時候也試圖將兩種玩法結(jié)合起來:玩家既可以干掉那些敵人;也可以躲開那些敵人不做理會,不過這樣做的話,玩家會喪失掉一部分挑戰(zhàn)性和樂趣。我們在設計關卡的時候,時刻提醒自己:我們的關卡是用來邀請玩家探索,引導玩家戰(zhàn)斗,而不是難為玩家的。但,具體要怎么戰(zhàn)斗呢?

傳統(tǒng)的平臺游戲是通過跳躍或者是把敵人踩扁來進行攻擊的。但這種方式并不適合我們的游戲,因為我們的Heroki會飛,讓它直接跳起來會顯得有點蠢,所以我們需要一個更符合游戲風格的角色跳躍方式。而如果允許角色隨時隨地都能攻擊,我們又認為太過簡單,所以,我們想通過一個類似“扳機”機制來對攻擊的時機做出調(diào)整。這個“扳機”應該在點擊之間就可以觸發(fā),當玩家點擊目標的時候,Heroki就會自動朝向那個方向;當玩家按住目標的時候,會觸發(fā)新的機制:Heroki會拿起箱子,按住目標的時候調(diào)整方向,當玩家松手的時候它會把箱子丟出去,這是他基本的攻擊手段。這種攻擊的流程是受到了彈弓的啟發(fā):按住、拉回來、射擊。

584_2015072590806941
這是一張自帶BGM的圖

到了這個時候,我們已經(jīng)有了所有的基礎游戲機制。但是當我們自己試玩游戲的時候,總是覺得缺點什么:游戲的節(jié)奏在有些地方總是顯得太慢了。所以,我們加入了一個新的機制:自由落體,Heroki可以進行自由自在下潛,這讓整個游戲的節(jié)奏都變得更快。玩家通過快速單擊就可以實現(xiàn)這個操作(根據(jù)選擇模式不同略有區(qū)別)?!白杂陕潴w”是《超級馬里奧》和《索尼克沖刺》里的跳躍,只不過是反方向的——它是我們游戲機制之拼圖上缺失的一塊,有了它讓整個游戲的節(jié)奏和深度都更加完整。

隨后,我們又加入了“沖刺”、“背刺”和大環(huán)境中風隨后,我們又加入了“沖刺”、“背刺”和大環(huán)境中風力的影響等附加能力,試圖讓游戲變化更多。因為有了風的影響,我們必須設計一套新的觸發(fā)機制,這樣才不會和原有的機制有所沖突,比如說從屏幕邊緣畫出風的軌跡。在這之前,我們并沒有見過類似的操作方式,但是這個方式出奇地好用。

在觸屏設備上,不通過任何虛擬按鍵設計如此之多的手勢,并且對每一個都明確區(qū)分、防止誤觸是一件很有挑戰(zhàn)性的事情,尤其是當我們決定只用一根手指就完成全部操作的時候。同時,所有操作必須足夠簡單,因為只有為數(shù)不多的幾個手勢是可以被用到觸屏設備控制上的。我們客服了這些挑戰(zhàn),最終呈現(xiàn)出來的成品看起來十分簡明易懂。

美術方面

我們希望《浮空小子》的美術風格能被足夠多的人所接受,這樣玩家才會耐心去探索游戲的每一個角落。并且希望能讓玩家感覺到自己置身于一個美麗的幻想世界中。

在確定現(xiàn)在的風格之前,我們也做了一些嘗試,但是從頭到尾的大方向沒有變。我們的游戲應該有一副老少咸宜,造型有趣,顏色鮮明的好皮相,既可以被廣為接受,而且還讓人印象深刻。

這是我們最初的概念圖:

heroki-pic-1
概念圖

我們從小時候的那些游戲中得到了豐富的營養(yǎng),比如《超級馬里奧》《大金剛》《超級索尼克》《星之卡比》,每一個游戲都有自己獨特的風格。就Heroki而言,我們期待這個角色能有很高的辨識度。比如他用來抓取東西的長胳膊,可以讀取表情的大腦袋,小小的身體和短腿,都說明這個角色是偏重飛行功能的。

之所以選擇3D游戲是為了表現(xiàn)空間感。當我們開始制作《浮空小子》的時候,iPhone 3gs的內(nèi)存并不足以實現(xiàn)我們想要的效果。如果制作2D游戲,很容易出現(xiàn)內(nèi)存崩潰的情況,用3D的就可以解決這個問題。我們決定使用通用材質(zhì),這樣可以制作許多不同的場景和形狀。當2D圖像轉(zhuǎn)化成3D圖像的時候,我們盡可能保留了2D概念圖的風格,很高興我們做到了!

heroki pic 3
耗時又長又累人的AO效果

隨著開發(fā)進程的推進,我們逐漸增加了越來越多的視覺特效:實時陰影、 邊緣光材質(zhì)球、 明暗漸變、溶解特效、鏡頭耀斑等等。很快我們發(fā)現(xiàn),這些效果并不適合2D表現(xiàn),我們需要一個別的東西來營造氛圍。所以我們將自己的注意力轉(zhuǎn)到環(huán)境光遮蔽(ambient occlusion)上,這讓我們可以在保留2D效果的基礎上增加景深。唯一的問題在于我們的引擎不支持環(huán)境光遮蔽的效果,所以最后決定用頂點著色的方法來手工來增加環(huán)境光遮蔽的效果。手工加特效的好處在于,可以把精心挑選的顏色和材質(zhì)紋理進行最合適的匹配——我們甚至還配出了全局照明的效果!實際上,使用單調(diào)的黑色只會讓畫面看起來十分“臟”,所以對于顏色進行細微調(diào)整十分重要。但,手工添加環(huán)境光效果也有一些弊端:這個工作十分單調(diào),而且耗時十分長。

音效和音樂

《浮空小子》的音樂和音效為整個游戲奠定了基調(diào),歡快的節(jié)奏和Heroki飛行時的胳膊一起搖擺,希望各位玩家能夠聽到就開心起來。

雖然我們的音樂幾易其稿,但其中“歡樂搖擺”的調(diào)調(diào)從未改變。我們在游戲中用了大量動態(tài)循環(huán)的音樂,比方說,當Heroki在村莊的時候,玩家所聽到的是村莊主題曲和主旋律的混音。我們在大多數(shù)場景都用了這種方法增加背景音樂的豐富程度。在游戲地圖選擇界面時,當玩家切換不同的地圖時,背景音樂會強調(diào)不同的樂器;而當玩家在水下的時候,背景音樂也會為之一變。這些都是十分微小的改變,但可以讓玩家的視聽體驗更好。在《浮空小子》中,總共有40首不同的音樂(包括劇情過場)。

游戲的所有音效都是配合當時音樂的基調(diào)(global pitch)。從總體來說,游戲音效應該比音樂的音調(diào)要低一點,展現(xiàn)一種不同的調(diào)性。使用基調(diào)進行音效制作,可以很好地解決這個問題,達到最好的環(huán)境音效。我們最后在游戲中使用了900多個音效來營造氛圍。

合適的開發(fā)工具和優(yōu)化工具

heroki pic 4
《浮天小子》所使用的是開發(fā)者自研的游戲引擎

在2010年的時候,像是Unity或者是虛幻這樣的引擎都十分貴。我們沒錢買這些引擎的商業(yè)許可,所以就自己做了一個。這讓我們對游戲引擎有了百分之百的掌控權(quán),同時,開發(fā)引擎的過程也為我們提供了不少經(jīng)驗。

使用自研引擎其實有非常大的優(yōu)勢。我們可以輕而易舉地在穩(wěn)定性、幀率,以及加載速度上達到最好的效果。所有的部分,都能在不增加垃圾進程的情況下得到最恰當?shù)膬?yōu)化。因為我們對游戲引擎有著完全的掌控,所以成功實現(xiàn)了在蘋果全系列設備上都能以60fps的速度,向玩家展示華麗的特效和陰影效果。即使在老機器上運行游戲,我們也不需要犧牲視覺效果作為代價。這證明,我們當初選擇自研引擎是正確的。

不過,自研引擎也有一些缺點,構(gòu)建一個可用的引擎十分花時間。DIY引擎一方面在拖慢你的工作進度,另一方面在磨損你的耐心。控制好工作進度是非常非常重要的一件事,而這正是接下來要談到的內(nèi)容。

總體來說,我們的Picon引擎最后成為了非常有用的工具,我們?yōu)樗湴痢?/p>

業(yè)余開發(fā)=比較小的可能會有資金問題

對于手機游戲來說,5年的開發(fā)時間實在太長,甚至是聞所未聞。主要是由于是利用業(yè)余時間開發(fā),所以我們敢說自己有著全世界最寬松的游戲開發(fā)環(huán)境,想怎么做就怎么做。對于我們來說,沒有死線的壓力;SEGA在時間方面對我們也沒有步步緊逼,給了我們相當大的自由度。我們可以拍著胸脯保證:我們自己也很愛玩《浮天小子》,并且我們把所能想到的點子都放在了游戲中。

我們的成員都有穩(wěn)定的收入來源,并且沒有直接在做游戲上花錢(除了時間、必要的軟件許可和個人貸款什么的)。盡管會有一些麻煩,但是這種開發(fā)方式讓我們的成員都感覺很舒服。

Heroki_HomeTown01
左圖為2012年游戲成品,右圖為2013年游戲成品

我們做錯了的事情

工作進度

因為我們主要是以進度為中心,并不能投入足夠的時間去熟悉合適的工具。制作關卡時,選擇合適的工具十分重要。在開發(fā)的最后幾年,我們沒能在在關卡編輯器上運行過游戲,也不能在Mac的模擬器上運行游戲——因為游戲太大了!

為了測試游戲,我們不得不:

1、提交文件到服務器,然后等著,直到壓出來一個合適的工程文件;

2、把工程傳到Test Flight或者iTunes Connect;

3、從Test Flight下載游戲到手機或者平板上,這時候才能看到測試版游戲有什么問題。

Heroki_Screenshot_Levantia
2015年的正式成品

我們必須在“做(找)一個好工具”還是“做一個好游戲”做出選擇,很明顯,我們選擇了后者。但我們不知道這個選擇是否正確:好工具無疑可以提升生產(chǎn)效率,不合適的工具會浪費時間——我們在反復的上傳和等待中深刻地認識到了這一點。

除了引擎方面的問題,異地工作并不像想象中那么高效,這也拖慢了我們的游戲開發(fā)進度(平時都是各自在家開發(fā)游戲的)。我們大多數(shù)溝通都是通過Skype進行,每次必須十分清楚地詢問對方才能避免誤解。即使這樣,依然時不時會出現(xiàn)成員之間對于一個玩法解讀不同的情況。萬幸的是,最終我們適應了這種遠程工作關系。

在項目快結(jié)束的時候,我們終于可以在同一地點工作了,這段時間我們的工作效率十分高。一同工作讓我們的創(chuàng)作和測試流程以及開發(fā)進度更加快。

毋庸置疑的是,我們自己工作進度控制十分差。不過,這種寬松的流程正是激發(fā)我們創(chuàng)造力的因素之一。不管寬松或者是嚴苛的工作流程,大家能一起工作,這個事情本身就是一份有趣又有益的經(jīng)驗。

計劃

好的計劃是成功的一半,它應該能對項目當前的進展有一個大概的描述——我們用一種非常慘痛的方式才認識到這一點。

關注了我們社交媒體的人,都會注意到:在游戲完成之前,我們說了很多很多遍“要做完了!”。

QQ圖片20150909170252
我們說了很多遍“要做完了!”

我們發(fā)現(xiàn)一個制定按部就班的計劃會花費很多時間,但我們都沒那樣的閑心。結(jié)果,我們做了一系列小計劃保證項目順利推進,但這些小計劃并不能做到總攬全局,也不能讓我們看到還剩下多少工作沒做。如果有一個切實可行的計劃,會讓我們對開發(fā)進程有更明確的認識。

我們向大家保證,已經(jīng)好好地吸收了這些經(jīng)驗教訓,在下一個項目中絕不再犯。

人際支持

在業(yè)余時間做這種規(guī)模的游戲,需要我們每個人都做出一些犧牲。對于項目的熱情讓我們放棄了一些陪伴家人、朋友和伴侶的機會。這些犧牲對我們的個人生活造成了一些影響,令游戲開發(fā)的最后階段舉步維艱。

試玩

雖然我們自己承擔了大部分游戲測試的工作,并且還找了專業(yè)的測試人員進行協(xié)助,SEGA方面也給了一些行之有效的建議,但還是發(fā)現(xiàn)這些測試結(jié)果遠遠不夠。

在游戲推出后,我們發(fā)現(xiàn)一系列的Bug,這些Bug無一例外的都可以在測試中發(fā)現(xiàn)。比如在iPad Mini上游戲會閃退,這主要是由于設置了錯誤的材質(zhì)大小,而導致內(nèi)存崩潰。這個問題很容易解決,但因為我們沒有在iPad Mini上測試游戲,所以沒有發(fā)現(xiàn)。由于類似這樣的Bug,導致一部分玩家在App Store上打出低分。

在游戲推出后的幾天再更新一個Bug修復版已經(jīng)成為iOS游戲的常態(tài)。4天后,在我們修復這個問題以后,我們收到了很多積極的回應,App Store的評分也有顯著的提升。

(對于移動游戲玩家來說)關卡太長了

在我們自己玩游戲的時候,可以在5到10分鐘就完成一個關卡。我們收集了幾位玩家總的通關時間,發(fā)現(xiàn)平均每位玩家完成一關的時間在20到30分鐘。雖然這不是什么致命傷,但我們發(fā)現(xiàn),總有玩家在意料之外的地方卡住。

既然有喜歡某款游戲的玩家,就一定會有不喜歡某款游戲的玩家。我們很難說清楚到底什么游戲更加適合移動游戲市場。但現(xiàn)在我們知道,在iOS平臺上玩家比較喜歡短小精悍的游戲流程和簡單易懂的游戲設計。這個結(jié)論看起來如此簡單易懂,但是和我們的初衷相反——我們的目標是制作在視聽效果和游戲性上都能達到主機品質(zhì)的游戲。因為市場上缺乏這樣的作品,所以我們想要把這樣的體驗在帶到移動游戲市場——盡管,這可能是一個比較小眾的需求。

結(jié)語

開發(fā)《浮空小子》是一場非比尋常的奇妙旅程。我們在其中學到了很多游戲開發(fā)的知識,和一個大發(fā)行商合作了5年——這只是開始?!陡】招∽印肥俏覀兊牡谝粋€作品。隨著游戲發(fā)行,我們的團隊也要“從頭開始”。我們一路上克服了各種困難,互相激勵。《浮空小子》已經(jīng)證明了我們能作為一個團隊工作,一起做出好玩的游戲。

游戲名:《浮空小子》

開發(fā)商:Picomy

發(fā)行商:SEGA

發(fā)行日期:2015年7月2日

平臺:iOS

開發(fā)人員名單:Michael, Bobby,Jeffrey,Jimmy

開發(fā)時長:58個月

開發(fā)工具: Picon引擎,Maya,Photoshop,F(xiàn)L Studio等

0

編輯 星詠

hanna@chuapp.com

未來寫在水波之上。

查看更多星詠的文章
關閉窗口