開發者總結Android遊戲《激流快艇》移植經驗

注:本文原作者是Vector Unit開發者Matt Small,主要講述XBLA遊戲《Hydro Thunder Hurricane》化身《激流快艇》成功移植到Android平臺的相關經驗。

2010年六月,Vector Unit開發團隊度過了一段既驚又喜的時光。我們剛剛結束第一款遊戲《Hydro Thunder Hurricane》的開發工作,時間和預算上都做好準備了,就等著在XBLA夢寐以求的遊戲夏季展(Summer of Arcade )華麗亮相了。早期的評論不錯,銷售預測表明,不到年底,我們就能收回版稅了。

通過釋出《Hydro Thunder Hurricane》的DLC(可下載內容),我們仍然有一點收入——這足夠我和一個合約美工維持一整個夏天的工作了。因為接下來的工作不太需要程式方面的配合,所以我的合夥人Ralf Knoesel和首席程式師都去接EA Visceral的《Dead Space 2》的單子了,與此同時,我們繼續向微軟和其他發行商推廣其他新專案。

我們有些非常了不起的新遊戲概念,我們認為有朝一日必定會有伯樂相中,雖然我們的想法相當天真,但從來沒有失敗。一方面,在發行商的觀念裡,我們是就是搞“競速遊戲的工作室”,但最近的競速類遊戲已是多不可勝數,這類新遊戲的市場需求並不大。

《Hydro Thunder Hurricane》釋出於七月份,獲得評論一面倒的好評,並大受玩家歡迎。按一般的XBLA標準來衡量,銷售成績相當喜人,雖然沒有像我們期望的那麼好。看來,短期內自己湊齊下一款遊戲所需的資金還不太可能,或者至少沒那麼快。十月份,我完成了《Tempest Pack》的工作,Ralf和EA的合約還沒完,而我們眼下也沒有明確的新專案計劃,我們的下一步要走向何方成了一個緊迫的問題。

十一月初,我們接到來自NVIDIA的一個令人驚喜的電話。這家晶片製造商打算攜帶其雙核Tegra 2處理器進軍Android手機和平板電腦市場,而現在它正在物色能夠展現其新硬體能力的遊戲。NVIDIA公司裡的人玩過我們的《Hydro Thunder Hurricane》後,想知道我們能否做出和那款遊戲差不多水準的手機遊戲。

這個專案確實出乎我們的意料,難度真大。我們雙方都沒涉足過手機遊戲。我們也不清楚Tegra 2是不是真有能力,或者說,它有沒有可能實現360平臺上的水上運動效果。此外,預算很緊張——我們不得不在開發費用上四處籌資,補缺補漏;日程安排也是頗有挑戰性——二月份要上初版,五月就出成品。

三月份MWC大會之後的遊戲演示畫面(from gamasutra)成功經驗

1、立足於《Hurricane》的基礎

如果沒有《Hurricane》,我們斷然不可能按時交付《激流快艇》。

Vector Unit擁有所有用於開發《Vector Unit》的技術,所以二月初我們著手製作《激流快艇》時,藉助現成的全功能、跨平臺的引擎,我們可以直接進行在PC上開發內容,同時,Ralf就把低階部分移值到Android的NDK上。

當我開始製作第一個垂直切片的原型時,Ralf很快就發現,Tegra 2的CPU完全勝任與《Hurricane》中相當的流體動力模擬。他可以把為360平臺編寫的所有水、波和子彈的物理程式碼移植過去,只需要小小調整或完全不必調整。這不是說,程式碼方面我們就沒有什麼困難了(注:詳見下文的“失敗教訓”這一環節)。但總的來說,我們在《Hurricane》跨平臺基礎上的付出有所回報了,移植Android平臺的過程相當順利。

主場景的部分是在Maya中建立和組裝的,然後移到向量引擎遊戲編輯器(from gamasutra)

兩年的水上競速遊戲設計經驗和教訓使我們受益匪淺。我們知道,打一開始,我就會遇到許多能做和不能做的東西,還有些我們想改變的東西。

例如,我們從未自滿於《Hurricane》的水體模擬技術——它確實太逼真了。當你看到高速的海上競速,快艇卻不會陷進水中——在100英里/時的速度下,水面就像瀝青鋪成的路一樣硬實。但在遊戲裡,玩家希望體驗到的是那種柔軟的感覺。

