Cocos2D的穩定性、可商用型和流行程度已無需證明。目前App Store中國區付費總榜前三十名約有50%是基于Cocos2D開發的,幾個月來長期如此。因此:
- 只要你是做2D游戲就應該用Cocos2D引擎;
- 根據發布目標平臺和團隊擅長的編程語言選擇不同Cocos2D分支,開源社區尊重每位程序員自己的喜好和口味;
- 不用擔心法律和授權費用的問題,Cocos2D及其集成的第三方庫都是非GPL/LGPL的;
Cocos2D家族包含了一系列不同語言、不同渲染方案的多個分支,目前穩定成熟、有商業游戲發布的主要有三個:
- Cocos2D-iPhone,用優雅的Objective-C語言進行游戲開發,最近出了JavaScript綁定,游戲只能運行于iOS設備上;
- Cocos2D-X,用經典的C++進行游戲開發,加以Lua綁定和JavaScript綁定,游戲可運行于iOS、Android、Windows Phone 7&8、Windows 8 Metro、BlackBerry 10、bada、MeeGo、Linux、Mac OS X等手機和桌面系統上;
- Cocos2D-XNA,用C#進行游戲開發,可運行于Windows Phone 7&8之上。
還有一個分支,雖然目前尚無大型商用游戲,但未來相當看好:
- Cocos2D-HTML5,基于HTML5規范集開發,采用JavaScript語言,游戲可運行在Chrome、FireFox、IE10、Opera等支持HTML5的瀏覽器內。
Cocos2D系列引擎對不同平臺和開發語言的支持如表1所示,注意:雖然有不同分支,但只要是在同一個大版本號1.x或2.x下面,API接口是完全一樣的。

采用與開發平臺自身相同的編程語言是個不錯的選擇;但按照目前的趨勢,跨平臺已經成為一個基本考慮點之一,因此選擇具有跨平臺能力的開發語言,會讓游戲開發和運營更輕松愉快。所以開發語言的選擇上,大致可以這么考慮:
- 系統原生語言:例如在iOS上選擇Objective-C,在Windows Phone上選擇C#,開發時能很方便地集成SDK上的各種功能—原生UI框架以及ShareKit、ASIHttpRequest之類的第三方庫,且易于調試。但游戲無法跨平臺,因此現階段不是太推薦;
- C++:保持高性能的同時可以跨不同平臺,調試方便,但開發進度偏慢,集成部分第三方庫需要一次語言轉換,適合技術功底比較強的小型創業團隊,在開發中小型游戲上有優勢;
- Lua、JavaScript等跨平臺腳本:可以在運行性能和開發速度上取得一個折中,缺點是調試和集成第三方庫不易,適合有一兩個技術高手能駕馭語言轉換層(需要二次轉換,如Java>C++>Lua),然后招聘腳本程序員大量堆邏輯的中型創業團隊,而且團隊里程序員越多,使用腳本帶來的增益越明顯。此方案在開發大型游戲上有進度優勢。在工具方面,Cocos2D和多數開源社區一樣是個集市,沒有建造大教堂思路下集中控制的一站式解決方案,因此你需要從不同軟件提供商手里購買針對不同使用目的的工具,基本覆蓋了游戲開發過程的方方面面,比較流行的有:
- CocosBuilder是目前最好的UI編輯器和動作編輯器,擁有開源免費MIT許可。在2.1版本之后加入了大家翹盼已久的時間軸動作編輯功能。其作者Viktor Lidholt已被Zynga的Cocos2D團隊收編,因此CocosBuilder很顯然會是整個社區最重要的編輯器之一;
- 71squared的Particle Designer,必不可少的粒子編輯器,8美元一套,還不到買一份肯德基全家桶的錢;
- mapeditor.org的Tilemap Editor,這個是開源免費的;
- Texture Atlas打包工具如Texture Packer、Zwoptex;
- SpriteHelper、LevelHelper系列。
除此之外,還有一些比較新潮但用戶不多的工具,例如CatHide.com,讓你在一個代碼編輯器里完成基于Cocos2D-X的多平臺開發調試部署;還有蛋疼到碎的iTileMaps,讓用戶在iPad里面編輯tilemap地圖,你可以買一套送給美工同學,然后享受他想殺死你的眼神。
社區支持一直是Cocos2D引以為傲的事情。只要你禮貌地在Cocos2D-iPhone或Cocos2D-X論壇里詢問,總能得到來自世界某個角落里熱心開發者的解答。除了官方論壇,國內還有39個Cocos2D QQ群,百度文庫里4534篇Cocos2D相關文檔,SlideShare上196份相關PPT,CSDN下載區701份相關資源,以及海量的技術博客,都會是你進入Cocos2D開源世界很好的學習資源。
總結Cocos2D開源引擎適合于這樣的創業團隊:
- 希望和Zynga、Glu、TinyCo、4399等使用Cocos2D的頂尖游戲公司站在同樣的技術起跑線上;
- 希望掌握產品的每個細節,且團隊中有靠譜的程序員;
- 希望能天馬行空作出自己游戲獨一無二的效果,不喜歡被閉源產品束縛作出同質化產品;
- 希望針對中國市場特殊性,能不費力地搞定千元智能機上的性能問題。
作者王哲,畢業于南京大學,2010年開始經營維護Cocos2D-X開源社區至今,負責《捕魚達人》系列游戲的跨平臺支持。
