写点什么

“羊了个羊”背后的国产 3D 引擎 Cocos:这绝不是团队最高光的时刻

  • 2022-09-29
    北京
  • 本文字数:5288 字

    阅读完需:约 17 分钟

“羊了个羊”背后的国产3D引擎Cocos:这绝不是团队最高光的时刻

嘉宾 |林顺、王庆利、凌华彬

编辑 |赵钰莹


最近的一款微信小游戏“羊了个羊”把不少人虐得“死去活来”。

 

微信官方小程序数据显示,9 月 14 日有 2600 万用户参与了挑战,短时间内涌入的玩家过多导致游戏服务器两天崩了三次。

 

随后,公司紧急发布招聘启事,广泛吸纳“Go 服务器端开发工程师”和“CocosCreator 客户端开发工程师”,这表明该游戏底层基于Cocos引擎

 

根据媒体爆料,该游戏背后的研发人员只有三个,三个人就能完整开发这样一款小游戏也让 Cocos 引擎再次吸引了业内的广泛关注。

 

当然,这绝不是 Cocos 引擎最高光的一次,毕竟其曾一举推动中国手游市场崛起,众多现象级游戏《捕鱼达人》、《梦幻西游》、《开心消消乐》均基于 Cocos 引擎,而且是国内首个支持任天堂 Switch 平台的 3D 商业引擎

 


近日,InfoQ 有幸采访到了 Cocos CEO 林顺、引擎团队技术负责人凌华彬、XR 团队技术负责人王庆利,一起聊聊这款成立第一天就开源,支撑了众多现象级游戏的商业引擎,其背后的技术团队过去及现在都做了哪些思考。

“羊了个羊”背后的技术,Cocos 十年前就具备了



“其实,我们在 2011 年引擎的最初版本,就足以支撑‘羊了个羊’这样一款游戏的运行”。

 

说这话的是凌华彬。多年前,他在法国开发 HTML5 应用时被推荐使用了 Cocos2d-html5 这样一款中国引擎,回国后就毫不犹豫地加入了 Cocos 团队。


这句话也没有夸大的成分。因为 2011 年前后,Cocos 引擎就支撑起了另一款现象级游戏——捕鱼达人的走红。

 

Cocos 引擎的前身是阿根廷人 Ricardo Quesada 在 2008 年推出的用于 iOS 平台的 Cocos2d-iPhone。2010 年,当时的王哲(Cocos创始人,QCon上海专题出品人)和林顺在联通沃 Phone 操作系统团队,当时团队看到一个需求,有些开发者在开发了 iOS 游戏后,想要移植到安卓平台,但当时并没有好用的移动跨平台游戏引擎。他们选择加入 Cocos 社区,创建了跨平台的 Cocos2d-x 引擎分支,并开源了出来。


随着捕鱼达人的爆火及其开源的定位,Cocos2d-X被越来越多的开发者熟知。

 

2015 年之前,Cocos 的主要特色是具备优秀的兼容性、跨平台、高性能、轻量化,并且当时非常具有远见地投资了安卓生态,大大降低了跨平台手机游戏的开发门槛,也催生了绝大多数中国当前的 Top 游戏公司,可以说促进了中国手游的崛起。在 2014 年的统计中,其在应用商店 Top 1000 的头部手游里占有率达到了 70%。

 

直到今天,其跨平台的特性依旧被开发者称赞不已。“羊了个羊”由于使用了 Cocos 进行开发,能够同时打包成不同平台的版本,包括原生/小游戏/Web 端等,大大降低了开发不同平台版本的时间,使得其在继小游戏之后,可以迅速发布 APP 版本,目前 APP 版本在 TaTap 的预约已经突破 10 万。

 

在“羊了个羊”爆火之后,林顺也带着团队与对方交流过,这样一款现象级游戏的诞生与很多非技术的因素有关,因为早在这之前,Cocos 的官方线上商店中也出现过一款玩法与之相似的游戏,但就是没火。

 

Cocos 作为游戏引擎能做的就是提供一个好的技术保障,比如不同平台的加载性能和画面表现等。“羊了个羊”走红之后,与 Cocos Creator 直接合作的平台很快就看到了该游戏上架,没有直接合作的平台也在两三天内陆续上线,还出现了 3D 等各种版本,这都是引擎层设施成熟的表现。此外,Cocos 的商店中上线了大量与之相关的模版、设计、玩法等内容,“单纯从开发角度来看,未来开发同样一款游戏几个小时就可以搞定“,林顺在采访中表示。

 

