怎樣看待越來越多cocos2dx程序員轉unity3d,unity是否是大勢所趨?

背景:我以前公司一個組的四個程序(包括我)問起近況都轉unity3d了,包括在一些unity和cocos技術群里,也能看到許多人轉了unity,唯獨沒見過unity轉cocos的。

unity就使用來說確實有許多便捷之處,開發周期也能減短不少。

那麼是否unity是大勢所趨呢


轉Unity是明智的:

1.先說說為什麼cocos2d-x之前那麼火:

a.開源:每個CTO都認為開源可以更好的掌控引擎,萬一引擎坑了可以馬上改,包的大小比較容易控制,跟平台語言相互調用也方便。2.x時期,坑是一點點填得差不多了,許多技術實力強的團隊也完成了自己的改造, 然而cocos2d-x在2.x到3.x期間引擎架構改了,連新建工程都一個版本一種方式,這期間坑多得讓很多人都不想陪著踩一直用著2.x,現在好不容易穩定了,已經失了許多人心。

b.專註2D:Unity在13年下半年才正式發布2d遊戲的原生支持,之前必須依靠插件才能比較順暢的開發2d遊戲,顯然已當時的手機性能,開發2d是比3d更可控,流程更短。因此當時在手游領域,cocos2d-x可謂突飛猛進,一日千里。

c.跨平台:雖然Unity也能跨平台還是一鍵發布,然而Unity 3.x~4.x只有收費版才能支持和平台語言通信(obj-c,java等),不買正版等於沒法接各種sdk。所以還是cocos2d-x這個開源的C++引擎做起這些接sdk之類的平台相關的工作比較靈活。

d.cocos2d-iphone的口碑:這也是觸控把cocos2d之父從Zynga挖過來做VP的原因之一,cocos2d-iphone作為iphone上早期的開源項目知名度和開發者數量都挺不錯。

2.再說說Unity3d更值得選擇的原因:

a.強大的編輯器:雖然不少程序員不太適應組件式的開發思維,然而配合穩定流暢設計合理的編輯器,很多工作可以分配給策劃和美術,程序員專註於遊戲邏輯。必要時通過資源商店可以購買種類豐富的插件和美術資源,甚至自己開發定製的插件,節省了寶貴的開發時間。

反觀cocos2d-x,最近這個版本的cocostudio才感覺不卡,之前的用幾十分鐘就卡得不行……功能上算是慢慢趕上來了,然而要達到unity那種隨心所欲擴展的境界,估計是不可能。

b.方便的跨平台:相比cocos2d-x那種還要打開ide導入工程才能發布跨平台的原始方式,Unity很早就支持了一些平台的一鍵發布,只需簡單的設置。唯一不足的就是某些平台的發布體積較大,需要優化。

