《天域》手游被网易寄予厚望。 是2015年《天域》端游的IP续作,也是网易2021年首款MMO游戏。自1月8日上线以来,该游戏一直稳居iOS免费榜榜首,并蝉联榜首。 TapTap热榜和新品榜单。
在MMO性能技术不断提升标准的竞争环境下,网易选择Unity作为手游《天域》的开发引擎,让低端设备也能实现云海、海底、植被等资源的高效渲染,并最终呈现高质量的图像。 艺术表演。 本次采访的目的是了解网易如何利用Unity引擎的功能完成移动美术技术的硬质呈现。
以下是葡萄老师整理的工作室采访分享:
能否简单介绍一下《天域》手游及其开发背景?
网易天语手游:《天语》手游由网易雷火游戏事业部开发。 目前其游戏主要为《天域》端游等MMORPG类产品。 客户端游戏《天语》成立于2011年3月,2015年6月正式上线,上线之初就打破了30万同时在线用户的记录。 目前,端游仍保持稳定的长线运营,积累下一批核心玩家。
因此,2016年8月,我们决定正式推出《天域》手游,并选择Unity引擎打造一款以《日月人生》、《万物有灵论》、《一见钟情》为设计思路的游戏和“奇妙的冒险”。 行业标杆MMORPG手游。
《天域》手游是一款东方玄幻题材的MMORPG游戏。 游戏为玩家打造了一个在云海中飞翔探索的世界mmorpg游戏服务端开发,并拥有丰富的职业选择、高难度副本挑战、高自由度的捏脸系统,为玩家带来独一无二的开放世界游戏体验经验。
手游《天域》已于2021年1月8日全平台公测,希望游戏能给玩家带来不一样的游戏体验,也希望天域IP不断壮大,为玩家带来更多不同的类型游戏工作。
游戏采用的无缝大世界是亮点之一。 你能分享一下它是如何实现的吗?
网易天语手游:项目场景要求大场景(2500 x 2500)、远景(标志物2000米)、丰富场景(日月升息,万物有灵,大量第三级对象)。 引擎原有的单场景机制会导致场景资源占用内存过多、面数多、drawcall压力大、多图加载耗时等问题。
我们尝试使用引擎提供的多场景机制,遇到了一些难以避免的问题。 不过在此基础上,引擎也为我们提供了一些制作大场景的思路,实现了大场景的流式加载方案。
在制作阶段,我们为艺术家提供多人剪辑工具。 一个大场景可以分配给几个人员,每个人负责一块。 制作完成后,合并成一个大场景进行打光和烘焙,提高制作效率。
场景完成后,我们会根据场景中物体的大小、类别、重要程度,计算出每个物体的推荐观看距离。 艺术家可以在此基础上调整特殊物体的观看距离。
之后,我们将大场景导出到配置文件和对象预制件中。 配置文件记录了每个对象的资源路径、坐标、旋转、比例等信息。 在此过程中,我们会根据对象的观看距离对对象进行分层和分块,并将其存储在结构化的配置文件中,以提高运行时编辑场景对象的效率。
运行时,系统会根据主角位置的变化计算出当前需要加载/卸载的物体,并在不同的帧进行加载和卸载操作,保证只有玩家周围能看到的物体在内存,以及距离玩家较远的物体都可以及时卸载。
基本解决了上面提到的内存占用大、面数多、drawcall高、切图时间长的问题。 在此基础上,我们还做了一些其他的工作来优化流式加载的效果和性能,包括:
游戏使用Unity最新的DOTS技术JobSystem多线程管理器来实现鱼群的效果。 能分享一下JobSystem的使用心得和使用前后的数据对比吗?
网易天语手游:Unity的DOTS为多线程开发在易用性和安全性方面提供了保障。 《天鱼》手游开发了多种鱼类生态行为和优化算法,实现了40多种、8000多条鱼类、不同鱼类生态的底效。
当我们在iPhone 6s上单工作线程运行5000条鱼时,按照耗时计算理论上可以达到250帧。 在多核的手机上,我们可以有更好的性能。 Unity的DOTS确实为底层的性能提升提供了可能,是一项革命性的技术。
下面是5000条鱼在iPhone 6s上运行250帧的耗时分布:
手游《天域》实现了千人同屏,对游戏性能优化要求很高。 能否分享一下项目组的性能优化经验?
网易天娱手游:首先感谢Unity技术团队每个月来到项目组,持续为项目提供性能分析和优化服务。 毕竟,优化不会在一夜之间发生。
群战在客户端所做的优化主要包括:
游戏中的次世代渲染技术也是一大亮点。 能分享一下手机端云海的渲染方法吗?
网易天语手游:为了打造一个奇幻的三维海天世界,我们实现了很多时代渲染技术。 手游渲染技术的难点在于3D素材,所有已经在PC和主机上使用的渲染技术都必须进行深度优化和改进。
比如在手机上使用云海,实现可塑形、可穿行、可随24小时天气变化的超高品质云海效果。
首先3D动画,通过多个3D贴图存储云的形状,美术师可以通过模型和曲线的形式编辑云海,实现任意造型。
我们用Ray Marching来画云海。
为了流畅性,我们做了深度的性能优化,比如使用Sphere Tracing减少步进,使用Jittering解决采样率不足的问题,使用Mixed Resolution Rendering减少Fragment的渲染开销,使用TAA以减少噪音。 在万米高空、云层多、资源爆炸的情况下,在极低端的手机上依然可以流畅体验云海效果。
在 TAA 之前:
TAA 之后:
海量鱼群、水下水体、大面积植被的渲染也是开发者关注的点。 您能分享一下这些在 Unity 引擎中是如何实现的吗?
网易天语手游:鱼群渲染主要使用Unity DOTS进行深度性能优化,可实现海量鱼群渲染。
对于海底的渲染,我们通过模拟水体吸光的特性,定制了特殊的雾化效果和画面后处理方案。 让整体的色彩氛围与水下的感觉相呼应。
此外,海中还有许多特殊的光影效果,如焦散、光线从海面散射到海底、水中有漂浮物等。 我们还实现了定制化的渲染方案,从而更好的表现出整体的水下氛围。
超大尺度植被渲染的主要挑战来自于渲染性能的压力。 几乎每张大地图我们都规划了大量的植被,比如苏兰的花海,颍川的草海。 它的优化可以通过多种方式完成:
您是否正在考虑为移动平台添加光线追踪功能?
网易天语手游:我们会在游戏后续的版本迭代中加入追光功能。 未来我们可以在玻璃面、镜子、装甲、水面等各种不规则表面实现非常逼真的反射效果。
在为《天域》手游选择引擎时,您是怎么考虑的?
网易天娱手游:Unity拥有非常好的开发者基础,这让我们在立项之初就可以快速组建一支经验丰富的研发团队。 在开发过程中,Unity简单易用,迭代速度快,可以大大降低大型游戏的开发成本,成本可控。
新版Unity发布了DOTS和SRP特性。 DOTS 是一项革命性的技术,可为大规模角色对象模拟提供更深层次的优化。 SRP为定制引擎渲染管线提供了更方便的解决方案,减少了我们很多渲染定制的工作量。 另外,SRP的渲染性能也比老的内置渲染管线有了很大的提升,这是一项非常有价值的技术。
其次,Unity中国提供全面的性能优化支持和技术美工支持mmorpg游戏服务端开发,并且有一批固定的工程师长期驻扎在我们的项目现场。 Unity官方会在多方面提前给出开发建议,节省项目组探索实验的时间和成本。
近两年,Unity还在工具链上为开发者提供了更方便的开发工具,比如收集崩溃数据的Backtrace和自动化性能测试工具UPR,让我们可以安心使用全工具链并专注于开发优质游戏本身。