编者注:近年来,游戏行业开放世界赛道火热,但是跨平台体验一直是业界的难题。最近几款备受期待的开放世界大作移动端接连翻车,要么出现跳票延期的情况,令众多玩家感到失望。
但在前阵子的UnITe ShanghAI 2024上,来自中手游的仙剑IP首款开放世界RPG《仙剑世界》带来了开放世界跨平台优化的技术分享,在大会上介绍了许多项目曾经走过的弯路,以及对应解决的经验技巧。
以下是Untiy 中国对《仙剑世界》主创团队的采访原文,内容干货十足,值得全文阅读。
《仙剑世界》作为仙剑 IP 系列的最新⻓篇⼒作,从故事和剧情上延续了仙剑的精髓。在仙剑 33 年的世界观下,游戏打造出了⼀个浪漫唯美的江南全景、磅礴恢弘的蜀⼭、神秘苗疆等区域,构成⼀个 384 平⽅公⾥完整的⽆缝开放⼤世界。以东⽅题材为起点,以江南的浪漫为开端,以巴蜀的幻想⻛格作为延续,通过不断的迭代和内容更新,为玩家们奉上⼀款难以忘怀的仙侠⼤作。
UnITy 中国有幸采访到了主创团队,并邀请他们参加了 UnITe 上海 2024,与开发者们面对面交流。
可以为我们简要介绍下团队和项目吗?
大家好,我们是中手游旗下的满天星工作室,核心成员为原巨人网络巨火工作室原班团队,参与过《征途》瑞游研发,主导了《巨人》端游,《仙侠世界》系列端游和《龙珠最强之战》手游的研发。当前我们正在开发的《仙剑世界》,是中手游自研自发的仙剑 IP 首款开放世界 RPG,游戏致力于在多端平台打造⼀个万物有灵的东⽅浪漫幻想世界。

但在项目研发早期,由于场景庞大,对视野要求也很高,我们一度纠结如何能在有限的时间内整合各类效果好的特性,管理开销。所幸有 UnITy HDRP 管线,得益于它的特性,最终帮助我们实现了对游戏世界的畅想,充分展现出东⽅浪漫幻想世界的魅力。

HDRP 相对于 URP,给《仙剑世界》带来了什么好处?
URP确实是一个非常简洁灵活的渲染管线,但是当我们需要制作一款在PC体验的大世界游戏的时候,URP就会有一些稍显不足的地方。特别是我们当时使用的是UnITy 2021,URP在原生支持的特性上略微少一些。反之,HDRP管线则为我们内置了大量非常实用,且效果很好的特性,确实为我们在项目初期,提供了快速,稳定,优质的画面效果提升。

UnITe大会上《仙剑世界》 HDRP 特性展示
例如,HDRP下内置的SSGI,在我们自己的PRTGI 方案还未落地时,为游戏提供了很好的GI画面支持。SSS也为角色皮肤提供了非常好的质感,让角色变得更加真实自然,比项目早期使用预积分Lut的皮肤SSS方案要更加润泽和透亮,总体来说更符合我们游戏中国风人物的皮肤质感。Tile/Cluster的点光解决方案,也让场景灯光师可以肆意摆放灯光,为副本、夜晚提供很棒的氛围和质感。另外对于实时天气和日月变化,当时HDRP下提供的Volume体系也可以实现非常炫酷的效果,甚至提供管线的管理和混合效果。又比如,我们剧情导演希望引擎这边能提供一个比较高质量基于物理的DOF(景深)效果,那HDRP下的DOF就是一个很好的选择,它基于物理相机的整套参数调整,可以让我们的剧情导演非常容易的上手和理解。

HDRP SSAO遮蔽效果展示
在研发早期,人力相对比较紧张,但又正是项目确立游戏风格效果、质量体系等标准的时候,HDRP相比于URP会更加适合我们,因此我们也非常坚定的选择了HDRP管线作为我们的渲染管线。从最终结果上看,它也为我们节约了不少预研时间,加快了开发进度。当我们想要尝试某些效果,几乎只需要在管线设置上打开相应开关,即可看到它带来的画面变化,非常的方便。