值得一提的是直接發布webgl版本(通過il2cpp將c#位元組碼編譯成c++再用emscripten將c++編譯成js),目前時髦的瀏覽器都可以直接運行,無須任何插件,這也讓adobe互聯網多媒體的霸主地位開始動搖。反觀cocos2d為了兼顧web,搞出了cocos2d-js這樣的方案,結果是花費大量精力去做到js和c++方面api的步調一致,在發布的時候發現即使在web上流暢跑起來,要發布成原生版本還是有許多坑要探索。

c.領先的3d和日漸完善的2d支持:經過10年的積累以及近幾年的高速發展,Unity的3d部分是比較成熟的,能夠滿足大部分遊戲開發者的需求。配合強大的編輯器,cocos2d-x想要追趕沒那麼容易。2d的支持雖然比較晚出來,但是之前的許多優秀2d插件已經證明了Unity可以勝任2d遊戲製作。

d.收費模式:現在的時代,獨立遊戲是創新的代名詞,對引擎來說,獲得獨立遊戲開發者的青睞是非常有意義的。Unity在4.x的時候還扭扭捏捏,沒法用個人免費版接sdk,因為不允許和平台語言互調,而5.x是完全沒有這個限制,也就是說個人免費版也可以調用java或obj-c寫的插件了。

而收費版只是要求一年掙了十萬美刀的用戶必須買個正版,也就幾千刀而已,比虛幻4那種要貢獻部分收入的政策簡直太良心。

3.綜述:

cocos2d-x本來是前景一片光明的,之前作為一個開源的跨平台手游2d引擎打出知名度,觸控再用這個知名度去拿一些海外作品的代理間接變現。然而後面為了追求在財報上直接體現引擎的價值,去走一條大而全的道路,什麼都想做,2d的流程還沒做好,又搞web和3d,什麼都沒做好。而Unity做了好用的編輯器,設計了十分友好的製作和發布流程,以此為根基牢牢把持住3d引擎最大的市場佔有率的同時,穩紮穩打,一邊提升3d方面的質量,一邊借鑒2d插件來開發原生2d功能,更開發了新的ui系統(這部分還開源了),還有通過建設資源商店以及遊戲視頻分享平台等等周邊服務來維持一個健康的生態,整個戰略都十分清晰穩健。順便說下像虛幻4,cryengine這些3A領域的霸主,想要在手游和獨立遊戲這裡跟Unity爭搶一畝三分地,這方面的積累還是不夠。

手遊行業現在已經進入了資本壟斷大眾市場,獨立遊戲爭鳴小眾市場的時代,無論是做更能給資本講故事的重度遊戲,還是追求藝術理想的獨立遊戲,Unity都能很好提供一整套的成熟的解決方案,反觀cocos2d-x已然亂了陣腳,只是在宣傳上下足了功夫,看我什麼功能都有,看國產排行榜上多少個遊戲是用我開發的……然而用起來是那麼的艱澀,除非是技術實力、人力都充足的中大型團隊可以在開源的基礎上改造改進,其他小團隊只能依賴引擎方的,在遠景上已然黯淡。所以我個人認為,Unity是遊戲從業者的一個比較好的選擇。以上拙見僅供參考,歡迎指正。


談幾點吧,都是個人看法,可能很多錯誤,算是拋磚引玉。

cocos相對於u3d的缺點。

1,盈利方式不清晰。作為開源引擎,cocos的資方觸控科技目前還在摸索盈利方式,除了捕魚達人,目前還沒有一款自研產品是賺錢的,而cocos引擎本身又是開源,無法保證盈利。cocos的未來發展堪憂。

2,人員更換頻繁。大家常常詬病cocos的編輯器cocos studio不好用,實際上是實習生寫的,寫完之後就辭職了,而後續的更新要重做,工作量太大牽扯太多,所以cocos就在原來的基礎上不停的添加新功能,而不是重寫編輯器的架構,改善編輯器的體驗。之後,整個引擎組成員基本都被白鷺引擎給挖過去了。。。真是多災多難啊。

3,引擎架構更換頻繁。這個大家都知道,cocos 2.0的項目如果要升級成3.0,基本放棄吧。。。。很多函數都改了。

4,3d遊戲漸成主流。隨著高性能智能手機的普及,以及重度3d遊戲的泛濫,用戶對3d遊戲的需求日益增長。而手游剛開始,大部分用戶其實是休閑用戶,以前沒接觸過遊戲,這些用戶對於2d遊戲更有好感,學習門檻低。但是隨著手游市場的成熟,玩家對3d手游的接受度會越來越好。

4隨著網路的普及已經移動資費的調低,cocos相對於u3d包體小的優勢將蕩然無存。而且cocos最近的更新版本,包體也越來越大了。

5,u3d強大的插件庫。可大大提升開發效率,而cocos的插件功能遠不如u3d那般強大。

6,開發速度。同樣熟練的程序員,u3d的開發速度要比cocos快很多。

7,盲目增加3d功能。cocos團隊,為了吸引投資,增加賣點,增加了3d功能。此舉不僅減少了原來2d部分的精力,同時3d部分也遠遠不能和u3d抗衡,吃力不太好。如果cocos團隊,不懸崖勒馬,停止對3d部分的投入,2d部分在以後的表現將後勁不足。要知道u3d本身的2d部分並不比cocos差,而cocos的3d部分和u3d比,就像嬰兒。

8,至於c#和C++的區別,我就不說了,很多人都說過。

cocos相對於u3d的優點:

1,2d是經典類型,有特定用戶。2d遊戲雖然市場份額在衰落,但是永遠有一席之地,夢幻西遊的火爆就說明了這些。

2,適合中小公司使用。小公司如果想靠創意,創造遊戲奇蹟,用cocos開發2d遊戲更好。3d遊戲成本過大,不利於小公司控制成本。

3,編碼結構更可控。cocos的引擎相對於u3d引擎的組件式,編程的架構更容易建立模板,老程序員會更偏愛cocos.

總結:未來是u3d的。。。。。


你看cocos2dx連個自己的編輯器基礎界面庫選型都做不好, 還要提供給美術, 程序, 策劃作為基礎的開發環境, 咋搞?

Unity3D都進入5.X時代了, 界面依然簡潔得體, API穩定

技術架構思想的差距啊


謝邀。

需求決定供給。最近兩年媒體鋪天蓋地地宣傳手游市場的3D化、重度化,對遊戲不甚理解的資本市場也對此深信不疑,再加上一些設計無能的手游團隊的忽悠,一時間,大部分公司都要做3D手遊了。Cocos引擎的3D功能並不強大,開發也不方便,而Unity提供了一套完整而便捷的3D開發方案,並且有著普遍的應用,所以稱為很多團隊的首選。做Unity遊戲的團隊多了,對Unity程序的需求也就越來越大,因此Unity程序的薪資水平也會提高。所以,程序從cocos2dx轉Unity就很自然不過了。


當然unity, 大個10m的對現在網路算什麼。


cocos2d是個好引擎,給國人抄過來轉成C++後正好遇到移動大潮成為了站在了風口上的豬.某控公司用此引擎成功開發了源於街機上的X魚倔了不少金,於是惺惺相惜臭味相投終於引擎團隊被收購,鑒於國人一切向錢看的尿性,硬生生的把還能用用的引擎變成了一坨屎,無論從代碼質量,可維護性,擴展性上來說都不為過.CEO整天想著如何吸引眼球吸引投資來IPO,團隊小兵一看產品命不久矣也抱著有奶便是娘的心態樹倒猢猻散.

引擎這種基礎性的中間件能用國外的就用國外的,條件允許能用商業的就不要用免費的.別和自己過不去.國內環境眾所周知,首先是吃飽飯,除非個別大神單人作戰,盡量遠離國內團隊開發的東西.

cocos2d-x的狗屎運成就了個別人,也成就了早期沾到人口紅利的中小公司,但是放到今天,我只想說,誰用誰就和自己過不去,不過拿來做C++的反面案列倒是很適合.


unity是高產能開發工具,不轉不行啊!我09年從vrml轉過來的。


好的工具是大家嚮往的。

別看unity現在火,就我所知,一部分人也默默地轉了ue4


該說的各位都說了……目前來看,除了免費,簡直沒有什麼優點可以說了,但是免費的東西一般都不會好用啊

實際上我聽說cocos是觸控科技收購的就覺得不太妙……我覺得還沒有哪個中國公司有這個能力做這個事兒,不是技術問題,是心態和錢包問題

另外無論是c++還是Lua都是件很蛋疼的事兒

我覺得cocos會比flash死得更早


Unity3D, 可以做2D遊戲,還可以做VR、AR。

如果程序員從業這個,職業生涯長一些,如是而已。


我說個原因吧,不一定是主要原因,在一定品質的情況下,3d資源比較便宜


是的,unity 各種好,各種牛逼,轉轉轉,立刻轉,馬上轉,今天就轉!

團隊積累算個屁,從頭再來最牛逼。

公司存亡 who care,這家不行換一家。

國人引擎真垃圾,能火起來靠運氣。

不如學習unity,發家致富乾巴爹。

你若要我我是誰,跟風拆橋小能手!


cocos就是典型的步子邁太大扯著蛋了。

有3年的 cocos的開發經驗,從2.0到3.3,3個項目,作為使用的第二個遊戲引擎,對這個引擎有太多的感情。樓上提的那些問題在項目里基本都碰到過,如果沒有cocos留了那麼多坑,我想我也沒有機會去為了填坑而提高自己的技術。本來以為憑藉cocos,國內引擎可以慢慢的趕上國外了,事實上就我自己在那兒YY罷了。

最後轉個引擎 Defold: Free 2D Game Engine for Cross-Platform Publishing

這是King做的,都是做2D,看看什麼是專業的。

如果cocos能做到這樣,我相信很多人還是會路人轉粉,畢竟大家對國產都有一種特殊的情懷。


我不是程序員

不過我說個我看到的

好像美術沒有說之前是哪種畫風,過幾年轉畫風的

策劃也沒什麼之前擅長ARPG,過幾年改做RTS的

果然其他行業還是低技術含量的啊,連一門技能都無法精通


至少有一小部分只是單純的想學一個新的引擎玩玩而已。。。


因為手機牛逼了,可以玩3d遊戲了。就用3d引擎。cocos做2d個人感覺挺好呀


我目前在使用cocos2d-x c++版本開發2d遊戲。我之所以用2dx沒用u3d主要以下幾個原因:

1.技術積累。團隊前幾個項目都是用2dx開發的,積累了不少經驗,不想輕易放棄

2.目前項目是2d項目,且項目的量級用2dx足夠

3.習慣了c++

4.自己用2dx+qt做了編輯器,滿足了策劃的編輯需求

5.開源,修改了部分源碼滿足項目需求

6.目前2dx的2d模塊基本穩定,也加入了組件,開發起來比1年前更方便

2dx和u3d相比最大的劣勢就是工具鏈的缺失,cocostudio完全無法滿足策劃的配置需求,導致項目前期關卡配置周期非常長,嚴重影響了項目進度,當時策劃也不止一次跟我吐槽為什麼沒用u3d。但自從我拿2dx+qt實現了編輯器之後策劃表示配關卡效率提高了n倍,腰不酸腿不痛了,也再沒提過u3d的事了。所以說只要工具鏈健全了,做2d遊戲2dx是完全夠用的。

2dx的第二個劣勢是渲染效率問題。u3d在每幀渲染前對場景做了大量的渲染優化工作,能夠有效的降低drawcall,而2dx在這方面先天不足,即使3.x的command機制也沒有很好的解決這個問題。這就導致了一旦場景裡面骨骼動畫數量上去了,或者粒子數上去了幀率就嚴重下降,想自己改源碼還沒法改。

2dx的第三個劣勢是ui庫的薄弱。就說後面新出的ui命名空間下的ui組件吧,有時候用起來也不方便,virtualrender的機制導致我想自定義一些shader都很麻煩,更不用說組件還不健全了,radiobutton是3.9才加入的,富文本簡直是一坨X啊,我花了不少實現重構了富文本來滿足策劃需求。

2dx的第四個劣勢是社區的蕭條。看看每天中文社區的發帖量吧,一個字:慘。營養貼太少,大多數是新手提的問題,回答的人也不多。教程不健全,新手都不知道怎麼下手去學。相比之下英文社區還相對好一些。然而大多數開發者還是習慣看中文社區吧。

我下一個項目很大可能會轉u3d,因為u3d目前的優勢還是太大了,雖然u3d也有不少坑,但就生命力而言目前來看肯定比2dx更長久。2dx當初就應該好好鞏固2d優勢,而不是急著做3d,看看現在要死不死的狀態,真是令人擔憂。


呵呵,我要不是因為入手就是cocos2dx好幾個玩意都是這個寫的,早就把這個垃圾扔了。

各種奇萌的問題,比如如果要切換scene需要傳遞一個比較大的玩意(背景截圖texture)你必須暫停director, 否則鐵定crash.還有不能replaceScene,只能pushScene否則崩潰。 多少次失敗的結果。。。

就連setup.py都寫不好,能把windows環境變數給改壞。。。能再差一點么?

debug模式能用的好好的,到了release模式就崩潰。而且死活調試不了。

ndk-10c能用,到了ndk-13就鏈接失敗,而且奇萌的是ndk-13 32bit的倒是可以通過,但是64bit就編譯失敗,而且還指名道姓的說一定要ndk-13版本(3.13.1 cocos) 別告訴我是java的人沒寫好NDK,呵呵呵呵。。。。

shader....我就只能呵呵呵呵呵呵呵了。。。。

各種奇萌的小錯誤我就不舉例了

文檔簡直令人髮指,我全是靠猜的!對,這個是幹嘛用的靠猜!!!!

自己重載函數,因為cocos2dx給的很多api,功能簡陋到爆!!!

各種legacy函數遺留問題,明明上個版本還有的,下個版本就不給介面了,看源代碼發現,簡直管理混亂的要死啊,幾個constructors都明顯不是同一個人寫,或者沒有統一的規範,所以奉勸大家一句,如果你的某個cocos版本已經很流暢的運行了,請不要升級了,不不不,哪怕3.x -&> 3.(x+1) 都不要做,更別說2.x-&>3.x,還是死心吧。

我決心去看看unit3d了。。。。


必須的。Unity開發2D或3D都不是問題,跨平台帶來的便捷不是吹的,還有Mono的支持,不得不說便捷性是多麼的高。對於公司來說,是大成本的節約;對於個人來說,維護多個平台更省心。


cocos 和 unity 都用過和研究過,說下感想

1. 引擎架構更換頻繁,使得開發者增加適應成本

2. 早期遊戲比較簡單,cocos硬編碼,硬ui 都能很好適應,隨著複雜度提升,工具要求增加

一個Ui選型都隨意變動的cocos 很難適應這個需求。

3. 人員不夠專業,或者變動,後期的感覺更多是語法糖開發者

cocos成了 C++特例展示教程,脫離一個引擎工具的本質

一個UI編輯器,變動版本,選型都莫名其妙做了許多年

4. 團隊能力如果沒有足夠時間積累,2D轉3D很難,盲目轉是個大問題,不如專精2D

5. 即便從2D角度講,Unity 也比cocos在設計思想和工具易用上先進太多

用了就知道

6. C++和C#是有難易差別,但個人不認為就有那麼大的差距,主要還是由引擎的設計理念和工具專業程度決定。

除了一些思維習慣很難扭轉的人,新人估計很難再用cocos了吧


推薦閱讀:

Unity 項目中怎樣正確的使用 Lua?
如何零基礎系統學習3D遊戲開發?
在Unity中製作動畫,如何兼顧動畫和物理效果將人物頭髮處理到最佳效果?
為什麼知乎很多人對我國遊戲行業的前景都非常不看好?

TAG:程序員 | 遊戲開發 | Unity遊戲引擎 | Cocos2d-x |