觸控VP王哲:Cocos引擎細節優化 兼容率近百 Cocos 2015

>>>  創業先鋒 眾人拾柴火焰高  >>> 簡體     傳統

在今日上午舉辦的Cocos2015發布者大會上,觸控科技VP Cocos2d-x創始人王哲發表了以”延續、整合與開放“為主題的演講。他為大家介紹了最新發布的Cocos V2.2引擎并針對Cocos的不足和問題進行了解答。


以下為演講實錄,經游戲葡萄整理發布:


我的演講主題是:Cocos V2.2發布——延續、整合與開放。


Cocos 2d-x最早在2010年發布,2010—2012年之間是服務于游戲開發的Framwork,它的特點是以編碼為中心的工作流,更關注在早幾年時中國手機市場的特點:手機性能不高,安卓雜牌機眾多難以兼容,流量還很昂貴需要包體積小,這幾個關注點成為Cocos 2d-x在國內競爭的關鍵優勢。從2012年到2014年,隨著研發團隊的擴大,游戲變得更復雜,這時候我們需要更大的團隊,有美術,有程序策劃參與進去,加入整個工作流開發,所以Cocos Studio就在這個時間點里推出來了,它是所見即所得的編輯器,解決了工作流協同分工的問題。在去年的秋季開發者大會上我們推出了Cocos解決方案,追求從設計到開發調試、到上線的完整的工具連。去年Cocos還只是一個概念性產品,而今天Cocos發布了v2.2版本,已經有很多開發者在使用了,在座各位之中應該就有Cocos解決方案的用戶。


感謝各位朋友的厚愛和支持,Cocos今天在東亞地區仍然是市場占有率第一的手機游戲引擎。國內Q1的標桿性游戲《夢幻西游》,上周微信游戲新推的《全民主公》,以及霸榜時間非常長的《刀塔傳奇》《神武》《三國之刃》《全民飛機大戰》《雷霆戰機》都是采用Cocos引擎開發。昨天中國appstore暢銷榜的前十名仍然有七個游戲采用Cocos。而這個月日本有一天發生了前四名都是Cocos游戲的情況,Aiming的《劍與魔法》、Mixi《怪物彈珠》、Gumi的《勇者前線》,還有據說正在用Cocos移植出中國版的《智龍迷城》。韓國老牌Cocos游戲《七騎士》《天天富翁》仍然高居榜首經久不衰。這個市場占有率低和用戶認可之下,我們一直在持之以恒地做很多枯燥的基礎的技術改進:跨平臺、更小的包體積,中國特色的在線熱更新,還有性能。我們每加進去一個功能,帶來更大的包體積、更高的性能損耗,然后再去仔細優化得更好。


我和大家分享幾個基礎改進數據。


1.首先是安卓兼容性。我翻出了前面幾年的演講記錄,在2013年Cocos 2d-xv2.2的安卓兼容性是85.71%,當時覺得挺滿意的,因為競爭對手的安卓兼容性只有50%~60%。然后在2014年春季我們發布的Cocos 2d-x v3.0,同樣在Testin上勾滿200款安卓手機測試,兼容性90.48%。

去年我覺得這個數字已經無法再提高了,滿分100分的卷子考90分已經非常難了。而在這個月我們剛剛發布的3.5版本,兼容性驚人地達到99.37%!我當時以為同事忽悠我,怎么可能呢,于是自己用公司帳號登錄到Testin里面下載測試報告,確實是99.37%,沒有看錯。這是我們Cocos 2d-x最新的版本v3.5。在今年秋季開發者大會能不能更高呢?說實話我沒有信心,因為99.37%已經非常高了,不過有挑戰更高目標總是有樂趣的。


2. 包體積。大家知道Cocos的包體積控制得非常好,但我們把包體積繼續又往下降了。因為我們把網絡庫替換掉了,直接用平臺接口封裝,于是iOS的IPA包從5.6減少到4.3M,安卓從2.9M減小到2.0M。


3. 然后是性能提升。這是我們當前版本正在做的SpritePolygon。我們之前用ARM DS-5對大量Cocos游戲做性能分析,結果發現瓶頸在GPU像素填充率上。我們有很多2D游戲,比如《三國之刃》《劍魂之刃》這類橫板游戲的弧形刀光技能不是用粒子做的,而是用序列幀動畫貼圖去做的,用矩形把整個紋理貼出來,但實際上弧形的刀光以外的區域全部是透明的,即使是透明的仍然還塞給GPU做渲染。這沒有必要。


