独立开发者:新手做2D手游该用哪些工具?
獨立開發(fā)者:新手做2D手游該用哪些工具?
width="22" height="16" src="http://hits.sinajs.cn/A1/weiboshare.html?url=http%3A%2F%2Fwww.csdn.net%2Farticle%2F2014-12-18%2F2823211-what-we-use-to-make-2d-games&type=3&count=&appkey=&title=%E5%88%9D%E5%85%A5%E6%B8%B8%E6%88%8F%E5%BC%80%E5%8F%91%E9%A2%86%E5%9F%9F%E7%9A%84%E6%96%B0%E6%89%8B%E5%BE%88%E9%9A%BE%E7%9F%A5%E9%81%93%E8%AF%A5%E9%80%89%E6%8B%A9%E4%BB%80%E4%B9%88%E5%B7%A5%E5%85%B7%E3%80%81%E4%BB%80%E4%B9%88%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80%E4%BB%A5%E5%8F%8A%E5%93%AA%E4%BA%9B%E6%A1%86%E6%9E%B6%EF%BC%8C%E6%88%96%E8%AE%B8%E8%BF%98%E4%BC%9A%E9%9D%A2%E4%B8%B4%E8%AE%B8%E5%A4%9A%E7%9A%84%E9%80%89%E6%8B%A9%E5%92%8C%E5%BB%BA%E8%AE%AE%E3%80%82%E6%9C%AC%E6%96%87%E4%BD%9C%E8%80%85%E5%88%86%E4%BA%AB%E4%BA%86%E4%BB%96%E4%BB%AC%E4%BB%8E%E4%B8%80%E5%BC%80%E5%A7%8B%E8%BF%9B%E8%A1%8C%E6%89%8B%E6%B8%B8%E7%A0%94%E5%8F%91%E5%88%B0%E5%A6%82%E4%BB%8A%E5%9B%9B%E5%B9%B4%E5%A4%9A%E4%BB%A5%E6%9D%A5%E7%A7%AF%E7%B4%AF%E7%9A%84%E7%BB%8F%E9%AA%8C%EF%BC%8C%E5%B8%8C%E6%9C%9B%E5%8F%AF%E4%BB%A5%E7%BB%99%E6%96%B0%E5%85%A5%E8%A1%8C%E8%80%85%E6%8F%90%E4%BE%9B%E4%B8%80%E4%BA%9B%E5%B8%AE%E5%8A%A9%E3%80%82&pic=&ralateUid=&language=zh_cn&rnd=1419150178916" frameborder="0" scrolling="no" allowtransparency="true">摘要:初入游戲開發(fā)領(lǐng)域的新手很難知道該選擇什么工具、什么編程語言以及哪些框架,或許還會面臨許多的選擇和建議。本文作者分享了他們從一開始進行手游研發(fā)到如今四年多以來積累的經(jīng)驗,希望可以給新入行者提供一些幫助。
全球手游行業(yè)規(guī)模將突破250億美元,越來越多的開發(fā)者開始進入手游研發(fā)領(lǐng)域,而作為一名菜鳥,很多時候,如果沒有其他開發(fā)者的建議,會走很多彎路,最近,獨立工作室Sheado.net公司的Chad Ata在博客中分享了他們從一開始進入手游研發(fā)到如今四年多以來積累的經(jīng)驗,希望可以給新入行者提供一些幫助。
以下為譯文:
一開始進入游戲研發(fā)領(lǐng)域的時候,你很難知道該選擇什么工具、什么程序語言以及哪些框架,你會面臨許許多多的選擇和建議,我和我的團隊總能發(fā)現(xiàn)其他游戲公司的經(jīng)驗是有用的,所以這里提供一些我們的經(jīng)驗,希望給做手游的新手們一些幫助。
初入手游行業(yè)
雖然在其他行業(yè)有過10多年的編程和策劃經(jīng)驗,但當我開始做手游研發(fā)的時候,依然覺得自己是一只菜鳥。我們的第一個游戲Furdiburb(寵物冒險游戲)最初是在2009年開始研發(fā)的,當時是專門為Android而做的。
對于毫無游戲研發(fā)經(jīng)驗的我們來說,Java是唯一可用到編程語言。作為一個2D游戲,我們(非常不明智)沒有使用OpenGL就開始非硬件加速圖形開發(fā)。隨著Furdi受到了更多人的歡迎,我們的游戲項目也得到更多的注意,最終我們遇到了性能和移植問題。如果我們此前學習了其他開發(fā)者的經(jīng)驗,很多問題都是可以完全避免的。
找到更好的方法
在完成了Furdiburb的研發(fā),并且使用playn緩慢的把游戲移植到了iOS平臺之后,我們決定開始第二款游戲(Eras of Alchemy)的研發(fā)。我們當時希望擺脫Java語言,找到可以廣泛使用的跨平臺研發(fā)工具,最好是未來還可以支持主機游戲平臺。
隨后我們開始了搜索,我用了將近一個月的時間對框架、工具以及引擎進行對比,最后,我和我的團隊非常滿意新的研發(fā)方式,直到現(xiàn)在也非常不錯。這里我不會說為什么要選擇這些,框架是經(jīng)常變化的,一年前選擇它的理由可能到現(xiàn)在就已經(jīng)不再是考慮的主要因素了。所以,這篇文章的其余部分只會對我們選擇某個工具的原因進行簡單的描述。
以下就是我們當初選擇并對比了一個月之后的結(jié)果:
編程
我們所列舉的都是在研發(fā)我們游戲的時候用到的,而且只是我們做游戲的方式而已,很多工具和框架的結(jié)合也是非常完美的,需要開發(fā)者們自行發(fā)現(xiàn)。
框架
我們選擇的所有架構(gòu),要么是開源的,要么就是有開放的代碼。這是非常好的,因為我們在必要的時候可以進行緊急修改和優(yōu)化。
Cocos2d-x:我們所有的跨平臺研發(fā)都是使用開源Cocos2d-x框架完成,在Eras Of Alchemy的研發(fā)過程中,我們使用了版本2,我們的下一個游戲正在使用的是版本3,進行了大幅度的API以及性能提升。整體來說,Cocos2d-x的2D表現(xiàn)非常好,而且文件管理非常方便。
Spine:我們使用Spine做了動畫,所以我們加入了C語言為基礎的Cocos2d-x插件。
Box2D:我們還沒有發(fā)布一款使用該引擎的游戲,但我們的下一款游戲A Quiver Of Crows將會使用,我們目前研發(fā)就使用了這個工具。
SQLite:Cocos2d-x本身也提供數(shù)據(jù)存儲方案,但我們更喜歡使用SQLite,因為它的讀寫速度和表現(xiàn)更好。
編程語言
C++:Cocos2d-x支持多種語言編程,但我們選擇了C++,因為我們覺得目前該語言是最合適做跨平臺研發(fā)的。
C:你經(jīng)常會想要加入一些開源的API,其中有一些就是C語言編程的。
Java:我們依然需要用到Java,但也只是在Android平臺做游戲內(nèi)IAP、廣告以及特殊系統(tǒng)功能的時候。語言之間的切換可以通過JNI來完成。
Objective-C:選擇它的理由和Java一樣,我們使用Objective-C是為了使用iOS系統(tǒng)的特定功能。
Scripting:這包括程序化腳本和其他腳本語言,所有的開發(fā)者們都要時不時的寫腳本,但我們卻很少會談論這個問題。這個問題是非常容易的,但如果你和我一樣而且由于不常使用而不記得一些語法的話,這個工作有是非常耗時間的,我們要給維護代碼、自動音頻轉(zhuǎn)換以及紋理打包寫腳本。
開發(fā)環(huán)境
Xcode:所有人都告訴我們說Xcode非常好,所以我進行了嘗試,而且我不得不說的是,這是目前我最喜歡的開發(fā)環(huán)境。這里我并不想說太多具體的原因,因為我不想引發(fā)集成開發(fā)環(huán)境(IDE)爭論,我們使用Xcode做跨平臺研發(fā),也為蘋果平臺做專門的編程。
Eclipse:對于IDE來說慢的可怕,但我看來卻非常好用。我們用Eclipse做了所有的Java和Android研發(fā),包括適配和修復bug。Android目前在推Android Studio而不是Eclipse,但我們沒有那么多的時間,也沒有什么特別的理由去轉(zhuǎn)換到新的工具。
Visual Studio:也是個非常優(yōu)秀的IDE,我們用它來做左右和微軟相關(guān)的編程、Bug修復以及適配。
版本控制
即便你的團隊只有一個人,你也應該使用版本控制。所有人都會犯錯,而且任何一次大改都可能導致游戲神秘的死亡。我們的團隊只有3個人,因此從第一天做手游開始,版本控制就是非常必要的。目前有非常多的方案可以選擇,但我們使用的有以下幾個:
SVN:我個人喜歡SVN,因為可以做到所有我需要的功能,比如合并、同步、恢復等等,但學習起來比較困難。
Git:我們使用的很多開源框架都使用Git。我們使用Git就是為了保持與框架同步,當需要的時候可以進行快速修復。
電腦
很明顯,你做游戲是需要使用電腦的。最初所有的研發(fā)都是在Linux機器上完成的。但我們開始了iOS平臺的研發(fā)之后,用兩三臺電腦變得效率非常低,所以我們買了一些iMac,而且我們都非常喜歡用它來做游戲研發(fā)。幸運的是,OSX的很多指令與Linux相同,所以我們的很多腳本都沒有做改變。
圖形工具
Adobe CS:相信這個沒有人覺得奇怪,我們的美術(shù)師最常使用的是Illustrator和Photoshop。
Spine:非常推薦這個工具制作骨骼動畫,和傳統(tǒng)的幀到幀動畫相比,骨骼動畫可以節(jié)約硬盤空間,還可以節(jié)約大量的研發(fā)時間,提供強大的功能,比如動畫混合、蒙皮技術(shù)以及網(wǎng)格變形。
Texture Packer:你或許會想要把圖片進行打包獲得更大的圖像以獲得更好的游戲表現(xiàn)。我們選擇Texture Packer來完成這項工作,而且我們還使用它的指令功能進行自動化打包處理。
關(guān)卡編輯器
我們使用的關(guān)卡編輯工具包括:
沒有編輯器:如果可以不用的話,我們絕不會使用編輯器。我們可以用代碼解決,這聽起來非常瘋狂,而且有點浪費時間,但如果你的團隊非常小的話,有時候為了節(jié)約時間可以不必為了一次性的任務專門用代碼寫一個編輯器。
定制化編輯器:有時候我們寫了一個非常不好用的游戲內(nèi)編輯器來做圖形或者關(guān)卡,我的意思是未經(jīng)優(yōu)化的,恐怕也只有我們會這么做。
R.U.B.E:對于我們的下一個游戲,我們在使用R.U.B.E(Really Useful Box2D Editor)之前,幾乎自己研發(fā)了一個游戲內(nèi)編輯器,這個非常強悍的工具節(jié)約了我們大量的時間,但如果我們決定要做關(guān)卡編輯器的話,我們必須自己研發(fā)。
音樂和視頻
ffmpeg:我個人非常喜歡ffmpeg,這個工具非常好用,我們通常使用腳本用它把我們的視頻變成各個平臺需要的格式。
Cakewalk Sonar:這是個非常強悍的音樂制作軟件,一開始的學習會比較困難。
GArritan Personal Orchestra:如果你想給自己的游戲加入管弦樂,Garritan可以帶來非常高質(zhì)量的音樂,我們通常和Sonar混合使用。
Audacity:一個非常不錯的視頻編輯和錄制工具。
以下2個是我們已經(jīng)不再使用的工具,但可能對于新手來說依然具有推薦意義:
Anvil Studio:如果你熟悉樂器而且樂意學一些音樂知識,并且想要做MIDI格式的音樂,這是個非常不錯的軟件。
Linux Multaimedia Studio:這是個非常不錯而且簡單的軟件,可以制作非常不錯的音樂,而且不需要你閱讀很多的音樂知識。
結(jié)論
目前做游戲的工具非常多,以上的這些工具只是我們在做2D游戲的時候選擇的工具,目前為止,我們對這些工具非常滿意,我們最新的游戲發(fā)布到了iOS、Android和Windows Phone平臺。我們還打算在下一款游戲發(fā)布的時候,用同樣的工具把游戲擴展到PC、Mac以及Linux平臺。
總結(jié)
以上是生活随笔為你收集整理的独立开发者:新手做2D手游该用哪些工具?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全球最年轻亿万富豪
- 下一篇: JavaScript社区开发者调查:服务