在《Hurricane》中,我們一開始使用的是現實水體模擬,再用逆向工程技術軟化水體,這樣快艇就會稍微陷進水中。至於《激流快艇》,Ralf 深入模擬水基,調整了下面的浮力和阻力運算,這樣,水體的感覺就會更舒適、更柔和,同時仍然保有真實水體運動的特點。

如果我們從頭開始,不足五個月的開發週期根本不容許我們搞研究和反覆測試。我們選取了《Hurricane》中的精華,剔除了不適用的部分,水上競速遊戲的玩家將在《激流快艇》中獲得《Hurricane》所具有的完美體驗。

2.嚴格的設計規範

我們帶著四個相當明確的根本目標著手《激流快艇》的開發工作。

首先,作為Tegra 2的展品,無論是技術還是畫面,必須讓人印象深刻。第二,它針對的是手機平臺,所以它必須具備易用、易運轉的遊戲機制和簡短的(2到3分鐘)的體驗時間等特點。

第三,我們希望遊戲俱有足夠的重玩價值來支撐其“物有所值”的價格——這並非因為我們有對付免費模式或99美分低價競爭的法寶,而是因為我們認為,市場上使用這種高階新裝置的使用者還不夠多。

最後當然就是,我們必須能夠以二人之力、四個月半的時間完成遊戲……主要是因為我們希望自己的作品能成為新平臺遊戲中的一員。我們的第二個目標——簡單、簡潔——與緊張的日程安排配合得天衣無縫。但要保證畫面達到掌機遊戲的水平,同時控制開發時間,這確實是個挑戰。為了製作足夠的內容,特別是場景,我們得模組化所有工作,儘可能地引用和重複利用圖形和材質。

這種重複利用使我們的程式包大大“瘦身”;最終我們成品大小沒有超出谷歌的50MB上限,並且不需要下載額外的資料,遊戲的下載速度非常快,所以連下載進度條都省掉了。

在我們最初的設計說明和創意開發階段,我們狠下心拋棄了所有可能偏離核心目標的元素。有許多元素其實還是很不錯的——線上多人模式、自定義角色和工具等全都被棄置一旁。

關注核心遊戲玩法,加快了我們的開發進度。大約二個月以後,遊戲完成了,操作上非常過癮,但整體體驗仍然略顯單薄,所以我們決定重新引入之前剪掉的機制。通過空中組合特技這種新功能,可以讓玩法獲得更理想的效果。

特技給遊戲增加了額外的樂趣。動作特技樂趣十足,同時增加了這款遊戲原來缺失的冒險感。

3、上手快

《激流快艇》是我們從事了數年的掌機遊戲開發後,第一次設計和製作的手機遊戲。我們不想把遊戲做成休閒派,但我們覺得這款遊戲在難度和控制機制上應該更適合休閒玩家。

掌機上的競技遊戲,甚至是如《Hydro Thunder Hurricane》這樣的街機競技遊戲,往往在技術上頗有挑戰性。大多樂趣和獎勵都來自對工具的熟練操作、物理的精通、速度的謹慎控制以及在不同的拐角和軌距之中挑選理想的賽道。另一方面,手機競速遊戲的普遍問題是,加速器啟動和自動加速確實不能達到嚴苛的完美狀態。

我們沒有這些不足上掙扎,而是坦然的接受現實。我們的交通工具和軌道佈局設計都滿足全速駕駛,只有玩家跑錯拐角了才會剎車。我們希望讓玩家感受到遊戲的快速和流暢,另外,我們留心地設計了Wipeout系列的賽道佈局——基本沒有不規則或死角來“陷害”玩家——撞牆後,玩家會減速,但還是可以繼續前進。

結果,《激流快艇》當然非常容易上手和操作。玩家在大部分賽道上都可以讓遊戲自己執行下去——雖然只能得最後一名,但畢竟是完成比賽啦。深度和挑戰來自學習在拐角的加速、水波的阻力、其他選手的追尾和掌握特技表演的時機。

起先,我很擔心遊戲太過簡單。但我們把遊戲拿給周圍的朋友做三個難度級別的測試,我們發現, 這款遊戲既適合休閒玩家,也不排斥硬核玩家,總之,休閒玩家不感到受挫,硬核玩家也不覺得無趣。

360平臺的Hydro Thunder引擎所表現出來的概念畫面,此時還未移植Android平臺(from gamasutra)

4、專注