我們用這個多邊形的SpritePolygon,把頂點把刀光摳出來一個多邊形,底下透明區域全部不用塞給GPU渲染渲染,性能就會高很多。可以看到同樣的Sprite數量,我們用SpritePolygon渲染的時候,頂點相比原來用Sprite的3萬個頂點增加了一個數量級,達到33萬頂點,但幀率從21幀提高到了30幀,也就是40%~50%的性能提升。我舉這幾個例子只是為了說明,Cocos引擎我們持續做了五年,做了很多底層上很枯燥的工作,在這些細節的數據上不斷糾結,不斷優化。


做得好的方面講完了,然后我現在開始自黑,講做的還不好的部分。我經常拜訪CP,大家知道我拜訪過各位的公司,我收集了很多用戶的吐槽。


吐槽對象主要是以下6點:


1. Cocos編輯器不好用。


2. Cocos版本升級很痛苦,坑爹,還有就升級問題在論壇上罵臟話的。


3. 渠道打包麻煩。一個游戲開發四五個月,光打包上線3個月


4. 包體積大推不動,Cocos引擎雖很小但我要做高質量的游戲,圖片質量很高,隨便上去就100多M,這還是優化過的,《仙俠道》沒有優化前包體積700M,優化得可開心了。


5. H5到底會不會火?這是很長期的問題。2011年開始就是HTML5游戲的元年,之后每年都是元年,一直到現在已經元年四年了,所以今年HTML5會不會火,是不是元年呢?這是個問題。


6. 想轉3D。今年我不想做H5那樣輕的游戲,想轉重度的3D游戲,Cocos能不能支持?


對這6個問題,我依次解答。


1. 首先是Studio編輯器不好用的事情。之前編輯器加了太多的功能,在這半年里我們把功能需求控制住,做了很多基礎底層的優化,不加新功能,先把原有功能做好,做了上百項細節的改進。我舉幾個例子。比如崩潰率。我做UI編了半天,studio突然崩潰了,白干了。之前Studio是5%的崩潰率,而今天這個版本低于千分之二。其次編輯器工程的導入導出、存盤時也提升了。在舉個例子,美術人員改好圖片,還需要打開Studio做導出太麻煩了,現在Studio提供命令行工具,美術把資源提交到服務器上,服務器上運行個腳本命令就可以把資源就導出好了。類似這樣細節的改進達到上百項。


2. 版本升級痛苦。我們學習了Android把API Level和版本號區分開來的做法。一個API Level會跨多個版本。這次針對Cocos v2.2我們整理清楚了Cocos API Level 1有2500多個API。我明確了有這么多API之后,可以在若干個版本里保持不變和后向兼容,比如第4個版本里升級到API Level 2修改了0%,新增2%的API,那么舊的游戲移植上來是兼容的。假設有一天我了改變5個API,新增10個API,減少3個,那么明確了這個API變動個數范圍,我就可以做自動升級功能幫助大家自動把版本升級上來。


3. 渠道打包麻煩。去年我們推出打包工具AnySDK來解決這個問題,但很多大公司不敢用,因為我的DAU、用戶充值數據你都知道了,我怎么用?渠道方面也有担心,我這里的充值數據你都知道,渠道收入多少你都能推算出來,我不放心。所以今年我們推出AnySDK企業版,各位CP買一份服務端拿回家自己搭建,所有數據我們永遠看不到,對渠道而言這個數據只有我和CP知道,第三方不知道。


AnySDK企業版解決了游戲開發商和渠道兩邊的担心。今年AnySDK推出的第二個功能是SDK插件自助開發。我們團隊人力是有限的,可以維持到國內Android渠道Top20或30渠道SDK更新,每渠道平均每個月更新一次SDK。但有可能我們家老板和某個小渠道關系特別好,一定要上那個渠道,否則老板那關過不去。這時候AnySDK的人力是沒有辦法支持小渠道的SDK集成的,這時候你就可以自己開發一個SDK插件放進去,不需要等待我們的SDK發布更新。


另一方面,我和中小渠道聊過,他們覺得很痛苦的一點是,比如我想要大CP的游戲,比如想要《神武》,于是派商務天天去刷臉,但是大CP說,我大渠道都沒有接完哪有空接你中小渠道的SDK呢?現在問題被解決了,各位中小渠道的朋友你可以把自家SDK封裝成AnySDK的插件,提供給所有CP。比如今天心動已經在用AnySDK打包他們的游戲,不論多少個渠道都一鍵打完,這時如果你家渠道的SDK在AnySDK里面,心動那邊也是一鍵打完,中小渠道也可以第一時間拿到大公司的好游戲同步上線,不用讓商務很辛苦地去刷臉求人家接SDK了。


