獨立開發者:新手做2D手遊該用哪些工具

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

GameLook報道/隨著全球手遊行業規模將突破250億美元,越來越多的開發者開始進入手遊研發領域,而作為一名菜鳥,很多時候,如果沒有其他開發者的建議,我們會走很多彎路,最近獨立工作室Sheado.net公司的Chad Ata在博客中分享瞭他們從一開始進入手遊研發到如今四年多以來積累的經驗,希望可以給新入行者提供一些幫助。以下是GameLook編譯的博客內容:

一開始進入遊戲研發領域的時候,你很難知道該選擇什麼工具、什麼程序語言以及哪些框架,你會面臨許許多多的選擇和建議,我和我的團隊總能發現其他遊戲公司的經驗是有用的,所以這裡提供一些我們的經驗,希望給做手遊的新手們一些幫助。

初入手遊行業

雖然在其他行業有過10多年的編程和策劃經驗,但當我開始做手遊研發的時候,依然覺得自己是一隻菜鳥。我們的第一個遊戲Furdiburb(寵物冒險遊戲)最初是在2009年開始研發的,當時是專門為Android而做的。對於毫無遊戲研發經驗的我們來說,Java是唯一可用到編程語言。作為一個2D遊戲,我們(非常不明智)沒有使用OpenGL就開始非硬件加速圖形開發。隨著Furdi受到瞭更多人的歡迎,我們的遊戲項目也得到更多的註意,最終我們遇到瞭性能和移植問題。如果我們此前學習瞭其他開發者的經驗,很多問題都是可以完全避免的。

找到更好的方法

在完成瞭Furdiburb的研發,並且使用playn緩慢的把遊戲移植到瞭iOS平臺之後,我們決定開始第二款遊戲(Eras of Alchemy)的研發。我們當時希望擺脫Java語言,找到可以廣泛使用的跨平臺研發工具,最好是未來還可以支持主機遊戲平臺。

隨後我們開始瞭搜索,我用瞭將近一個月的時間對框架、工具以及引擎進行對比,最後,我和我的團隊非常滿意新的研發方式,直到現在也非常不錯。這裡我不會說為什麼要選擇這些,框架是經常變化的,一年前選擇它的理由可能到現在就已經不再是考慮的主要因素瞭。所以,這篇文章的其餘部分隻會對我們選擇某個工具的原因進行簡單的描述。以下就是我們當初選擇並對比瞭一個月之後的結果:

編程

我們所列舉的都是在研發我們遊戲的時候用到的,而且隻是我們做遊戲的方式而已,很多工具和框架的結合也是非常完美的,需要開發者們自行發現。

框架

我們選擇的所有架構,要麼是開源的,要麼就是有開放的代碼。這是非常好的,因為我們在必要的時候可以進行緊急修改和優化。

Cocos2d-x:我們所有的跨平臺研發都是使用開源Cocos2d-x框架完成,在Eras Of Alchemy的研發過程中,我們使用瞭版本2,我們的下一個遊戲正在使用的是版本3,進行瞭大幅度的API以及性能提升。整體來說,Cocos2d-x的2D表現非常好,而且文件管理非常方便。

Spine:我們使用Spine做瞭動畫,所以我們加入瞭C語言為基礎的Cocos2d-x插件。

Box2D:我們還沒有發佈一款使用該引擎的遊戲,但我們的下一款遊戲A Quiver Of Crows將會使用,我們目前研發就使用瞭這個工具。

SQLite:Cocos2d-x本身也提供數據存儲方案,但我們更喜歡使用SQLite,因為它的讀寫速度和表現更好。

編程語言

C++:Cocos2d-x支持多種語言編程,但我們選擇瞭C++,因為我們覺得目前該語言是最合適做跨平臺研發的。

C:你經常會想要加入一些開源的API,其中有一些就是C語言編程的。

Java:我們依然需要用到Java,但也隻是在Android平臺做遊戲內IAP、廣告以及特殊系統功能的時候。語言之間的切換可以通過JNI來完成。

Objective-C:選擇它的理由和Java一樣,我們使用Objective-C是為瞭使用iOS系統的特定功能。

Scripting:這包括程序化腳本和其他腳本語言,所有的開發者們都要時不時的寫腳本,但我們卻很少會談論這個問題。這個問題是非常容易的,但如果你和我一樣而且由於不常使用而不記得一些語法的話,這個工作有是非常耗時間的,我們要給維護代碼、自動音頻轉換以及紋理打包寫腳本。

開發環境

