這里說的框架,英文原文是Framework。因為最近在尋找合適的手機游戲引擎,所以對比了一些開源以及商業(yè)框架,包括他們的部分文檔,以及論壇和博客里開發(fā)者的使用分享,有了一點簡單的收獲,記錄一下。 每種框架都有其特定的用戶群定位,所以不好說哪個框架或者引擎最好,只能是根據(jù)應用開發(fā)的功能需求以及開發(fā)者個人對工具及語言方面的喜好來進行選擇,有一些框架目前不會使用,但不代表未來在做某個應用的時候再回來重新評估。 不過其中一些框架的缺陷還是值得關注,不能在使用這個框架做過一段時間后才發(fā)現(xiàn)有這樣那樣太多的問題,解決的時間比自己為每個平臺獨立開發(fā)所花的時間還要多,那樣就得不償失了。 因為上一個項目使用的Unity3D(http://www./),目前的感受是這個引擎相當不錯,尤其對于美術人員來說相當友好,其在跨平臺方面的表現(xiàn)也很強大,雖然手機平臺目前只支持iOS跟Android,不過這也足夠了,Unity現(xiàn)在50萬的開發(fā)者也足以證明它的優(yōu)秀,而圍繞它的一些插件開發(fā)商和工具開發(fā)商,還有大量的Asset提供者,已經(jīng)將Unity打造成了一個產(chǎn)業(yè)圈。 只不過Unity的強項還是在3D游戲開發(fā)上,雖然使用其UI組件也可以構建2D游戲,但是使用起來還是比較別扭,也不那么直觀。 另外一個非常優(yōu)秀的框架Cocos2d(http://www./),這個真的只能算是框架,因為它只是一套API集合,不像Unity那樣有完善的開發(fā)工具,而且Cocos2d只能發(fā)布到iOS平臺和Mac平臺下,如果需要跨平臺可以使用國人移植的Cocos2d-X項目。 看一眼Cocos2d網(wǎng)站的項目列表真的是很讓人激動,那么多曾經(jīng)排過Top10的項目,似乎有了它成功就在眼前。Cocos2d是我很早就一直在關注的一個框架,并且嘗試用它來寫過簡單的游戲,確實很不錯。 不過Cocos2d最大的問題在于工具的缺失,使用它必須完全由程序員自己來實現(xiàn)場景構建,動畫控制,等等。當然也可以借助于Tiled這類開源工具來編輯地圖,但其功能與Unity比起來只能用簡陋來形容,這對于多人協(xié)作,尤其是程序與美術的協(xié)作是相當不友好的。 當然,如果你能一個人搞定所有這些事那也無所謂。 Sparrow Framework(http://www.),與Cocos2d類似的一個游戲開發(fā)框架。Sparrow不是跨平臺的開發(fā)框架,它只支持iOS。因為提供了一套與Flash/Flex類似的API接口,所以對于有flash開發(fā)經(jīng)驗的人員來說還是有一定優(yōu)勢的。不過同樣也是工具的缺失,使用起來有一定難度。 Torque 2d(http://www./products/torque-2d)是一個比較老牌的游戲引擎,包含有比較完整的開發(fā)工具,其Level Editor跟Unity一樣也是所見即所得,對于橫版過關類游戲及斜45度地圖游戲都有很好的支持,使用了一套自己實現(xiàn)的腳本引擎,類C++的語法,使用起來也比較清晰。 它的一個分支iTouque-2d可以把應用發(fā)布到iOS平臺,不過目前還不支持發(fā)布到Android,這應該算是Torque目前最大的問題了。 Corona SDK(http://www./corona/),差不多與Cocos2d齊名的另一個優(yōu)秀的框架,在早期Apple對第三方語言開發(fā)App還嚴格禁止的時候這個工具就已經(jīng)出現(xiàn)了,我關注到這個框架的時候正逢Apple開始解禁第三方編程語言,那時候Corona還在做低價促銷,可惜當時我沒有購買 J。 同樣的,看一眼Corona SDK的Showcase列表也會熱血沸騰,這么多優(yōu)秀的App,不過問題也還是有的: 沒有集成開發(fā)環(huán)境,必須自己使用lua語言一行行寫出一個App來。 Android的支持還非常不完善,Corona基本上也是在iOS做的比較成熟后再移植到Android上的,這個移植工作還處于非常初期的階段,所以不要指望它在Android上的表現(xiàn)能有多好,能夠正常運行就不錯了。 最大的一個問題是使用Corona開發(fā)的應用必須提交到它的服務器上去編譯生成App,當然你可以先在本地使用模擬器來開發(fā),但最后的發(fā)布包必須在服務器上生成,為此你必須每年交349美元的授權費,這比蘋果的年費可高多了。 Monkey( http://www.)是一個與Corona類似的框架,但是比Corona要稍好一些,如果單從開發(fā)者角度來看的話。 Monkey使用Bliz Basic語言開發(fā)應用,然后編譯生成目標平臺的Project,再將這個Project按照正常開發(fā)流程編譯生成App。這個流程與Corona基本相似,不過編譯的過程是在本地進行的,所以可以在目標Project生成之后再進行修改,這樣一些在特定平臺上的功能可以分別進行添加和修改。 另外Monkey的授權費比Corona要低得多,只需要一次付費,授權費也只需要120美元。 Monkey的問題在于它還處在開發(fā)的初期階段,目前發(fā)布的版本只實現(xiàn)了最基礎的功能,對于游戲開發(fā)來說,你還需要自己添加物理支持,粒子系統(tǒng),如果你想要加入網(wǎng)絡功能的話也得自己去做。當然社區(qū)里有熱心用戶公開了他們的一部分代碼,但是,你懂的。 PhoneGap(http://www./),如果你在Google搜索“cross platform mobile application framework”,第一個結果就是PhoneGap。當然這可能與選擇的關鍵字有關,如果把關鍵字改為“cross platform mobile app development”,那么第一個結果是Corona,第二個結果還是PhoneGap。 PhoneGap宣傳的是唯一一個同時支持6種移動平臺的開發(fā)框架,這個沒錯,因為它的應用是基于Html的,本身就比較容易做到跨平臺。但是PhoneGap也為應用做了一層封裝,把一些系統(tǒng)級的API封裝為Javascript API提供給應用開發(fā)者,然后啟動一個WebView來加載實際應用。 這樣的做法使得PhoneGap的應用基本上限制于Web類,對于游戲應用就不大合適,當然網(wǎng)頁類SNS游戲除外 J。 至于為什么要用PhoneGap而不是直接讓玩家用Safari打開一個URL,原因基本上有兩點:一是應用可能需要一些系統(tǒng)底層功能,比如想要獲取地理位置信息,或者是照相機等等,另一種情況是做成一個獨立APP可以放到Store上去收費,而URL的收費就不那么方便了。 Titanium(http://www./),同樣是在上面的搜索結果中,你大概已經(jīng)注意到了這個名字。Titanium首頁宣傳的是有1.5M活躍開發(fā)者,22.5K的APP和20M的活躍用戶,這個數(shù)字不知道是不是有一定水分,但是因為Titanium是免費并且開源的,所以有這么多注冊的開發(fā)者本身可能不奇怪,Titanium的商業(yè)模式是靠提供技術支持與培訓來贏利,這對于普通開發(fā)者來說是好事。 但是與PhoneGap類似,Titanium也是用于Web類的移動應用開發(fā),但是Titanium似乎做的更進一步,把部分UI組件編譯成了Native Code,這樣使得應用看起來更像是專為這個平臺開發(fā)的。在功能實現(xiàn)上,Titianium內置了一個JS腳本引擎,這比PhoneGap直接使用WebView也要更強大一些。 但是在StackOverFlow以及Titanium論壇上看到大量的抱怨,問題集中在文檔的老舊以及BUG的修復太過于緩慢,還有在跨平臺方面的支持不夠完善,需要為不同平臺編寫大量的特定代碼,這些問題對于應用開發(fā)者來說都是致命的。 |
|