如果 Cocos 的目标只是支撑几个现象级的游戏,或许技术迭代也就止步于十年前了。即便如此,好像也没有什么问题,2D 在今天依旧存在广阔的应用空间,但他们想做的是一款世界级的游戏引擎。

 

于是,整个团队开始探索 3D 化,这也让他们遇到了第一次低谷。

数次尝试、重写,造就国内首个支持 Switch 平台的 3D 商业引擎

 

今年 7 月份,Cocos 宣布 Cocos Creator for Nintendo Switch 版本正式开放申请,Cocos 也成为国内首个支持任天堂 Switch 平台的 3D 商业引擎。

 

做 3D 引擎,这是 Cocos 过去数年的技术执念,而执念往往是需要历经艰难才可以达到的。

 

2015 年,顺风顺水惯了的 Cocos 第一次开始尝试 3D 化,想在 2D 的基础上去做 3D 引擎,然而两者的核心机制有根本性的不同,当时的引擎和编辑器设计还比较传统,技术上碰壁不少。雪上加霜的是,其竞争对手——跨平台游戏引擎 Unity 也正式开始大举进军移动市场。

 

整个团队迅速调整路线,进入第二阶段,尝试打造一个现代的编辑器,并于 2016 年推出了 Cocos Creator,引擎的架构也彻底更新成了数据驱动、组件式的现代架构。

 

Cocos Creator的基础上,团队于 2017 年重新开始挑战 3D,将整个 3D 引擎底层从零开始重新搭建,2019 年发布了 3D 化的引擎分支,2021 年正式将 2D 和 3D 合并发布 Cocos Creator 3.0。最终经过五年的积累,才达到今天 Cocos Creator 3.6 的阶段——一个完全现代化的 3D 引擎。


在 Cocos 引擎团队看来,3.6 版本是十分重要的里程碑版本,相较于前一版进行了多个方面的大幅进化,比如:

 

  • 性能优化:原生化,2D & 3D 性能的全面提升

  • 渲染表现力提升:CSM 级联阴影、GGX 反射卷积图、Surface Shader 材质定制、各向异性光照

  • 产品驱动开发:编辑器预览,粒子噪声图,动画嵌入播放器,多语言编辑器


3.6 版本中的 CSM 级联阴影演示

更多功能请访问:https://www.cocos.com/cocos-creator-3-6#10231

 

在这个过程中,最难的是“开着飞机换引擎”,重构面临的技术挑战巨大,不仅目标难度高,还需要保障切换顺畅,也就是在保证兼容性的基础上完成升级。此外,团队还需要把酷炫功能做到足够好用,比如编辑器预览功能在 3.1 版本中就做过,但因为体验不好关闭了,3.6 版本又进行了重新优化。

 

时间周期跨度最大的则是原生化。2021 年夏天,团队就开始讨论原生化的技术方案,做了三四种预案,针对不同的技术方向设置了不同的原生切分层级。随后的一年时间,团队开始了原生层的重写,进行了多个阶段和多个模块的重构,并且逐阶段进行大量的测试验证,原生层代码增加了两倍多。

 

然而到更上层的 2D 性能优化时,团队最先感受到的就是挫败感,因为性能出现了大幅度的倒退。团队又开始针对各种性能热点做大量的分析和验证,逐步提升到远超之前的性能表现。

 

“其实,也有一些重构的尝试最终以失败告终,没有进入到版本中。但我们相信引擎的研发就是充满挑战和失败的,但我们会不断尝试新的方式,持续迭代。”

 

在开发过程中,团队积极听取用户的反馈,比如接触到一位 3D MMO 的 CP 有很多更高级的需求,尤其是粒子、地形方面,团队临时调整了优先级,将这些需求排进去。同时为了更好地满足用户需求,引入了产品角色把控需求分析和解决方案设计,并且跟踪到实现的验收和交付,这种方式保障了实现的功能切实满足用户需求。

 

这些层面的优化不仅让 Cocos 引擎的性能大幅提升,并且给引擎带来了更高的天花板,在跨 Web 和 Native 两个层面都尽量用原生的方式来实现,Web 端使用 JS,Native 端使用 C++,预料到做好统一很困难,所以团队采用了渐进式的方式来实现。

 

至于为什么选择在这个时间点做这件事情,凌华彬在采访中表示,未来 Cocos 引擎会承载更多重度的游戏和元宇宙应用场景,比如开放世界、大地形、复杂的桌面级渲染管线。同时,Web 端也会开始使用 WebGPU,团队使用 Wasm 技术将原生的 WebGPU 管线编译到 Web 端运行,大大统一了 Web 和 Native 的渲染器实现,原生化是这一切的基石。

 

