egret 和cocos2d-x-js哪個目前更穩定更好用? ?

貌似cocos名氣大一些?因為神經貓的大火才知道egret,玩了一下他們的demo,貌似性能一般,不過對flash開發者特別親切。有人對比過這兩個引擎嗎?分析下


題主的問題是穩定和好用。

從穩定上來說,這兩個目前都相對上穩定,絕對上不穩定。

而好用大多數情況下是個人喜好吧?有些人以為 PHP 好用,而有些人以為 C++ 好用。

我做了2年 cocos2d-x 開發,主要基於 lua 和 cpp,沒有研究過 js。觸控目前對 lua 綁定的支持並不大,兩年前是這樣(Cocos2dx+lua合適還是Cocos2dx+js合適? - JavaScript),現在好像依然是這樣。

所以,觸控應該是花了很多精力來做 cocos2d-x js 支持。

我沒有研究過 cocos2d-x js ,所以沒有權利評判它,但評價一下 cocos2d-x 應該還是可以的。

cocos2d-x 2.x 的代碼質量一般,但 3.x 有了很大的改善,問題是工具鏈這部分,cocos studio 不但沒有給引擎添彩,反而是拖了後腿。

cocos studio 的問題上面已經有同學提到了,雖然誇張了點,但畢竟是事實。我從0.3一直看到1.0,發現還真的沒辦法用在工作流中。遂徹底失望。

例如骨骼動畫這東西,本來 cocos studio 中的 Armature 就是移植 dragonbones 2.2 來實現的(在cocos2d-x中使用CCArmature實現骨骼動畫,

cocos2d-x專用的DragonBones2.2),最後卻完全改成了自己的東西,和 dragonbones 不兼容,而且提供的編輯器也很難用。

egret 我用了1個月,所以還是個菜鳥。

egret 提供的工具雖然也有這樣或那樣的問題,但看得出來很多地方是用心了的,跨平台一開始就選了 AIR,這也是能快速推出這麼多工具的原因之一吧。

雖然我不用 egret 的工具鏈(僅僅使用引擎),但從團隊中的其他人看來,他們願意去用 egret wing 而不用 vs 的 ts 插件(有些還是c++程序員),這就說明了這工具做得還是蠻好用的。不過有些工具也是有問題的,例如 texture merger 的實現就不是很完善。

總之,對於有 ActionScript 基礎的同學來說,選擇 egret 的確是可以快速上手。而沒有這方面基礎的同學,如果覺得使用 cocos studio 沒有什麼困難,或者根本不使用 cocos studio ,那麼用 cocos2d-x js 也挺好。

的確如 @陳升想 所說,撕逼無義,還是好好做好產品再說。


引用【王哲】的評論

只能說你的內幕太不值錢了。我這邊的內幕是,cocos2d-html5核心人員之一離職,再帶走我引擎組兩個骨幹,用cocos2d-js做刀塔like的遊戲,後面由於代理的原因被強制改成egret引擎,白鷺對此遊戲寄託無比厚望希望稱為切入重度遊戲的標杆,結果7月發布,8月公司解散,現在這波人又用回cocos了,原因不明。

首先,我個人不太願意介入Egret和Cocos的鬥爭中,王哲大神是我非常尊敬的前輩,但涉及到公司名譽,作為當事人,我不得不澄清幾點:

1,前半段說的基本屬實

2,我們公司沒有解散,還擴張了

3,我們也沒有用回cocos(畢竟cocostudio太難用了,抱歉了)

4,Egret和Cocos都是非常好的引擎,各有優點,選誰就看團隊的技術基因和積累和項目特點

最後,現在撕逼無益,大家還是好好做產品吧


egret對於flash開發者比較親切?我其他不說了,光一個movieClip就真不親切了。egret喜歡閉門造車,都是自己重寫一些世界已經有默認規範和用法的東西。關於這個的牢騷,我也在GameRes上吐槽過[深入思考]從使用Egret的不爽中提煉的2個產品設計要點。

cocos2d在做UI等方面的確是有欠缺的,但是相比egret還是好很多,畢竟成熟太多了,egret在很多方面沒法給人一種做引擎的感覺,前一陣子還透出了想轉型做編輯器的味道,但是一看那個飛機遊戲編輯器,我就覺得太多太多的不靠譜了。

