昨天,遊戲引擎Cocos發布了基於最新編輯器Cocos Creator 3.4.1制作的技術演示。作為一款主要在移動平臺使用的通用遊戲引擎,如今的Cocos能實現絕大多數主流3D渲染方式,並且支持HDR渲染管線、FSR超級分辨率等最新特效。就視訊的觀感來說,已經可以稱得上是一款現代的3D遊戲引擎。
對於從業者來說,這樣的Cocos有些讓人意外。不少開發者對Cocos的印象,還停留在《捕魚達人》《小冰冰傳奇》(原名《刀塔傳奇》)的2D遊戲時代。而對於玩家來說,即便Cocos已經誕生了將近12年,由於主要針對行業內宣傳,玩家對這款的遊戲引擎依然較為陌生。甚至在大多數人的認知裡,以為遊戲引擎只有國外的可用——即使Cocos在全球移動遊戲市場已經占據了30%的市場份額。
捕魚達人
小冰冰傳奇
這樣的認知不難理解。畢竟Cocos本身的發展也經歷過一些坎坷。在手遊以2D為主的時代,Cocos成功得太早,結果錯失3D轉型風口,沉寂了幾年,一度讓人以為大勢已去。2017年,Cocos把產品推倒重來,低調沉淀技術經驗,終於攻克了2D/3D引擎整合難題,以更加成熟的姿態重回人們視野。開頭提到的技術演示,便是這個引擎的最新成果,和人們對它「隻適合做2D遊戲」的固有認知已相去甚遠。
2014年左右是Cocos 2d-x最流行的時候,超過半數以上的國產手遊使用了這個引擎。從《我叫MT》到《小冰冰傳奇》,從《全民飛機大戰》到《夢幻西遊》,從《捕魚達人》到《列王的紛爭》, 從《開心消消樂》到《歡樂鬥地主》,這些讓中國人一度耳熟能詳的現象級遊戲,都有著Cocos引擎的參與。
使用Cocos開發的遊戲,總有你熟悉的
而且Cocos的流行也不隻局限在中國市場,國外有不少經典手遊產品也採用了Cocos開發。除了《怪物彈珠》、《王國保衛戰:復仇》這樣的原創IP,還不乏大廠旗下的知名系列,比如任天堂旗下的《火焰紋章:英雄》以及SE的《擴散性百萬亞瑟王》《勇者鬥惡龍》手遊等。
《怪物彈珠》
《火焰紋章:英雄》
《王國保衛戰:復仇》
Cocos引擎能獲得如此高的市場占有率,與其跨平臺易用性和開源密不可分。在智能手機遊戲發展初期,業界缺乏足夠易用的跨平臺遊戲引擎,從業者的水平良莠不齊。Cocos 2d-x不僅很早就解決了跨平臺問題,還可以讓開發者在不那麼熟悉計算機圖形學的前提下,利用Cocos2d-x API開發出商業上成功的iOS/安卓遊戲。
Cocos也是首個跨平臺支持鴻蒙系統的遊戲引擎
受益於 Cocos2d-x 開源的特點,遊戲公司可以對自己研發的遊戲類型進行擴展和定制,甚至用來與自研的3D引擎進行結合以解決2D界面和UI問題(比如《陰陽師》雖然是3D的,但也用了大量Cocos的 UI 和跨平臺功能)。
此外,Cocos引擎可以很好地適用國內渠道林立的特殊市場環境,能利用JavaScript 腳本語言的特點,對遊戲進行熱更新,從而省去了更新遊戲版本需要發包到大量安卓和蘋果渠道的麻煩,這對小團隊幫助很大。
Cocos最流行的時期,正好也是國內卡牌手遊最泛濫的階段,Cocos一度被稱為「卡牌遊戲專用引擎」。那些年國產手遊野蠻生長,泥沙俱下,絕大多數談不上精品。業內的共識是,Cocos顯著降低了遊戲行業的技術從業門檻,你自然也可以說,倘若沒有Cocos,市面上就不會有那麼多「垃圾遊戲」。
當時僅刀塔傳奇的換皮遊戲,市面上就有無數個
但問題是,沒有Cocos的話,中國最初的手遊熱潮就會打很大折扣,很多廠商和開發者便無法完成原始積累。正是這種原始積累,讓中國遊戲在落後世界很多年的前提下,有了足夠的發育機會,直到出海打出了順差。沒有積累,這兩年國產遊戲在全球範圍內得到的認可就無從談起。所以這是個「吃包子」的故事,不能說第5個包子吃飽就不要前4個了,而Cocos加快了吃包子的過程。
不過成也2D敗也2D,從2015年起,國內手遊產業開始向3D遷移,這時候Cocos卻因為過去的成功經驗,出現了重大策略問題。Cocos引擎創始人、雅基軟體CEO王哲在十周年紀念文中曾提到他們在2014年「自我膨脹到了一個巔峰」:
「當年團隊自我膨脹帶來的更深層次決策錯誤,在於我們很簡單地認為既然 2D 能搞定,3D 也沒什麼難的。於是竟然在引擎的 2D 底層基礎上直接起高樓直接上 3D,直到有一天架構師跟我說:王哲,3D 功能堆不上去了,樓要塌了,我扛不住了,我先閃了你們繼續加油努力啊。
這樓就真的塌了,整個編輯器的底層基礎、面向 3D 的底層渲染能力支持,全部需要推翻了補課重來。
在這過程中,我們不得不把前面已經修好的十層樓全部敲掉,重新打下滿足30層樓的地基,然後再一層一層蓋上去。
這個過程耗費了我們四五年的時間,以至於 Cocos 錯過了手機 3D 遊戲最佳的時間窗口,造成了今天的被動局面。」
這時候,Cocos呈現出了「既理想化又務實」的一面。
理想化,指的是Cocos從誕生之時,就帶有技術極客的一面。完全開源的引擎無意間促成了國內手遊市場的繁榮,卻也因此放棄了很多商業化的機會。
務實,則是在Cocos轉型失敗,團隊砍到只有1/5規模的時候,Cocos積極拓寬業務線,技術與資本積累兩不誤。比如改良ToB業務的商業策略,大力布局H5和微信小遊戲等。Cocos是市面上唯一支持跨平臺原生iOS/Android應用和小遊戲/H5這兩個領域的引擎,小遊戲的市場占有率已達到64%。
值得一提的是在遊戲之外的在線教育領域,Cocos的市場占有率一度高達90%——由於出色的易用性,Cocos成為了各家教育機構制作「遊戲化課件」的首選。
採用Cocos引擎的教育機構
更重要的是,在經歷了技術轉型的巨大失敗後,Cocos沒有放棄進化,經過多年的技術積累與經營,打下了良好的引擎生態基礎,國產遊戲引擎也因此在全球範圍寫下了重要的一筆。
這種既理想又務實的矛盾特質,一定程度上與Cocos引擎創始人王哲有關。
在外界眼裡,王哲是一位典型的技術極客,他從小學就開始寫代碼,大學畢業後就當了程序員。
但鮮為人知的是,王哲在高中還獲得過《第二屆新概念作文大賽》一等獎,與韓寒、郭敬明是同一個時期的。那是新概念作文含金量最高的時候,一等獎可以直接保送北大、南大等名校。但由於只能選擇文科專業,王哲放棄了保送,自己通過高考進入了南京大學的電子系。
去年「遊戲電子鴉片論」風波爆發後,王哲以自己與兩個孩子的生活為經驗,寫了一篇《如何引導孩子「正確地」玩遊戲?》。因為文章寫得精彩,轉發甚多,最後被孩子的校方看到。校方便邀請王哲去做了一場直播,與學校很多家長交流了一番孩子玩遊戲的問題——這便是程序員寫作文的魅力。
借著新技術Demo發布的契機,我們也與Cocos建立了聯繫,並和王哲先生聊了聊,問了一些問題,以下是採訪部分:
Cocos引擎創始人王哲
遊研社:我們注意到火焰紋章、DQ、神奇寶貝這些經典IP的手遊版也會採用Cocos開發,雙方的合作背景是怎樣的呢?
王哲:國外大廠的程序員其實經常會混我們的社區,以前沒疫情的時候,我們也會在國外辦一些沙龍,就會有不少開發者聯繫過來。不過越是大IP、大制作的項目,保密性做得越好,所以對於這種級別的大作,我們只能看到對方來咨詢各種技術問題,比如某些功能為什麼不是他們想要的效果,或者他們實現某種功能,我們能否提供一下——這個時候即使對方是付費客戶,我們通常也不知道他們到底在開發什麼產品,截圖和視訊是絕對不可能發過來的。結果是到上線的時候,開發者會突然跟我們說感謝前段時間的支持,遊戲終於上線發售了。我們一看,靠,原來是這麼重要的產品,都是我們自己小時候玩過的遊戲 IP 啊,這時候整個團隊都會特別有成績感。
遊研社:在我國教育軟體領域,Cocos的引擎占有率比遊戲還要高。之前有報導提到,起初你們並未在意這方面的成果,後來才有了更多的布局。就你們觀察而言,Cocos引擎在遊戲外是如何流行起來的?
王哲:主要是跟Cocos在14年的時候轉型賭對了JavaScript這條線的發展有關。當時很多開發者還在用Lua語言,很難接受我們改編程語言的事情,但事實證明這個選擇是對的。Lua只有遊戲開發才會用到,而JavaScript的應用場景要大很多,能跟各種前端框架融合。後來微信小遊戲火了,所有的小遊戲都是用JavaScript,包括現在抖音小遊戲、快手小遊戲、華米OV的所有手機廠商小遊戲等等,都是這個技術棧。
很多教育和數字文創應用,他們一開始也沒覺得自己在做遊戲,只是在做一個前端互動的頁面。還有一種是內嵌在App裡的互動應用,比如支付寶裡面螞蟻森林之類的,在我們看來其實缺乏通關勝利條件,所以並不能稱之為遊戲,但他們總有一些動畫和交互的需求,這些需求用Cocos就能正好滿足。
遊研社:Cocos錯失3D轉型的這幾年裡,你們遇到的最大的困難是什麼?
王哲:我覺得最大的困難還是在於重建大家對Cocos的認知和信心,其次才是資源的問題。我們到現在已經叫Cocos很長時間了,但外面的人還是習慣叫我們叫Cocos 2d。還有前面說的轉型支持JavaScript,雖然融合到非遊戲的大前端領域做內嵌應用和小遊戲更合適,但也會讓之前的傳統遊戲開發者對你的信任和期待感降低。
另外因為我們一直在順應國內的主流遊戲的趨勢,來調整引擎的功能。外界會認為我們有一些特定的定位:比如《我叫MT》流行的時候,會說Cocos是「卡牌遊戲禦用引擎」。後來《小冰冰傳奇》大火,很多人就用我們引擎做類似的遊戲,我們又成了「動作卡牌禦用引擎」;再然後2017年棋牌遊戲火的那陣子,全世界的棋牌遊戲幾乎都是用Cocos做的,那時就叫「棋牌禦用引擎」了,接著又變成了「小遊戲禦用引擎」。
其實Cocos引擎只是對市面上流行的遊戲做一定的功能優化,因為確實最近大家都流行做某個品類,然後我們就不斷地被外界下各種定義。這種刻板印象形成後,我們就需要說服大家,其實Cocos也是能做RPG的、也能做動作遊戲的,但大家在立項這些遊戲的時候可能默認不怎會考慮用Cocos,要改變這種印象很難。所以我現在的技術演示在往中重度靠攏,就是為了讓大家看到,其實Cocos也是能做不同類型遊戲的。
遊研社:那麼這次新技術Demo的發布,是否預示著Cocos打算涉足更重度的遊戲開發領域?
王哲:我覺得也不完全是這樣。只是跟外界表達「我們現在已經具備這樣的能力了」,如果你想有這樣的效果,你可以加進去。雖然使用Cocos的開發者,絕大多數單個項目投資額不會特別高,但可以讓他們有一定的心理預期:想開發更大規模的遊戲,從長線來看這個引擎是可以滿足需求的,雖然今天不一定用到,但到了有需求的時候不一定非要換引擎。
遊研社:開源運營的這些年,很多人都能感受到Cocos對遊戲行業的貢獻,那麼在這一過程中,Cocos從行業中收獲了什麼?
王哲:Cocos有這麼多開發者(全球註冊150萬),眾人拾柴火焰高。我們代碼倉庫裡有全球幾千名代碼貢獻者,各種代碼被合併進來,還有很多大公司整塊往裡貢獻代碼。這樣我們解決問題和發現問題的速度就非常快,用戶量多,用得多發現的bug就越多,很多人一看小bug直接就順手修了,然後提交到這個代碼倉庫裡面,所以這個時候就不只是我們內部團隊在開發了,其實整個社區的大家都在參與開發。另外引擎總是很難滿足所有的需求,特別我們這種通用引擎很難滿足各種定制化需求,所以大家會自己改一些代碼去適合各種品類的遊戲開發。
遊研社:作為最成功的國產遊戲引擎,Cocos的未來願景是什麼?
王哲:我們希望不斷地降低內容開發的門檻,讓創意更容易實現。只要是有想法的人,拿到工具後可以更容易上手,然後自己稍微學一會就能夠開發出東西出來,這樣就不會太受資金資源的約束。最近我們也在嘗試一些更低門檻的,比如說無代碼化的工具。
當然,工具的使用門檻低不斷降低,會讓越多開發者進來,然後大家開發的內容良莠不齊,這就容易給很多人造成一個印象:用Cocos做的東西好像挺Low的,這沒辦法,因為用的人太多了,雖然有精品,但架不住簡單遊戲的量大。其實這不正契合了我們不斷降低開發門檻的初心麼。關於願景,我們也想過一些更高大上的說法,比如「技術賦能藝術」,但現在說這個太早,也許我們再發展一段時間能夠做到,先務實一些,把引擎做得更好吧。
結語
2010年,程序員王哲組了自己的小團隊,三四個人從 7 月寫到 11 月,發布了 Cocos 的第一個跨平臺版本:Cocos2d-x 0.7,因為解決了跨平臺問題,在論壇上大受好評。一切從這裡開始,轉眼12年過去,Cocos引擎完成了2D與3D的整合,重灌上陣,將要寫下新的篇章。
祝他們順利。
>這些你耳熟能詳的遊戲,其實都來自同一個國產引擎Cocos