印象中,游戏圈一直流传着这样一句话:如果研发游戏的同时还要开发一款引擎,恐怕超过90%的团队都将倒闭。
笃定判断的背后,其实是对游戏引擎、以及引擎公司重要性的高度肯定。尤其是在游戏行业进入全球化、精品化时代后,随着引擎技术的发展,专注于内容研+发的游戏CP对引擎的依赖性也愈发凸显。
的确,市面上不少人气游戏都有商业引擎的身影。例如,全球月流水曾达10亿的《剑与远征》、经典卡牌系列《少年三国志》,以及《列王的纷争》和《乱世王者》这类长青SLG,亦或是《保卫萝卜》系列等休闲游戏,背后都不乏国产引擎 Cocos 的支持。
以2D游戏引擎研发为行业熟知的 Cocos ,近日发布了一则由 Cocos 3D游戏引擎制作而成的赛博朋克Demo,以高品质的画面,向行业展现了一幅光怪陆离的“夜之城”图景:
随着镜头的切换,清冷躁动的夜色中,一个被绚烂霓虹灯、以及巨幅广告牌包围的都市逐渐展现全貌,热闹却罕见地透露出一股落寞。与此同时,天空不断疾驰而过的飞行器,又为这座城市涂抹上了另一股未来感——破败与科技共存,可谓是赛博朋克味十足。
不得不说,整体透露的多光源渲染效果令人意外。
老实说,这则高品质Demo的出现,无疑再次刷新了行业对 Cocos 的认知:过去同行印象中的2D游戏引擎,原来已经在3D技术领域已有颇多建树。而同样感到意外和好奇的GameLook,也在第一时间找到了 Cocos ,聊了聊赛博朋克Demo诞生背后的“黑科技”。
也是在这场交流中,GameLook了解到,之前令人惊艳的赛博朋克Demo其实并非源自当前内部最新版本,反倒是基于今天8月25日发布的 Cocos Creator 3.3版本制作。
后者不仅提供了丰富的3D能力,同时也进一步加强了性能、包括原生平台和小游戏平台。其中,小程序启动性能和运行性能直接翻了一番;而且还使用了面向未来的全新引擎架构,为引擎带来高性能、面向数据及负载均衡的渲染器;同时无缝支持 Vulkan & Metal 多后端渲染,未来也将支持移动端 VR/AR 及部分主机平台。
基于 Cocos V3.3 ,这支2分钟Demo藏了多少技术秘密?
曾几何时,电影《银翼杀手》中绚烂迷人的城市夜景震撼了多少观众。大量的逆光和大色差镜头,营造出了一种只属于赛博朋克的美,影响了无数的后续作品,以至于如今的“电子霓虹灯”,基本被视作赛博朋克作品的标志。
无独有偶,在 Cocos 的赛博朋克Demo中,异彩纷呈的霓虹灯同样贯穿了建筑群的每一处、占据受众的全部视野,很好地演绎了大众印象中的赛博朋克美学。
“我们选择赛博朋克作为这次Demo的主题,也是因为它的光污染风格,适合放进去大量的光源,体现引擎的渲染能力”,聊到此处, Cocos 高级引擎开发工程师、本次Demo的制作者youyou也向GameLook介绍,这种独特光照效果的实现,其实是来自 Cocos Creator 3.3版本中延迟渲染管线、Cluster Light Culling、Cluster Reflection Probe等多个特性。
正是依赖于华为贡献的延迟渲染管线, Cocos Creator 在多光源计算方面得到了很大的效率提升:先把物体绘制到 GBuffer 中,得到渲染到某个像素的最终物体所有信息后;在下一个渲染 pass 里就可以根据 GBuffer 的信息进行光照计算、且只需进行一次。
同时youyou还透露,基于同华为的合作,新渲染器架构可以解决移动端延迟渲染的短板。即使是在手机上,也能流畅运行这个庞大且复杂的场景。
不过拥有延迟渲染管线还远远不够,Demo场景毕竟拥有成百上千的复杂光源,每个像素对所有光源都进行一次光照计算显然也吃不消。Cluster Light Culling则能有取舍地剔除掉影响不到像素的光源,按照距离选取最近的光源渲染。
上图为关闭光源,下图为开启灯光效果
“因为Demo中的光源基本都是静态光源、不会移动。”youyou进一步向GameLook解释:“利用这个特点,我们只需要在场景初始化时,将整个世界在3D空间里划分为16 x 16 x 16 的格子;接着计算每个光源到格子的距离,将能影响到格子并且最近的几个光源(这个数量可以控制)的信息放到格子中。然后在光照计算阶段时,就可以根据 GBuffer 中世界坐标信息计算出当前像素所在格子,从中获取对应需要计算的光源信息。”
如果更细心的话还会发现,Demo中镜头俯拍城市时,道路积水也会倒映出对应各色霓虹灯的反光效果。而这种饱含真实感的细节,则是通过IBL (Image Based Lighting ) 实现的。
与传统做法中,出于移动端性能的考虑,只用一张天空盒作为环境贴图、或者一整个世界烘焙出一张环境贴图的做法相比;为了避免穿帮、追求更高的真实感,Demo里尽可能在不同的区域中放置反射球,让每个反射球只烘焙这一个区域中的环境信息。
上图为开启反射球,下图为关闭反射球效果
youyou还提到,不过当世界中反射球比较多时,又会出现多光源中碰到的问题,应该尽可能只计算影响到当前像素的反射球信息。“利用已有的 Cluster Light Culling 逻辑,很容易就可以扩展实现 Cluster Reflection Probe 的逻辑。”
然而随着继续深入这座“不夜城”,整个Demo随之给人一种雾气弥漫却又通透的感觉,将赛博世界独有的糜乱、颓败氛围表现得淋漓尽致。
GameLook这种直观感受显然也在youyou的预料中,他直言:“做场景设定时,我们就希望营造一种看上去有雾、但是又感觉视线很通透的感觉。为了实现这种效果,我们选择指数高度雾的算法,在场景低处的雾会比较浓厚,越往高处的雾越稀薄。并且天空盒也加入了雾效的算法,这样高处的建筑的颜色才能跟天空盒的颜色完美衔接上。”
的确,视线上移后几乎看不见雾气的出现,但取而代之的则是各种飞行物充斥整片天空,再现赛博朋克世界中经典的科技元素。
“这里主要使用了我之前写的一个 spline tool 的插件,这个插件可以让开发者在编辑器中自由创建编辑样条曲线,通过生成的曲线你可以自定义出许多实用的功能。”youyou表示,Demo正是使用了生成的曲线作为飞行器飞行的轨道。只要预先在编辑器里面编辑多条符合飞行规律的轨道,运行时定时生成飞行器并随机选择一条轨道放上去即可。
以小观大,从Demo视频来看, Cocos Creator 的关键技术其实已经相对成熟。据了解,最新版本也已经统一了 2D 与 3D 的开发工作流,兼顾轻量与中重度游戏的开发体验,融合了几乎所有 Creator 2.x 与 Creator 3D 1.x 版本的功能。
厚积薄发,3D领域集大成的 Cocos Creator
其实早在2014年左右, Cocos 便已经投入3D引擎的研发工作。只不过没像2D手游那般一番风顺,反倒经历了一次罕见地“推到重来”。
“我觉得这只是一个发展规律。想要靠一两年的时间,完全把这个事情做对、做完确实是不太可能的。”在 Cocos CTO 林顺看来,第一轮尝试没有开花结果的主要原因,是积累不够,以及“土壤”问题导致的。
林顺向GameLook解释道,国内技术环境其实有一个断代期。手游时代刚兴起时,整个行业的技术土壤还远落后于海外。在这种历史条件下, Cocos 错过3D手游时间节点也许是一个必然,“但现在哪怕是补课,也得一点点把这些东西积累起来,这是一条必不可少的、必经的路径”
必须先积累技术,土壤才会快速成长,不错过更多的机会——这是 Cocos 跌倒后学到的,也是之后继续探索3D领域所一直坚信的。
正因如此, Cocos 坚持将每年的利润全部投入引擎功能研发、新场景拓展、生态建设上。而后也终于守得云开见月明,推出的 Cocos Creator 3.0在延续2D 品类轻量高效优势的同时,还能为 3D 游戏提供了高质量的开发服务。
这意味着,基于 Cocos 引擎不光是赛博朋克Demo那样的复杂3D内容,就连低算力 IoT 设备的交互 UI也非常适用。而且相较之前, Cocos Creator 适用性更广、能够满足更多需求。既可以开发出独立APP,也可以被集成嵌入到其他APP里。
据林顺透露,虽然 Cocos Creator 3.0正式版本问世不过数月,但已有一些品质不错的原生游戏出现。
例如天美工作室的《一刀大侠》、光子工作室的《魔斗战境》,曾登顶免费榜的《战机:代号666》等……与此同时, Cocos 也受到了不少独立游戏团队的青睐,像是《登场了侠客》、《星空大决战》、《转一转拼图》以及海外表现优异、月流水达2亿的《口袋奇兵》等颇受玩家喜爱的游戏,也都是基于 Cocos Creator 打造。
跨平台能力
当然作为最重要的游戏引擎之一, Cocos 也注意到时下新热点——跨平台游戏。不同的是,相比大厂扎堆在手机与PC、主机端的跨平台, Cocos 更关注成千上万中小开发者的呼声,聚焦于往一些更轻度、更低算力的平台——例如小游戏平台去“跨”。
Cocos 技术总监 Panda表示,Cocos Creator 3.3对性能提升做了重点优化。特别是在小游戏平台,版本更新后,游戏的启动性能、运行性能和物理性能都有了显著提升。
其中,针对直接影响玩家点击转化的启动性能优化后,内部项目微信云测启动性能分都能达到 80 分以上;在此基础上,也对运行性能做出了优化;由于目前微信小游戏全面支持WASM 特性,3.3版本还支持在微信上将 Bullet 以 WASM 的方式运行、大大提升了物理性能,助力开发者制作更复杂的物理场景。
同时, Cocos Creator V3.3提升了原生引擎的绑定层级,在渲染管线之上的渲染场景部分完成了原生化,进一步优化原生平台的性能,也使得 Web 和小游戏平台的性能得到肉眼可见的提升。
再加上拥有微信平台最高的市场占比,可统计到六成以上游戏都是出自 Cocos 引擎。多方优势下,自然也能助力游戏CP实现原生手游、Web 和小游戏之间的跨平台,更轻松地覆盖更多领域。
包括前文提到的《口袋奇兵》《战机:代号666》等游戏,也都是在 Cocos 的帮助下实现原生手游与小游戏的多端发布。同时Panda还提到,他们也已经在为下一代穿戴式移动平台、比如AR、VR、XR等作准备,并支持较好的现实融合渲染能力。
而 Cocos 对于扶持CP的这份执着,同样体现在免费开源模式的延续上。
比起简单售卖 Pro 版软件产品, Cocos 更坚定于创始人王哲口中“从竞争博弈思维转向共赢思维”的战略。选择与合作伙伴共存、共生、共赢,并依旧维持引擎框架开源、编辑器可扩展等传统。
事实上,也不难理解 Cocos 的初衷,即为行业带去更好的平台和生产工具。恰恰是这份相似的行为逻辑,也成为其首批牵手鸿蒙的契机。
去年,华为HDC开发者大会宣布鸿蒙操作系统即将发布、且支持手机后, Cocos 预感到鸿蒙未来必会成为市面上最重要的平台之一。第一时间与华为团队取得了联系,并开始建立合作。
“我们加入,倒不是说为了给生态带来多大的效应,主要还是一种对于国产操作系统的支持。” Panda如是说道。同样作为国内生态的搭建者, Cocos Creator 也在 HarmonyOS 2.0正式发布之际,同时推出了新版本,成为全球首家支持 HarmonyOS 的游戏引擎。
结语
让游戏开发更简单,这是 Cocos 官网的一句话,也是其身体力行践行的理念。
除了目前探索3D领域所取得的成果外,王哲向GameLook谈到, Cocos 未来还将在第三类平台性能和功耗优化方面继续努力、适配下一代移动平台;以及进一步降低引擎在费用、技术方面的门槛等。甚至还计划在同鸿蒙的未来合作中,探索IoT设备在游戏行业的可能性,试图将娱乐体验拓展至更多、更丰富的平台和整个社会。
但GameLook发现,其中被提及最多的,依旧是有关“生产管线”的重要性,这也是目前国内较少团队尝试的方向。
王哲坦言:“国内大多数团队都希望在渲染表现和运行时能力上做得更好,但其实工具链方面,才是我们和国外先进引擎的最大差距。”而这将是 Cocos 当下、乃至未来的重点发力方向,即怎样在生产管线上帮助开发者更好地使用 Cocos 引擎。
不过王哲也承认,相比于几年前,国内游戏业已经出现很多不错的变化,很大程度上得益于腾讯、网易等大厂开始推行的“工业化体系”。
严格来说,工业化标准的建立,确实使得整个行业更加规范,分工也更加明确、细化,并将逐步影响到更多游戏团队。在这个过程中, Cocos 也会继续坚定地扮演“耕耘者”的角色,助力知识储备、技术积累下“土壤”的快速成长,以及整个工业化体系的完善。
未来随着 Cocos 技术的不断突破,相信还将为玩家和市场带来更多精品化、跨平台的游戏,并加速推动行业大步前进。