cocos2d-x手機遊戲開發——序

出版圈郭志敏發表於2011-11-24

近幾年,開源力量在全球軟體行業裡扮演著越來越重要的角色。就移動互聯領域而言,Linux核心被廣泛用在嵌入式系統和無頭裝置,Android崛起,PhoneGap誕生,服務端LAMP已是標配,svn/git和Redmine成為很多軟體公司的管理工具。時至今日,已經很難有哪家軟體公司敢說他們完全不用開源產品了。國內的盛大和淘寶等公司都推出了開源平臺,嘗試開放企業的一些內部專案的原始碼,這些都是非常有意義的舉動。就國內開源歷史來看,最成功的開源專案當屬Discuz、PHPWind和Dvbbs,這3個開源專案服務了國內無數中小網站的站長。而cocos2d-x這一開源專案所追求的目標正是服務大量的手機遊戲開發者,把大家都需要花費大量時間學習和需要花費時間重複做的工作抽取出來,形成一套開源的公用庫。往大了說就是,希望能通過這套公用庫來降低手機遊戲開發的技術門檻和研發成本,使得中小團隊和個人開發者能從中受益。

cocos2d-x僅是cocos2d社群的一個分支。cocos2d開源專案誕生於2008年第一季度,以阿根廷人Ricardo Quesada為社群領袖和主要開發者。最初這僅是一個用Python語言寫的遊戲框架,並沒有體現出什麼商用價值,但2008年正好是蘋果釋出iPhone 2.0 SDK的時候,這給全球的手機遊戲開發者提供了一個非常好的舞臺。cocos2d社群抓住了這個時機,在2008年就開出cocos2d-iphone分支,用Objective-C語言替換Python重寫了整個框架。cocos2d隨著iOS的發展而快速壯大。到了2009年的4月,用cocos2d-iphone寫的遊戲StickWars在App Store美國區的付費榜衝到第一,這個里程碑事件標誌著cocos2d完全脫離了自娛自樂過家家的水平,進入了可以穩定商用的階段。在2010年,cocos2d已經成為iOS平臺上首選的2D遊戲框架:幾乎每個初學iOS遊戲開發的程式設計師都會從cocos2d入手,社群裡時常有開發者跳出來炫耀他的cocos2d遊戲衝到App Store Top10,讓人“羨慕嫉妒恨”。

cocos2d框架的最大優勢在於其簡單易學,遊戲開發者只需潛心學習一個月左右就能掌握,不需要學習複雜的OpenGL ES知識就可以開發出一款商用水平的遊戲,卻能完全享受OpenGL ES硬體加速給遊戲帶來的效能提升和各種炫酷特效。這一核心特點成就了許多個人開發者和中小團隊通過cocos2d快速在iOS平臺上掘金的夢想。

前文提到,2008年cocos2d社群用Objective-C替換Python對整個遊戲框架進行了重寫,而在2010年當Android崛起到能夠和iPhone抗衡,開發者希望能把遊戲移植到Android平臺上的時候,同樣的事情再次上演:cocos2d-x分支被開出來,框架用C++重寫。雖然C++廣被詬病,但作為iOS和Android兩大平臺都官方支援的程式語言,我們不得不“屈服”於C++的實力。事後證明這個技術路線的選擇是對的!市面上各種Phone粉墨登場,都有自己獨特的SDK、獨特的UI控制元件介面,但對於遊戲開發,它們具有兩個相同點:一是支援C++開發,二是提供OpenGL ES介面。在這兩點上,不論是國內的沃Phone、Ophone、樂Phone和魅族,還是國外的Bada和MeeGo等,都是一致的。甚至連封裝層面甚高、直奔HTML5而去的WebOS都專門為遊戲開發準備了C++&OpenGL ES專用的PDK。

和cocos2d-iphone的南美洲團隊不同,cocos2d-x分支的主要維護團隊在中國,我們有幸為大家做了這件事情,並很享受這個利他的過程。在大家的共同努力下,經過第一年的發展,社群裡誕生了70多款基於cocos2d-x的遊戲,其中包括多款Top 10的佳作,更有《捕魚達人》、《Ah Up Planet》、《地鐵總動員》和《91部落》等明星遊戲。截至2011年10月中旬,基於cocos2d-x引擎創作的遊戲在iOS平臺已累計超過340萬次下載,在Android平臺則超過1000萬次下載。

很快我們就發現大家都開始積極地回饋cocos2d-x專案。網龍公司為社群貢獻了整套Lua繫結的程式碼,SuperRacccon、子龍山人、冬天的林和張文野等多位開發者不斷撰寫部落格闡述使用要點,徐松林和黃猛更是熱心地花費幾個月的時間,為各位獻上的這本教程。它不僅是cocos2d-x社群的第一本中文書,也是整個cocos2d社群的第一本中文書。

cocos2d-x的官方文件都受限於社群的國際化,因此沒能提供中文版。另外,很多文件都是站在引擎開發者角度對原理進行闡述和解釋的,對於初學者來說可能過於複雜。而此書從遊戲開發者的角度,用通俗易懂的方式傳授了cocos2d-x引擎的幾個主要功能的用法,著重解決官方文件裡沒有涵蓋的部分,如物理引擎和周邊工具的使用,解答了新手經常感到困惑的熱點問題,如開發環境安裝、交叉編譯和第三方庫整合等。作者在這些地方都非常耐心地給出了按步驟的截圖和程式碼段;最後,兩位作者更是給出了一個很有分量的實際遊戲案例,使得此書的學習價值大大提高。

非常感謝徐松林和黃猛兩位作者的貢獻,希望能有更多的遊戲開發者從此書中受益。開源社群因為有大家的支援而更美好!

相關文章