对于从业者来说,这样的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的整合,重装上阵,将要写下新的篇章。
祝他们顺利。
阅读更多关于 卡牌游戏 的文章