4. 包體機推不動。去年我們開始推Cocos Play縮包服務,對一個需要玩家練到100、200級游戲來講,玩家為什么剛進游戲新手村的階段,就需要下載99級打boss才需要的美術資源呢?現在Cocos Play提供了一個圖形化工具,讓大家可以用拖拽方式組織不同場景資源,每個資源場景單獨打包,哪些場景的資源是游戲一啟動就可以玩到,哪些是不需要在初始包里面包含,可以后面邊玩邊下,這樣包體積就輕松下來了。Cocos Play的縮包將會作為一項付費服務推出。


5. HTML5會不會火?后面我們有專門的HTML5章節和圓桌討論。(詳見今日微信第三條)


6. 3D編輯器和3D游戲案例,上午也有專門的章節展開討論。


所以今天大會早上內容主要就圍繞這6點展開。我前面提到的所有的優化和槽點問題,除了SpritePolygon是在當前版本開發以外,其他所有功能和優化在Cocos v2.2版本里已經具備了。Cocos v2.2在幾天前已經發布,大家可以到www.cocos.com里下載。


Cocos v2.2里面最重要的三個亮點功能,一是提供了3D編輯器,二是完整工具鏈,可以完整地完成新建、開發調試、到發布的全過程,三是開放的Cocos Store接入各家服務。更具體的技術細節。Cocos在去年9月份發布的預覽版還不支持JavaScript,但今天的v2.2已經支持了。開發者可以在里面新建一個JavaScript游戲,編輯、開發,然后發布到native和html5兩個平臺上。其次,Cocos v2.2里面可以選擇匹配不同的Cocos 2D-X版本,比如我游戲開發一半,不想升引擎版本,所以想用v2.2版的Cocos,匹配舊版v3.4的Cocos 2D-X,這樣需求可以被滿足。還有大家反饋需求很強烈的,我需要在不同工程之間要拷貝資源,我做RPG或卡牌成功之后會繼續開發同類型的游戲,換資源,會在不同的工程資源里相互拷貝,這點在Cocos v2.2里面也支持了。最后是允許嵌套動畫,把大動畫分成多個小塊的動畫、分給不同美術人員做,這點也支持了。


大家知道,實際整個Cocos開源社區有非常多的碎片,技術碎片,產品碎片,我們已經通過Cocos v2.2完成整合。你開發C++、Lua或JavaScript游戲,不需要考慮選擇哪個Cocos引擎的分支來做這個事情,因為所有產品已經整合起來了。把技術和產品整合清楚之后我們才能夠在上面更好地推出服務,把這個平臺能力開放出來。Cocos社區有幾十萬的開發者,今天我重新做一個游戲廣告服務,這時候我需要有大量市場推廣費用來推廣我的廣告SDK,但如果這個廣告SDK接入Cocos平臺,就可以快速地到達幾十萬的Cocos開發者。包括我們自己的服務和合作伙伴的服務都是一樣的。


我強調一下技術支持的入口。最近我們整理了技術支持的路入口,QQ群原來有20、30個,現在已經整理合并為12個。大家可以搜索“Cocos官方群”加入,手快有,手慢無,昵稱改叫“Cocos官方技術支持人員”可以幫你快速混過群主的審核。有的公司不允許上QQ,那就用Email。其實我推薦的是通過論壇和技術支持系統,特別是技術支持系統。首先大家可以在feedback.cocos.com網頁上提交問題,其次可以在Cocos引擎的啟動器里,左下角有個feedback的地方提交問題。在這個技術支持系統里我們可以統計每個問題的解決速度和多少回復解決等等數據,評估我們的服務質量,給大家帶來更好的技術支持服務。教大家一個比較壞的方法,用美女頭像,我發現過用美女頭像在論壇上發布問題,得到回答的效率大大提高。前天晚上12點鐘我在知乎上面看到一個美女程序員提問,于是轉發到公司群里面,5分鐘里面幾個技術主管爭相上去回答。


最后,大家可以看到,Cocos里的完整工具鏈,可以幫助大家從idea之后開始,在場景編輯、UI和動畫編輯器里設計出來原型,基于Framework高性能和兼容性、在Code IDE里面開發和調試,最后用AnySDK打包多渠道上線,Cocos這條工具連已經完全整合清楚了。



游戲葡萄 2015-08-23 08:47:21

[新一篇] 觸控CEO陳昊芝:兼容99.34%設備 進軍H5 Cocos 2015

[舊一篇] 開發者談:手游新手引導最好融入到玩法中
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表