雖然我不是一個CTO,甚至不是一個程序員,但是讓我一定從這倆裡面選一個,我一定選cocos2d。


我用過egret,用了一段時間不習慣又用回cocos2d-js了,最大的原因是cocos2d-x可以通過jsb實現native版本,而egret只能靠他家的runtime。雖然jsb的native版本有許多坑,但是小修小補就可以用的很流暢,還可以出windows版,mac版。配合webstorm也很快,更重要的是直接用js而不是ts,還可以用babel來個es6,比ts用著要爽。

所以我的建議是如果沒有native的需求,只是做html5的遊戲,以前沒有用過cocos2d-x的話就直接上egret。

如果用過cocos2d-x,還是建議用cocos2d-x js。

我當時用的是egret1.5,編輯器是比較強,但是多而雜,並不是宣傳的那麼好用。可能是我用的姿勢不對吧。


推薦phaser.js成熟靠譜,框架全面基本無坑,性能不錯底層是pixi.js。

其次cocos2d-js,jbs有小坑,hybird性能可以接受,但文檔非常狗屎(js這一塊,基本是要看c++的對比js來開發的)。。

egret沒做過項目,似乎案例也極少,看了一下,api基本是原封不動照抄as3(這點對原來flash開發人員有是吸引力的,但照抄說明框架設計者設計思維的匱乏),功能有限,基本只能看做是一個renderer引擎,離pixi.js似乎更近一些。


題主, 去京東 淘寶買東西, 千萬別看差評, 看完你啥都不敢買了. cocos2d 經歷過那麼多產品的錘鍊, 現在仍然有那麼多的用戶, 它的質量是靠得住的. 白鷺也是類似的情況(但歷史底蘊確實比cocos2d差, 但是歷史包袱也輕) . 其實說到底 引擎的選擇往往都是由團隊大多數人員的喜好和團隊大多數人員習慣決定的. 而不是引擎本身的素質. 可能是我見識短, 我還真沒見過哪個遊戲項目要靠引擎來決勝負的. 換句話說 , 能用cocos2d做成事的, 用白鷺也成, 做不成的, 用赤橙黃綠青藍紫, 啥鷺都做不成.


如果大型遊戲,強烈建議不要使用cocos2d-js

我們目前的幾個項目都是cocos2d-js開發的,我打算把這幾個項目轉egret。有如下幾個理由:

1、cocos ide有BUG:斷點會崩潰、代碼提示很差、內存太高、虛擬機的菜單欄會影響事件(迭代了很多版本,這菜單欄BUG都沒修復)

2、studio的工作流在幾個引擎中是最差的,而且有BUG。經常和實際表現不一致。而且內存佔用大,會崩潰。不能繼承(這個問題最嚴重,不能繼承按鈕,那麼按下縮放等高級功能就很蛋疼)。

3、架構太差。寫點小功能沒事,如果想寫大型遊戲,這套架構會讓你抓狂!比如最簡單的按鈕事件,我必須在事件方法裡面加個觸摸類型判斷。一個很簡單的點擊,就多出很多這種相似的代碼!4、UI有好幾套,然而每一套都有BUG。CCUI的設計也是很糟糕的!同時也是崩潰的罪魁禍首。

5、引擎BUG問題,很多BUG會讓你欲哭無淚,比如坐標會出現undefined。再比如熱更新的BUG,XCODE編出的包默認是js而不是jsc,當這個包發布商店就會出現不能熱更新的問題,同時也進不去遊戲,卡在了熱更新界面。(這個問題導致我們流失了3個月的用戶,知道蘋果商店通過審核位置),再比如java/objectc和js的交互,這個都有問題!再比如:ios第三方輸入法會導致崩潰!

6、工作流問題,IDE的斷點的觀察變數很不友好、studio導出的配置很大、studio擴展性很差。在IDE 1.2版本出來之前,我們團隊甚至無法斷點,只能列印日誌來debug。

7、工作效率問題,代碼提示先不談。我實現一個簡單的列表都能折騰很久,那ccui的list真是太不好用!除此之外,裁剪、遮罩這些只需要一行的代碼,在cocos下面需要無數行!