如此所说,我们是时候考虑元宇宙时代的到来,游戏引擎可以在其中做些什么事情了。

元宇宙的未来,Cocos 的探索不止于游戏

 

“游戏引擎是元宇宙时代重要的基础设施,而 XR 则是非常重要的入口”,林顺在采访中表示。

 

不久前,Cocos 面向开发者推出了 Cocos CreatorXR 社区版,在开发者社区引发了激烈讨论,有开发者表示终于等到了 XR 版本,也有的惊讶于 Cocos 在研究 XR 技术,甚至还有开发者当天就跑通了开发流程。在开发者社区经过一段时间的试用后,Cocos 上周发布了Cocos CreatorXR 正式版,并且还对首批试用企业提供技术对接。

 

采访中,王庆利表示,很多开发者会在意当前 XR 版本支持哪些设备,是否有预览功能以便能快速上手运行,目前该版本已支持包括 Rokid Air、Meta Quest2、Huawei VR Glass、Pico Neo3、Monado 等多个品牌的设备兼容适配,未来也会根据开发者的反馈进行更新。

 

如今, VR/AR 品牌全面开花,而各家均有各自的开发 SDK 和交互方式,对于开发者来说,适配各家设备是一项极其繁琐且耗时耗力的工作。Cocos 引擎的 " 一次开发跨平台部署 " 将大幅提高适配效率。

 

此外,Cocos CreatorXR 智能支持 GLES3、GLES2、Vulkan1.0、Vulkan1.1 等渲染后端,XR 应用启动时将根据打包选项采用当前设备适配的最佳图形 API;而基于 Web 端预览功能,开发者可以在 Web 端使用鼠标、键盘模拟头戴显示器、手柄控制器等组件,快速测试优化 XR 内容。

 

在刚刚结束的2022 世界人工智能大会(WAIC)的现场,Cocos 基于现有的能力打造的线上版「元生无界」,让与会者初体验了元宇宙时代的参会方式。

 

「元生无界」大世界包含张江区域和临港区域,实现了虚拟角色创建、线上参会、空间互动、社交语聊等相关功能。根据会议门票指引,用户可前往会堂大厅中的会议室进行线上参会。 进入大会议室入座后,可以切换沉浸视角、真实视角(角色第一视角)进行观看。 



XR 产业历经多年的发展,VR 已形成一定的内容生态,我们已经看到该技术在教育、游戏等方向的尝试,确实可以让开发者与设备正向跑起来。

 

但 AR 却几乎处于起步状态。 如全球最火的 AR 游戏《Pokemon GO》,虽然收入已超过 60 亿美元,但用户并非为了 AR 买单,好在我们也看到了其在工业展览设计等领域的应用。

 

未来,Cocos 会与合作伙伴一起去为元宇宙的不同场景提供解决方案或者是模板,持续提升该领域内容的生产效率,提升整体的内容品质。

 

“我们希望可以做好元宇宙时代的国产基础设施,进而促进整个行业的发展。最终希望能够提供一个集策划、开发、打包等工具链一体化的云服务。”

 

而在元宇宙世界成型之前,Cocos 团队会先带着众多开发者及他们优秀的创意一起出海。

从立足全球开源到带着开发者出海

 

从落地第一天起,Cocos 引擎就选择开源,在全球范围内获得了广泛受众,并在无形中推动了整个手游行业的发展。

 

全球化的服务能力和开源氛围吸引了王庆利、凌华彬等一大批优秀工程师的加入,而这个决定在林顺看来是过去多年最正确的选择之一。

 

开源让 Cocos 足够中立,并得以站在更广阔的空间以全球化的视角看待自己所做的事情,虽然会带来额外的成本投入,毕竟海外市场与国内市场在研发运营和社区生态维护层面存在差异,但这也让整个团队的技术体系得以与世界接轨。

 

“这其实是一个很重要的选择,当然有些人觉得可能我并不想这么做,毕竟这不一定能让我获得最好的商业回报。”

 

通过开源,Cocos 引擎的代码获得了大量社区优秀技术专家的贡献,也让整个团队有机会接触到海外优秀的企业,并与之建立合作关系,这在 Cocos 的国际化方面起到了非常正向的作用。

 

如今,Cocos 带着更广大的开发者和他们优秀的想法一起出海。采访中,林顺表示,首先,Cocos 针对海外平台同样提供了跨平台部署的能力,这也是 Cocos 一直坚持的基础保障;其次,不同的针对开发者在做的不同内容,Cocos 可以提供很多本地化的服务,比如多语言插件,更好地将内容针对不同的平台做部署;最后,Cocos 与海外顶尖的技术企业保持着良好的合作关系,以 Google 为例,Cocos 和 Google 长期以来一直保持着密切的合作,特别是在全球化方面的支持。近期又在增强 Web 端服务方面达成了新的合作,针对用户在 Web 端的变现需求,Google 将官方制作服务于 Cocos 开发者的 Google AdSense 插件,届时开发者只需要简单勾选即可一键集成,体验到无缝连接的 Web 端变现服务。


