iOS開發者:我是如何把手遊包體降到11MB

Design

【Gamelook專稿,轉載請註明出處】

Gamelook報道/雖然智能機和平板設備的性能在不斷提高,但大多數的安卓用戶依然使用著比較低賠的設備。對於手遊開發者們來說,在不降低遊戲質量的基礎上控制包體大小成為瞭比較頭疼的問題之一,最近,一位名叫Peter Kibble的獨立開發者在博客中分享瞭自己的經驗,希望可以給同行們帶來一些幫助,以下是完整的博文內容:

我做手遊和平板應用已經很多年瞭,而且也經常看到業內的同行們重復著同樣的錯誤,這也讓我確定自己是非常普通的開發者。這篇博客中,我將會通過我們的新遊戲《Ravioli》來討論如何解決資源膨脹的問題。

《Ravioli》是一款視覺解謎遊戲,它使用瞭144個獨特的基本圖形,在15個不同難度的關卡中創造瞭225個解謎。由於玩法完全是視覺化的,所以遊戲資源必須達到非常高的質量,遊戲渲染也要做到非常快。

我知道這篇博客的讀者們很多都有多核CPU,海量內存,4G網絡,甚至都帶著充電寶,可以搞定大多數的遊戲運行。而我們做《Ravioli》的目標是要讓它在低端智能機上也可以很流暢地運行,而且最終我們也做到瞭。為什麼要這麼做呢?因為大多數人使用的都是低端智能機,如果《Ravioli》可以在這些設備上運行流暢的話,那麼到瞭高端設備就更不用提瞭。

5

我們做的一件事就是把遊戲資源做到盡可能緊湊和有效率,同時不降低質量和靈活度。通過這種做法,我們做到瞭,225個解謎的資源大概壓縮到瞭30kb,不壓縮的大小為150kb。其他的核心圖形資源,包括icon和標志等大小隻有44kb(壓縮後)/240kb(壓縮前),遊戲的啟動界面大小為25kb。除瞭啟動界面之外,所有的圖形資源都存放在我們的專用數據庫裡。

這是可行的,因為《Ravioli》使用瞭我們自研的定制化2D著色器和二進制矢量資源格式,這意味著我們在所有平臺擁有整個圖形資源鏈。通常的選擇,其一是依賴大量的預渲染PNG圖片,這會導致資源空間占用很大,而且會帶來很多的資源管理問題;另一個方法就是當應用啟動的時候,把SVG資源渲染成PNG,這通常來說是一個比較不錯的技術。使用PNG圖片對我們來說是行不通的,標準的SVG渲染也實現不瞭《Ravioli》所需要的微操作。而且,這兩種方法都會導致我們的Mac/OSX遊戲編輯器幾乎難以使用,或許還會意味著這款遊戲永遠都沒有辦法正常運行。

6

音頻資源更容易處理,我們采用瞭64kbps的標準,因為在《Ravioli》當中的音頻不是背景音樂就是轉換效果,如果質量比這個再低的話,就會太明顯瞭。這種方法讓音頻包體非常小,不過,由於音頻占瞭10%的包體大小,所以圖形資源仍然受到瞭一些限制。

那麼,我們這麼做帶來瞭哪些好處呢?

我們的遊戲包體非常小,在iOS平臺大概是11MB,遊戲的下載和安裝都非常快,這在低帶寬的情況下是非常有優勢的。《Ravioli》的內存占用很低,幾乎不明顯,遊戲的保存和恢復都非常快。
遊戲資源的渲染都是根據各種設備和分辨率設置的最佳方案,圖片大小也是最優化的。圖形資源數據庫讓研發和調整都變得非常有效而且可靠。所以《Ravioli》的實際遊戲表現很好,下載起來簡單穩定,安裝起來很快,而且在各種設備上運行起來也不錯。

以上就是我們解決遊戲包體問題的方法,目前《Ravioli》已經推出瞭iOS測試,感興趣的讀者可以在TestFlight註冊嘗試。

本文英文作者Peter Kibble

Comments are closed.