8、引擎升級問題:cocos大概一個月1個升級,egret是2周。然而cocos升級會帶來大量的新BUG,而且兼容性很差。導致我們現在還用3.0版本。最蛋疼的是,官方的3.6版本又不能斷點了!3.0升級到3.6還會導致布局混亂、九宮失效、崩潰閃退(絕對不是代碼問題這個解釋了)!基本上cocos每加個新功能都會帶來無數新BUG,老BUG修復量也少,我論壇反饋的問題經常需要迭代2到3個版本才修復,下個版本修復兼職是不可能。而egret不僅迭代快,BUG修復也勤快!也很少有一些導致產品質量的驗證BUG。

9、官方人員態度問題:我在cocos論壇發的BUG反饋,過了7天才有人來回復。地址(從3.0到3.1和3.2的BUG,官方幫忙看下),再看下egret我發的BUG反饋,當時是下班時間,然而第二天一早就回復我了。地址(Egret社區-BUG列表)

10、API問題:cocos經歷了3個大版本,官方API文檔也有的API,實際盡然是沒有的,官方回復是還沒加入js綁定。

11、跨平台問題:cocos2d-js經常是HTML5和JSB表現不一致。導致我們現在只能專註JSB而放棄HTML5版本。egret很少有這個問題。

12、性能問題:先拋開runtime。如果你用了ccui,那麼我100%保證你的cocos2d-js的性能會被egret秒殺。再來說下native下面的性能對比,cocos的人說egret是js寫的邏輯,而他們是綁定。那麼問題來了,在現在,js的邏輯產生的性能壓力一點都不是問題(參考node.js,能用js寫伺服器了都)。主要的性能壓力其實是在渲染上面,而他們2個都是opengl作為渲染的。如果用了ccui,那麼還是被egret秒殺。那ccui帶來的drawCall真是太!!再來談runtime,egret現在很多瀏覽器都集成了runtime(可以opengl渲染代替canvas渲染),而cocos-js只是說在合作,已經慢了一步。

13、產品路線圖問題:cocos的幾個產品一心在弄3D,egret都已經自己搞了一個IDE了。開發基本的生活cocos都沒保障好,就去想和u3d打架!

14、內部問題:cocos估計內部很不和諧,ide據說是1個人在開發,studio是30個人(30個人整出這東西),而且studio是用的.NET搞的,跨平台最呵呵的技術!QT、AIR那些那麼多高效率,擴展性強的技術不用,選了個.NET。。。。

---------------------------------------------------------------------------------------------------------------------------------

題外話:說了那麼多cocos的不是,我也曾試著愛過它,我甚至開發了一個和egret wing一樣的UI編輯器,寫了個和Flash/Flex一樣的API(egret用的這套,這種架構很好用,簡單明了)。其中UI編輯器還加上了unity3d那種綁定腳本的功能。然而因為cocos底層的一些令人發狂的BUG,我最終是放棄了。有egret這個車子在,我還造什麼輪子?我打算把手裡頭的這套cocos的東西開源。然後去整egret去!

---------------------------------------------------------------------------------------------------------------------------------

再來個題外話:

遊戲引擎cocos2d-js和egret 對比

這個是百度搜索第一的對比,裡面說cocos2d的工具比egret多,我不否認,但是能用的基本沒有。而egret的工具很穩定。就拿最簡單的骨骼動畫,cocos連龍骨都不支持,studio裡面的骨骼設計也是坑的不行,egret的骨骼設計工具從界面和實用性都已經完爆studio了!

再來說上面的地址裡面的成功產品:捕魚達人、DOTA傳奇、我叫MT那都是cocos2dx寫的,和js版本一點關係都沒有!請問你有見過網頁版的刀塔傳奇么?

上面的開發語言對比,大項目來說,ts真的是完爆js!js那不小心就會出錯真心不適合大項目,不然微軟不會造這個輪子。

上面的參考資料對比,cocos2d-js的文檔連參數的注釋都沒,和c++文檔作參考也不行,很多參數是不一致的!而egret在開發工具裡面就繼承了中文的幫助。

從目前狀況看,今年絕對是egret產品井噴的一年,不信走著瞧!cocos真是把我坑慘了!

---------------------------------------------------------------------------------------------------------------------------------

