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