v3.6 提供了内置的多语言工具 Localization Editor(L10n)示例

未来规划

 

在编辑器内核层面,团队接下来会在资源管线、引擎容器、场景数据三个方向进行优化。

 

在技术层面,Cocos 依旧会将游戏作为主要方向,不断完善工具链及 3D 基础设施,以应对越来越高的自动化要求,并在此基础上联合合作伙伴提供更加完善的服务。

 

在生态层面,Cocos 今天已经从游戏引擎变成一款 3D 通用渲染引擎,生态不仅包含游戏,也包含车机、虚拟偶像、元宇宙等各种方向。除了服务好各行各业的不同诉求,Cocos 将针对不同行业及场景提供对应的解决方案,帮助大家更高效的进行内容创作。

 

在 XR 层面,团队的主要目标是让开发者更方便、低成本、高效地使用 XR;将元宇宙涉及的相关工具进行集合打通;在不同设备上的运行状态更加轻量化和低功耗。

 

“游戏引擎是基础设施,未来我们希望可以触达更广阔的行业,支持更多的开发者创作出无与伦比的精彩内容,这是我们永远期待且满怀热忱的事情。”

 

在 11 月 25 日-26 日的QCon全球软件开发大会(上海站)上,我们特别设置了【走向元宇宙:实时渲染】专场,由 Cocos 创始人王哲担任出品人。实时渲染是图形数据的实时计算和输出,它是元宇宙的重要基础技术之一——元宇宙中有精美的场景,有大量的模型交互,逼真实时地呈现这一切至关重要。


如果你对这一话题感兴趣,欢迎访问大会官网或扫描下方二维码购票,感兴趣的同学也可联系票务经理:+86 18514549229。



2022-09-29 13:4014074
用户头像
赵钰莹 InfoQ 主编

发布了 809 篇内容, 共 506.7 次阅读, 收获喜欢 2564 次。

关注

评论 2 条评论

发布
用户头像
希望发展起来,之后科技电影场景都可以用这个来制作。
2022-10-08 14:50 · 广东
回复
用户头像
3D游戏引擎,国产的和u3d及ue4还有不小的差距。
支持国产,支持开源。
2022-10-02 13:04 · 北京
回复
没有更多了
发现更多内容

优化Cache类

GalaxyCreater

架构

密码学因区块链更“值钱” 区块链因密码学更“完善”

CECBC

区块链技术 去中心化 密码学 记账权

第二周课程总结

考尔菲德

Week 02 总结

鱼_XueTr

第二周命题作业

冯凯

软件架构

框架设计

一点点..

架构师训练营-第2周作业

seng man

架构师训练营第二章学习总结

JUN

架构师 0 期 | 设计模式练习

刁架构

极客大学架构师训练营

架构师训练 Week2 - 学习总结

伊利是个圈

学习 极客大学架构师训练营

架构师训练营 - 第二周作业

总斌

极客大学架构师训练营

【架构思维-学习总结】week02

chun1123

ioc 依赖倒置 DI

架构week2 homework

蜡笔小晗

架构师训练营 第二周 作业

CR

极客大学架构师训练营

学习总结-架构师训练营-第2周

seng man

架构师训练营第二周 总结

Benjamin

极客大学架构师训练营

如何理解依赖倒置?

青莲

面向对象设计原则 设计原则

架构师训练营 - 第二周 - 总结

亮灯

架构师训练营-作业2

紫极

架构师训练营 第二周 学习总结

RZC

架构训练营第二周 - 作业

无心水

架构师 极客大学架构师训练营

依赖倒置原则

旁听生

极客大学架构师训练营 依赖倒置原则

架构师训练营 第二周 命题作业

RZC

【架构思维学习】 week02

chun1123

依赖倒置 接口隔离

Week 02 作业

鱼_XueTr

第二周学习总结

设计原则的一些感悟

紫极

架构师训练营-week02 作业

GunShotPanda

spring中的依赖倒置

Geek_bobo

依赖倒置原则

Geek_bobo

产出高质量代码的秘密

kk

编码习惯 代码质量

“羊了个羊”背后的国产3D引擎Cocos:这绝不是团队最高光的时刻_云计算_赵钰莹_InfoQ精选文章