跳上Tegra 2這班列車對我們來說是一個絕好的機會。從產品的角度來看,這意味著我們更容易管理專案。在iOS平臺,你必須保證硬體和軟體更新的一致性,而硬體和作業系統的分裂性對Android開發者來說確實是一個嚴峻的考驗。

出於對Tegra的“情有獨鍾”,我們始終保持表現和技術標準的一致性。因為大多數社備是新的,所以我們只需擔心一些Android作業系統的不同版本。一致性大大簡化了我們適應性測試要求……太好了,因為我們本來就沒有多少時間搞這些。

另外,因為我們專注於這個平臺,得到了NVIDIA的鼎力相助。這家公司給我們提供了開發硬體和即將釋出的裝置作測試。它的技術小組幫我們評估程式,然後給出關鍵的優化反饋。它的營銷小組將我們引見給許多分銷商和生產新裝置的製造商,它們當然也在尋找能夠豐富產品的新遊戲。他們的支援給我們製造了許多必要的曝光機會。

5、收益分成

好吧,我們都知道這個,但我還是要說:傳統的遊戲贏利模式,即由發行商墊上扣了版稅的款,真的不是很妙!

製作《激流快艇》時,我們得到的最大的好處就是,繞過傳統模式,成功地為遊戲集資——我們自己的資金加上第三方投資。正如我在介紹中提到的那樣,NVIDIA幫了我們一把。這家公司把我們介紹給Flashman融資公司,這是一家位於舊金山,幫助小工作室集資開發的公司。Flashman同意墊付一筆我們需要的資金,並以分享收益作交換;我們自己拉到其他投資金,補差補漏。

這筆生意讓我們收穫了兩大好處。一是我們保住了自己的原創所有權,這意味著,經過短暫的Tegra“專屬期”後,我們可以把遊戲放到任何我們想放的平臺。

第二個更棒的地方是,我們和其他投資者共享遊戲的收益。傳統的發行商模式,扣除開發商的版稅後的初期投資收回本前,開發者別指望撈回自己的那一份子。等到有收益時,發行商獲的利潤比他們的最初投資還要高几倍。而在收益分享的模式下,所有投資者——包括我們,都可以根據我們各自的投資水平,從第一天起就一直共享收益。

失敗教訓

1、移植引擎的失誤

二月的頭幾周,也就是我們把Vector引擎移植到Tegra 2開發硬體上的時候,遇到了點小麻煩。

我們已經簽約要給 NVIDIA交付一份內部演示樣片,且那份演示樣片將在二月初的MWC上展出。在真實預演方面,我們不知道能對硬體能抱什麼期望,但我們確實抱了很大的希望。我們沒有完成的就是紙質說明和NVIDIA及之前採用過Tegra 2的開發者稱其能在手機上實現“掌機遊戲品質”的豪言壯語。

好吧,儘管新硬體的宣言確實是真的,但事實有點兒複雜。正如之前我所說的,把我們的360/PC跨平臺引擎移植到Android NDK上很順利。直到第二週底, Ralf升級了我的粗糙原型,並且放到Tegra 2開發工具箱上執行,從某些方面講, Tegra 2硬體的表現超過了我們的期望。

CPU太強大了——它不但能容納我們的水體模擬器和液體計算器,我們的Bullet Physics,還有我的高聚模型,甚至還餘下大量可用空間。

但GPU卻是另一回事。 我們被填充率害死了,幾乎半個螢幕都讓透明的水體大網格霸佔了,真是很棘手的問題。我們很快意識到複雜的畫素著色器只“衷情”於360,根本不許我們使用高速競速遊戲所需的幀率。

我們改進了著色器,把所有”per-pixel“換成”per-vertex“(注:著色程式中的一種優化方式) 、然後在所有可能的地方轉換低精度的運算器。我們把水平上的正常對映波紋丟掉,增加了網格的密度以保持我們需要的打破反射時的複雜度。我拋開自己的老式美術技術,把光打到頂點色上,在擴散材質上繪製光的細節,嚴格管理紋理和網格引數以保證GPU管道盡可能呈開啟狀態。

NVIDIA在整個過程中都在表現分析方面給予大力支援。最後,我們總算把第一個遊戲MWC演示樣品交付出去了,至於畫面的質量,從不太專業的角度看,確實能和現代PC或掌機遊戲相媲美了。手機平臺的技術發展速度相當驚人,我認為數年之後,即使內行玩家也很難辨別某張截圖是出自高階掌機還是手機遊戲。

模型、動畫和著色器調整都是在Maya 2008上完成的(from gamasutra)