再次申明,請拿cocos2d-js或者JSB的大作出來,不用拿2dx的東西。說到2dx,你們再去了解下,榜單上,有幾個人是沒改過引擎源碼的,有幾個遊戲能隨著cocos引擎升級而升級。用studio的又有幾個。並不想和王哲斯逼,只是希望你們能正視BUG,提高體驗。如果好,我們團隊會考慮cocos技術的,否則只能用egret和unity3d了。我說cocos這麼多不是,也是希望他成長,能給開發者帶來更多利益,帶來更多方便,而不是各種無厘頭的問題,各種蹩腳的手段去開發。還有,我說的這幾點,@王哲 你接招,如果我不說出這些BUG,這些問題,那麼估計還不一定改。egret同樣有個人叫王澤,然而他的理念完全當我們開發者是用戶,提高開發體驗,這個很重要的。


引用1樓袁浩的第一句話:如果大型遊戲,強烈建議不要使用cocos2d-js或者cocos2d-x。

這張截圖是我現在泡知乎立刻截的AppStore中國暢銷榜前五名,清一色基於cocos2d-x引擎開發。不知道只在知乎上發過一個貼子的袁浩同學是如何定義「大型遊戲」的?

拋開榜首遊戲不談,我手裡最近3個月國內上線的手機遊戲情況。

事實勝於雄辯。

另外,袁浩說的所有技術問題大約70%我接招。回頭安排技術人員改去。

引用有一層樓匿名人士的評論:有些內幕如果知曉的話,一般人評判起來會毫不猶豫地選擇Egret,至少安心~

只能說你的內幕太不值錢了。我這邊的內幕是,cocos2d-html5核心人員之一離職,再帶走我引擎組兩個骨幹,用cocos2d-js做刀塔like的遊戲,後面由於代理的原因被強制改成egret引擎,白鷺對此遊戲寄託無比厚望希望稱為切入重度遊戲的標杆,結果7月發布,8月公司解散,現在這波人又用回cocos了,原因不明。

其實我根本不想和白鷺撕逼,在原生遊戲時代cocos和unity火拚的最後結果是誰都沒得到好處。至於說cocos不適合開發大型遊戲,抱歉了我只好piapia打臉了。


袁浩同學說得很好了。

Cocos2d-x和Cocos2d-Js是完全不同的兩個東西,不能以-x的使用體驗來評價-Js

Html5開發遊戲,性能永遠是大問題,要自己把握好。


我使用cocos3年了,目前來看,總體來說還是蠻愉快的,但接下來吐槽

  1. cocos對質量重視總得不夠,太關注功能數量了,很多上線的新功能總是帶有bug,我都懷疑你們的測試效率
  2. 產品銜接性太差,ide從eclipse,intellij,再到studio,作為這麼大一家公司,感覺你們推出產品太草率了,我們開發者跟著不停采坑,剛剛習慣的一種方式,過二天就重新,感覺你們就是人力有限下做太多事情,真的要踏實做好手下的東西
  3. 文檔質量差,很多功能壓根就沒文檔,需要我們不停的翻源碼。真心比egret的文章質量差....,或許你們太關注技術本身了!
  4. 對比egret,覺得你們基因沒你們好,但他們做事絕對比你們更講究步奏和更有條理!
  5. 2d和基本功能都未完善,為啥急著做3d?欲速則不達啊!真心希望cocos好好做起來!

總結一句:egret現在是小孩,但眉目清秀,cocos2d-x是個壯漢,但是肌肉極為不對稱


我站在玩家立場來答一下這事. 希望搞前端引擎的兄弟們都冷靜下.

遊戲,最主要還是玩家喜歡,然後買單,這是根本. 所以題主的問題改為"玩家會為什麼引擎買單?" 才符合你問題的原始意義. 然而這個問題的正解卻無論如何都無法在這裡獲得, 每個搞引擎的人或者公司都會真誠的告訴你, 用我的吧! 我有一百個理由和證據讓你相信,你的選擇是正確的.

然而我是玩家,我其實並不關心你用什麼工具,我在乎的無非是:我首先能看到你,其次你做的菜是不是合我口味(合口味不代表美味噢! 這點很重要). 所以我引用到實際市場中來反問, 排行榜前5的東西美味嗎? 和排行榜本身美味嗎? 兩個延伸問題(感謝1樓提供的素材截圖:) ). 通過解釋這兩個問題, 我想或許你自己就能得到答案了.