HDRP PCSS软阴影效果展示
从 PC 端移植到移动端大概花了多久?移植过程中遇到的最大的困难是什么?
在最开始的时候,项目是基于 URP 管线的,但是由于 PC 端日渐新增的画面提升需求,我们加入了 HDRP 来作为 PC 端的管线。也就是说这个时期,我们确实是 URP 和 HDRP 同时运行的。
之所以选择同时进行,是因为 HDRP 原生不支持移动平台,放眼全球行业,也鲜有其他游戏对 HDRP 进行移植的案例。所以我们一开始对它报以谨慎的态度,对 HDRP 管线技术不断地进行学习和整合。但是随着对 HDRP 使用的深入,我们了解了它的各种特性和优点之后,出于对引擎维护和资产流程管理成本的考虑;也因为我们团队相对有比较成熟的 PC 和移动平台的开发移植经验,对自己的技术实力也很有信心。所以经过评估之后,我们决定将 HDRP 向移动平台进行移植。至此,我们游戏就只有 HDRP 一套渲染管线了。

UnITe大会上《仙剑世界》 HDRP 跨平台优化技术分享
在开始移植之前,我们预留了约一个月左右的时间作为移植的缓冲时间,以防止遇到难以解决的突发问题。另外,我们提前评估了所有PC上我们正在使用的,甚至还未使用,但是很可能会用到的HDRP下所有特性,它们在移动端上可能的性能表现,用于确定是否能在移动平台保留或简化这些特性。我们经过多次会议和讨论,确定了大体的移动端管线结构和流程,以及对应的RT的格式和尺寸。然后就是通过平台宏控制,将移动平台下预期不佳的功能,从管线和Shader上先进行了屏蔽,渲染管线也进行了重新设计,以适配移动平台的带宽压力。在完成这些整理之后,我们才开始正式移植到移动真机上的。整个移植过程非常顺利。由于绝大部分的问题在上真机之前就已经预料和屏蔽了,因此几乎没有遇到什么困难就可以在移动平台的高端设备上跑起来。

Opaque 的ColorBuffer 的load是不必要的
只是真正的难关,是在跑起来之后。
在HDRP移植到真机之后,我们发现其运行性能实在不是很好,大约可能只有10+、20+的FPS。这个离我们的预期太远了,所以我们开始Profiler真机看看问题都出在哪里。
主要的问题就是在Shader上面。HDRP的标准LIT Shader 在移动平台下编译出来数千行还带有循环的指令,实在是让移动平台的GPU难以应对。因此我们开启了大规模的Shader的整理和简化工作。整个优化流程进行了很多轮,时至今日,我们仍然还在持续为Shader进行移动端的优化。但是在初期一两次核心整理之后,FPS就有了大幅提升。主要的优化方向有,去掉复杂的,很多次循环迭代的某些算法(如阴影,环境高光等),改用适合移动端的轻量级算法。另外光栅化数据的结构整理,也很有必要。去掉各种不必要的特性分支。因为我们已经熟悉了解了自己项目的需求,因此不必保留这些Shader里面可能的分支流程。最后,由于HDRP原本并不是为移动平台设计的,因此会存在大量的动态索引设计。动态索引确实在设计的灵活性上非常方便,但是这会使得buffer的访问速度,甚至大量中间变量的计算速度变得很慢。因此去除主方向光、阴影等等渲染输入数据的List结构,使其变成可以通过静态偏移的方式去访问。使得Shader代码从行数,寄存器访问速度,甚至CPU数据填充方面都有很大的性能提升。
在移动端开发的过程中,我们也深刻地认识到——移动平台的优化是需要持续进行的,即使到了项目开发的中后期,也应该对移动端性能的保持关注和维护。过程虽然会有困难和卡点,但是优化过后的效果总能让移动端的表现更上一层楼。
PC 端的资源生产工作流和移动端是怎么平衡和配合的?
我们是以 PC 为基础生产模型资源的,在技术给定的规格框架内,保证基本效果的情况下向移动端过渡。这个过度包括模型的面数,贴图材质的处理,LOD 的处理和衔接,以及技术Shader上的调整。两者之间有共用和继承关系,也有完全独立的部分。比如 PC 的最后一级 LOD 是移动端的第一级。当然,移动端因为兼顾性能和效果问题,我们也会对一些模型进行单独制作和调整。这个调整也是在 PC 资产的基础上去想办法,这样才能保证 PC 和移动端的效果统一。
游戏场景及规模都很大,资源和渲染管理方面做了哪些特殊的设计吗?
仙剑世界的地图面积高达384平方公里,涵盖多样化的地形地貌、人文景观和精怪生态。其中所涉及的资源种类和数量非常庞大,我们在寻找开发效率、包体大小、更新效率、性能优化和游戏品质之间的平衡点时,遇到了极大的挑战。通过项目前期的不断打磨和调整,我们最终探索出了一整套的涵盖资源制作、场景编辑等上下游的规范、流程和工具链。
首先是为不同平台制定不同的美术资源标准,确定每个平台的资源制作规格、命名规范和品质标杆。
其次我们将场景物件按“花草树木山石湖河器物”等进行细分,为每个类别制定专门的场景摆放规则。通过资源代理机制,地编只需制作一份场景,我们可以针对不同平台进行细节控制,在不影响功能性和品质的前提下适配平台特性。