2、創意的再利用

一開始, 我們知道內容創意是開發《激流快艇》的重要路子。不像程式碼,我們已經大膽地照搬,但我們不能重複利用《Hurricane》中的任何內容了(注:例如模式、紋理庫等等),所以我們只能從頭開始。

當我第一次分解我那4.5個月的美術日程表時,它看起來相當嚇人。大約4周製作摩托艇、角色和動畫,10周製作場景,5周處理其他東西,如UI、微粒特效、潤色和優化及所有不可預測的東西。場景製作的日程安排是最緊張的。平均算來,我有大約6到7天的時間來完成六個主要賽道中的一條,還要分配另外一兩天來製作各個相反的變體,因為我想每條賽道在獨一無二的光照和水紋條件下,至少得有一點點不同吧。

唯一可行的解決辦法就是,老老實實重複利用和例項化,一定程度上,我做到了——賽道是根據例項片段製作的,我找盡一切機會在賽道上重複利用和迴圈利用紋理和幾何圖案。但我忍不住要把每條賽道都做得獨一無二,所以我並沒有把現成的東西全部重複利用。

最終,我還是按老方法完成了,儘管著實下了一番苦功,費了老長的時間。但我不太在意——這是一份有創意的工作,我前面說過了,我們就是要盡心盡力地做高質量的遊戲。在《激流快艇》釋出的前一天晚上,我還在潤色和調整遊戲的細節。當我們最終按下發布鍵時,我這才長長地舒了一口氣。

我們使用視覺化的指令碼元件完成了所有遊戲指令碼(from gamasutra)

3、小團隊的挑戰

我們不打算兩個人完成製作《激流快艇》的重任。我曾想過我可能會在一兩個月內結束美工外包合約,然後我們就有了些預算均給聲音設計和音效製作。

但因為我們是自己掏腰包出了部分製作《激流快艇》的費用,所以我們控制低成本方面的慾望非常強大。也因為我們的日程安排太緊湊,我們覺得我們也沒辦法均時間給外包工作。

所以我們全速前進。我的日程表從頭到尾塞滿了美工任務。但結果是, 自完成圖形引擎的優化後,Ralf的程式設計日程表開始鬆動了。所以他接手了大量混雜的內容任務,包括聲音設計和音樂策劃(我們在資源網站如Audiomicro上外包了大部分音樂任務)、畫面流程指令碼,甚至部分微粒特效。

小團隊總是會遇到各種麻煩。如,我們這個非常小、非常小的團隊,其實連測試引數的房間都沒有。在專案的一開始,我們衝刺般地工作了3周,然後是2周,最後的1周,最後的最後,我們徹底拋棄了一頭猛衝的工作方式,只是跟著優先任務列表走,儘可能地擠時間。雖然困難,但這是一項有創意、有收穫的工作,我們不知怎麼地就按時完成了。但整個過程並不總是那麼精彩。

4、盜版問題

盜版在手機平臺是個沒人喜歡談的問題。對於平臺持有者來說,這有點令人難堪,我認為大多數開發商最喜歡的就是曝光這個問題。但盜版是個很實在的問題,特別是對於像《激流快艇》這種基本上是通過付費銷售而不是靠IAP贏利的遊戲。

我們採納了谷歌的建議,安裝了他們的Android市場授權稽核程式。Ralf努力掩蓋證書的程式碼,想法子至少克服自動木馬的問題(自動木馬會將證書御到新的可執行檔案上,然後自動釋出到盜版網站上)。要知道如果黑客團體確實想盜我們的遊戲,他們就要找個變通方案了,不過我們這樣做,至少夠他們死點腦細胞。

好吧,其實他們不必那麼努力。遊戲第一次釋出時,我們正得意洋洋,然後就在盜版論壇上發現了一個通告——自動授權證書根本不管用。但24小時以內,一個可以玩的破解版《激流快艇》就出現了。

根據我們的分析,盜版和正版的比率大約是9:1。我們的假設是大多數盜版者可能無論如何都不會購買遊戲,所以這些數字不能精確地解讀成銷售損失。

但讓人惱火的是,對於購買了遊戲的玩家,谷歌證書稽核嚴格過頭了,特別是,當使用者的手機網路連線質量不一時。我們沒有得到太多關於技術支援的電郵——我可以很負責地說,遊戲本身是很穩定的——但我們收到的大多數電郵都是關於失敗的證書稽核。這個問題只要一個字母就能解決了,但太費時間了,也太讓人討厭了,我們幾乎懷疑值不值得安裝證書稽核程式了。