1:排行榜本身美味嗎? 在某年, 被國內大鱷們的刷榜壟斷後, 對我而言,已經不再那麼美味了,菜品名字依然不斷在換, 不過味道呢? 不過菜單上我也看不到其他的菜,姑且就吃吧,沒法子, 老闆買單吧.

2:前5的手游美味嗎, 上面的問題已經給出答案了. 前5的菜名可都是杠杠的吸金利器啊,(味道雖然....) 但是前5的手遊玩家買單了, 無論主動被動,都買單了,這是在商業意義上的結果.

所以, 你發現沒, 這個問題和你用啥鍋炒菜關係並不大,我根本看不到. 換言之,手游本身不需要太強的引擎來做支撐, 在當前的環境中, 菜名和飯店本身才是國內市場的本質. 菜好吃不好吃,已經沒有我們玩家說話的餘地了,因為我只能吃到菜單上有的 :) . 在玩家這個層面,我其實挺詫異老外, 他只吃他想吃的,你塞給他的, 他聞都不聞, 還丟一句 holy shiiiiiiiii T_T!

最後極其負責的解答你,這兩個都足以勝任你的菜品.

egret生態鏈比較完善(戰略層面,實際上還需要把工具鏈再打磨打磨), 如果HTML5真的起飛,那他會飛的更高更輕盈.

coco 年紀大些, 踩得坑更多,填掉的坑也已經很多了,這是優勢.如果HTML5起不來, 那他也給你買了一份保險, 自己想.

(ps: 僅在手游的領域中,你別故意抬杠,拿去搞端游或主機 :) , 不過你的菜名和飯店才是你關鍵啊)


用cocos2d-js寫了三消遊戲遊戲,html5版各種坑,各種性能問題啊,特別是ccui,遮罩性能低得嚇人。用clippingNode拼接的不規則遮罩直接可以讓遊戲少30多幀。後面不能不什麼都自己寫,只用引擎最基本創建場景,創建層,創建精靈了,哎,還在優化中!


我們用Unity3d做了一個類似coco studio 的編輯工具,有人信么


現在在研究layabox,到底選哪個做項目呢 呵呵


其他不評論,但cocos2d-js文檔少的可憐


沒有用過cocos-js.不過現在egret用的貌似還挺好的啊.而且解答也挺及時.希望國內引擎開發公司都加油,不要糾結再在誰的開發者多,誰的開發者少.

有用VS2013或者VS2015開發node.js的朋友.一起交流.


一直用cocos2d-x開發,白鷺不好說,沒用過。不過最近用cocos2d-js開發項目,真的就一個字:坑!

首先cocos引擎版本,3.10。

說說目前接觸下來我遇到的坑點,其實就一個,c++版本和js版本嚴重不匹配,js版本源碼比較落後。不修改js源碼,已經到了不可用的狀態。比如,在官網更新提示中提到的修復PageView。

另外,在官網論壇提了疑問,在cocos引擎反饋界面提交bug,暫未收到回復。

@王哲大神方便的話,希望能給我解讀一下。


一直在用cocos2dx cpp版本,配合cocosbuilder,從來沒用過cocostudio,實在搞不懂,引擎都是c++寫的,為什麼編輯器選個.net??用Qt開發不是水到渠成的事嗎?開發者也好擴展啊!studio都幾年了還一個爛樣!新版編輯器竟然沒有骨骼動畫了,做遊戲難道不用動畫了??


白鷺剛出來的東西能不勤快點嗎,時間久了,用戶多了,你看人家還叼不叼你


我能說egret的代碼注釋雖然是中文的但是我看不懂嗎。支持tilemap的代碼剛寫完被告知最新版本已支持,心想卧槽白寫了,結果升級完發現根本沒有,原項目反而不能編譯了


推薦閱讀:

目前有哪些比較成熟的 HTML5 遊戲引擎?
怎樣以簡單易懂方式向普通人解釋 HTML5 對 HTML 技術的改進?
JS動畫比CSS3動畫性能誰更好?
學習路途迷茫,請各位前端大佬幫忙制定學習路線,我該如何入坑?
input type="submit" 和"button"有什麼區別?

TAG:遊戲開發 | HTML5 |