《仙剑世界》场景地编
在打磨和调整过程中,我们逐步完善了工具链,以标准、自动、可视、高效为原则,助力各个生产环节,提供效率,保障品质。
再次,我们引入了UnITy新一代资源构建管线SBP,其灵活、可定制、高效的特性,使我们可以从容管理数十万且还在不断增长的资产,随心控制打包粒度,缩减CICD的时长。
最后,我们通过对UnITy引擎的深度定制化,让游戏可以承载更丰富的细节,容纳更多的玩法,体现更高的画面品质。
在渲染方面,我们除了在近景使用了HiS系统进行大规模合批(在UnITe大会详细分享过这个技术,它主要针对材质相同,Mesh相同,但是数量非常庞大的组件式的Model类型),还利用UnITy 的Batch Renderer Group 来针对Mesh、材质重叠度不高,数量不大,但是种类很多的静态非组件式物件进行合批操作。这样我们近景对象的DrawCall问题就得到了很好的解决。

通过HiS进行场景管理,同样的场景FPS可以达到230以上,性能增加了15倍
未来的上线计划能和我们透露吗?
在前段时间结束的多端付费删档测试中,一些 HDRP 在各个手机型号上的适配效果也得到了初步验证。虽然目前还没达到最佳理想的状态,但是从团队优化效果的轨迹来看,对于 HDRP 移动端的移植还是保持着乐观的预期。
同时,无论是 PC 端还是移动端平台,我们都希望游戏给玩家带来更好的感受。最近也是再度开启了小范围的共研服测试,针对画面、玩法、体验等不同层面进行优化和迭代。例如针对我们核心“万物有灵”的玩法,新增多御灵助战、注灵探索、御灵仙术、御灵派遣等丰富内容;针对“五灵生克”战斗机制,优化战斗效果与玩法策略;针对游戏基础体验,优化UI表现和战斗手感等等。后续将会有更好的效果表现呈现给大家,也可以期待一下。
采访还附上了 U3D 引擎开发工程师何姝姝,在 UnITe ShanghAI 2024 上的分享《仙剑世界: HDRP 管线下的超大世界游戏与跨平台优化》演讲全文。
大家好,我叫何姝姝,来自上海凡影满天星工作室,我们最近开发了一款名叫《仙剑世界》的开放世界游戏,很高兴今天有机会跟大家分享我们在《仙剑世界》这款游戏中所遇到的技术方面的经验和数据。
立项的时候,我们计划制作一款大世界游戏,它可以上天入地、自由飞翔,它有什么特点呢?它非常的大,它是一个开放性地图,地图直径有 24 公里,总规模达到 384 平方公里,全场景自由探索,并且完全没有 loading 条,我们支持 PC、iOS 和安卓,可能还会有其他平台后续的支持计划。在 PC 上,我们要求很高的质量,并且移动平台我们要求非常流畅。

《仙剑世界》御剑飞行效果展示
我们项目早期是 URP 管线,优点是简洁、灵活、代码总量小、便于维护,控制它的成本比较小,但这也是它的缺点,它实在太简单了,缺少大项目需要很多特性。当时我们有两个选择,一个是自己造轮子,进度和计划不是很允许。另外是寻找各种特性的package,把它们整合到一起,但是整合成本也很高,可能会有很多 bug。总的来说,我们当时的诉求是快速、好看、灵活、效果丰富和稳定。