5、專案推廣

除了XBLA的《Hydro Thunder Hurricane》,我們認為自己已經想出所有推銷的辦法了:放出一些帶螢幕截圖的新聞稿,預覽視訊,評論程式碼,然後實時監控。當然《Hydro Thunder Hurricane》著實”提攜“了它的“小弟”一把,但就我們所知,相同的策略多多少少也適用於掌機上的原創獨立遊戲。

但這一招在手機遊戲領域卻未必管用——Android遊戲要獲得媒體報道並不容易,更別說是Tegra專屬遊戲了。在主流遊戲網站中,少有提供專業的手機遊戲報道,就算有,提供的也多為iPhone/iPad平臺的大型遊戲。我寫這篇文章時,你在Metacritic上找不到任何一個Android遊戲。除了主流的遊戲媒體,主流科技網站,如CNet和Wired關注的也多為硬體和非遊戲軟體。

我們和Flashman的營銷團隊合作,竭盡所能地給《激流快艇》造勢。在新聞釋出會和貿易展銷會上(如MWC,GDC和E3),我們和NVIDIA和傳輸商/硬體合作商一起推廣遊戲。我們向所有主流遊戲和技術網站放出新聞稿、 預告片、截圖等。

儘管如此,我們向世界宣傳《激流快艇》的努力,收到的也不都是鮮花和掌聲,好吧,那不太公平。Joystiq報道了我們,許多小型或者中等規模的Android手機遊戲網站和部落格釋出了對我們的鼓勵和讚揚。但主流遊戲和技術網站對我們仍沒有多大興趣。

對於那些沒有報道我們的網站, 我們的問題來自一些基礎設施。 Android Market沒有任何預覽程式碼機制,所以要把你的遊戲傳送給媒體預先體驗實非易事。一個額外的挑戰是,很少網站擁有能夠執行遊戲的Tegra硬體。結果我們只好自己用一大堆預安裝了該遊戲的手機和平板電腦,向新聞界放出預覽視訊。

我明白缺少主流網站的關注,部分原因是由於平臺市場的佔有率。但我相信這也是因為部分主流媒體的偏見。手機遊戲的威信還不足,用完即丟的體驗,確實不能和開發給PC和掌機的“真正的遊戲”相提並論。但高階手機市場正在成長,並且比遊戲機市場的成長更迅速,新一代手機遊戲橫空出世,帶來的遊戲體驗絕對不輸傳統遊戲平臺。使用者已經看到這點了。但問題是,遊戲媒體什麼時候才能跟上腳步?

遊戲成品的截圖(from gamasutra)結語

《激流快艇》於5月20日投放Android Market。銷售成績喜人,至少相對於其他Tegra專屬的遊戲而言是如此。使用者的評論更是振奮人心——這款遊戲的保持了平均4.8(總分是5)的使用者評分。我們正製作一款iOS版本,也在考慮其他平臺。另外,不排除推出可下載內容和其他衍生產品的可能。

最重要的是,這次經歷讓我們嚐到了新市場的甜頭。我們總是希望保持團隊的小規模,這種規模最終有可能把我們的關注焦點從掌機轉向手機,但這種改變可能還需要幾年。

這不是說我們已經放棄了開發掌機遊戲,而是說我們會將兩者結合起來。掌機遊戲在技術上仍然領先,擴大範圍和增加資金投入會帶來更穩定的發展。另外,掌機玩家仍然需要並支援我們去探索比目前的手機更豐富的遊戲機制深度和難度。

在手機遊戲市場,我們仍然有機會嘗試小規模專案,即把集中多筆小資金搞專案,而不是拉攏幾筆大資金。遊戲開發的工作很有趣,還能武裝大腦。我們確實可能自己出資,然後從工作中連本帶利地收回來。

我不敢說我們已經把小工作室的問題解決了。但至少在可預見的未來,我們有足夠的工作保持工作室的穩定運轉。眼下,穩定的感覺真好。

專案資料:

名稱:《激流快艇》

發行時間:2011年5月20日

平臺: Android/Tegra2

型別:競速

引擎:Vector Engine

開發團隊人員:2名

開發時間:11個月

預算:10萬美元

第三方工具:FMOD Sound System, Bullet Physics

開發工具:Maya 2008、Photoshop CS4、Microsoft Visual Studio 2010、Subversion

隨便看看 更多