Xcode:所有人都告訴我們說Xcode非常好,所以我進行瞭嘗試,而且我不得不說的是,這是目前我最喜歡的開發環境。這裡我並不想說太多具體的原因,因為我不想引發集成開發環境(IDE)爭論,我們使用Xcode做跨平臺研發,也為蘋果平臺做專門的編程。

Eclipse:對於IDE來說慢的可怕,但我看來卻非常好用。我們用Eclipse做瞭所有的Java和Android研發,包括適配和修復bug。Android目前在推Android Studio而不是Eclipse,但我們沒有那麼多的時間,也沒有什麼特別的理由去轉換到新的工具。

Visual Studio:也是個非常優秀的IDE,我們用它來做左右和微軟相關的編程、Bug修復以及適配。

版本控制

即便你的團隊隻有一個人,你也應該使用版本控制。所有人都會犯錯,而且任何一次大改都可能導致遊戲神秘的死亡。我們的團隊隻有3個人,因此從第一天做手遊開始,版本控制就是非常必要的。目前有非常多的方案可以選擇,但我們使用的有以下幾個:

SVN:我個人喜歡SVN,因為可以做到所有我需要的功能,比如合並、同步、恢復等等,但學習起來比較困難。

Git:我們使用的很多開源框架都使用Git。我們使用Git就是為瞭保持與框架同步,當需要的時候可以進行快速修復。

電腦

很明顯,你做遊戲是需要使用電腦的。最初所有的研發都是在Linux機器上完成的。但我們開始瞭iOS平臺的研發之後,用兩三臺電腦變得效率非常低,所以我們買瞭一些iMac,而且我們都非常喜歡用它來做遊戲研發。幸運的是,OSX的很多指令與Linux相同,所以我們的很多腳本都沒有做改變。

圖形工具

Adobe CS:相信這個沒有人覺得奇怪,我們的美術師最常使用的是Illustrator和Photoshop。

Spine:非常推薦這個工具制作骨骼動畫,和傳統的幀到幀動畫相比,骨骼動畫可以節約硬盤空間,還可以節約大量的研發時間,提供強大的功能,比如動畫混合、蒙皮技術以及網格變形。

Texture Packer:你或許會想要把圖片進行打包獲得更大的圖像以獲得更好的遊戲表現。我們選擇Texture Packer來完成這項工作,而且我們還使用它的指令功能進行自動化打包處理。

關卡編輯器

我們使用的關卡編輯工具包括:

沒有編輯器:如果可以不用的話,我們絕不會使用編輯器。我們可以用代碼解決,這聽起來非常瘋狂,而且有點浪費時間,但如果你的團隊非常小的話,有時候為瞭節約時間可以不必為瞭一次性的任務專門用代碼寫一個編輯器。

定制化編輯器:有時候我們寫瞭一個非常不好用的遊戲內編輯器來做圖形或者關卡,我的意思是未經優化的,恐怕也隻有我們會這麼做。

R.U.B.E:對於我們的下一個遊戲,我們在使用R.U.B.E(Really Useful Box2D Editor)之前,幾乎自己研發瞭一個遊戲內編輯器,這個非常強悍的工具節約瞭我們大量的時間,但如果我們決定要做關卡編輯器的話,我們必須自己研發。

音樂和視頻

Ffmpeg:我個人非常喜歡ffmpeg,這個工具非常好用,我們通常使用腳本用它把我們的視頻變成各個平臺需要的格式。

Cakewalk Sonar:這是個非常強悍的音樂制作軟件,一開始的學習會比較困難。

GArritan Personal Orchestra:如果你想給自己的遊戲加入管弦樂,Garritan可以帶來非常高質量的音樂,我們通常和Sonar混合使用。

Audacity:一個非常不錯的視頻編輯和錄制工具。

以下2個是我們已經不再使用的工具,但可能對於新手來說依然具有推薦意義:

Anvil Studio:如果你熟悉樂器而且樂意學一些音樂知識,並且想要做MIDI格式的音樂,這是個非常不錯的軟件。

Linux Multaimedia Studio:這是個非常不錯而且簡單的軟件,可以制作非常不錯的音樂,而且不需要你閱讀很多的音樂知識。

結論

目前做遊戲的工具非常多,以上的這些工具隻是我們在做2D遊戲的時候選擇的工具,目前為止,我們對這些工具非常滿意,我們最新的遊戲發佈到瞭iOS、Android和Windows Phone平臺。我們還打算在下一款遊戲發佈的時候,用同樣的工具把遊戲擴展到PC、Mac以及Linux平臺。

Comments are closed.