MMORPG《万神殿》背后的Multiplayer堆栈:《Rise of the Fallen》

寻找自己的道路是万神殿游戏玩法的核心:《Rise of the Fallen》– 玩家可以去任何地方、攀爬任何东西、铺设新的路线、跟随他们的好奇心去寻找冒险。这与其创作者 Visionary Realms 制作这款 MMORPG 游戏的方式并无二致,他们各行其是。
将玩家传送到《Terminus, Pantheon:《Rise of the Fallen》重现了经典的MMO游戏,偶然的探索、在开放世界中漫步以及与其他玩家的社交互动是游戏体验的核心。
制作任何 Multiplayer 游戏都是一项挑战 - 但制作这种规模的社交性极强的在线游戏是一项史诗般的任务。我们与首席程序员Kyle Olsen坐下来,了解团队是如何使用Unity在这个MMORPG幻想世界中将玩家联系起来的。
那么是什么让《万神殿》:《Rise of the Fallen》与其他 MMO 游戏相比有何独特之处?
这肯定是社交方面。你必须自然地体验世界、穿越世界。从某种意义上说,它可以让你更深入地接触角色、游戏和世界,而不仅仅是远程传送、加入LFG系统或躲进地牢。你对这块土地的了解要稍微多一点,你不仅需要像弹珠一样从一个物体到另一个物体上来回弹跳,还要需要导航和使用眼睛。这更像是一场思维游戏。
你们是怎样管理玩家体验与特定世界实例之间的同步的?
我们有自己的网络库,称为 Vi ⁇ ,用于套接字传输层。这就是所有区域通信、区域之间和玩家与区域之间通信的基本条件。后端是SQL Server,算是标准配置。但是,大多数传输是由我们自己的网络库处理的。

你们是怎样为这个庞大的世界加载资源的?
我们有一个步骤,将大陆烘焙成这些瓦片,我们可以插入不同的后端。我们有一个可以输出标准预制件的预制件 , 还有一个可以输出我们在Unity 6之前使用的子场景 , 然后我们有可以附加加载的实际完整Unity场景 , 这样你就可以选择输出内容的方式。在 Unity 6 之前,我们已从预制件开始加载 DOTS 子场景,并使用基于 BRG 构建的场景。
我们还有一个输出,可以直接渲染到自定义批处理渲染组,只需要使用脚本化对象和管理我们自己的数据。因此,我们可以试验和测试不同的方法,看看哪种方法可以获得最佳的客户端性能。在 Unity 6 之前,我们使用子场景输出和渲染整个非洲大陆,但在 Unity 6 之后,我们实际上又转而使用具有即时异步和可寻址功能的预制件来管理一切。
我们使用了Resident Drawer和GPU遮挡剔除,最终比子场景和我们自己的批处理渲染组的性能更好——我这么认为是因为GPU遮挡剔除目前不受其他渲染路径的支持。因此,我们做了很多调整,并使用了Addressables来管理所有内存和资源加载,而使用GPU Resident Drawer定期实例化预制件似乎是目前最好的客户端性能。
你升级到Unity 6是为了利用GPU Resident Drawer吗?
实际上,我真的很想把它用在遮挡剔除上。我不知道只有某些渲染路径会使用遮挡剔除,因此我们试图将它与 Unity 6 之前使用的子场景渲染一起使用,但发现实际上没有剔除任何内容。因此,我们选择切换回预制件输出,看看 Resident Drawer 的效果,遮挡剔除和 FPS 都有所增加。
我们最初遇到了一些问题,因为 Unity 6 之前没有实例化异步,所以在实例化瓦片时遇到了一些拖延。实例化的东西很多,但在修复几个错误后切换到Instantiate Async,我们摆脱了加载时的停滞状态,加载后总体帧权重更高,因此这是一个双赢的结果。
转用Unity 6后 生产力有显著提高吗
到目前为止,我所说的一切都是面向客户的,所以我们的玩家体验到了这些胜利。在개발자者方面,编辑器的稳定性和性能得到了大幅提升。Unity 6 中的编辑器稳定性已大大提高 – 现在很少出现真正的崩溃。仅此一项就取得了巨大的成功,至少对编码部门来说是如此。它的整体感觉更稳定。
您如何处理更改和更新而不破坏一切?
我们在制作Addressables时经常用到标签,并且会用标签打包。因此,如果我们编辑特定区域或区域中的资源,或者与法术相关的 VFX 或类似的东西,则只有触及该标签的包会进行更新。
然后是我们自己的内容分发系统,我们在Steam上发布了游戏和补丁程序,两者都会处理增量更改,我们只是通过这些可寻址包提供少量更新。NetCode 首先要求连接相同的版本,因此在握手过程中会自动处理其网络库端。

你会给正在尝试制作MMO游戏或其他雄心勃勃的Multiplayer项目的人什么指导?
我猜你是从小处做起的这是一个逐步的过程。如果你是小团队,你需要从小团队做起。这是一个逐步的过程。小团队不能吃太多东西。这样的体验绝对会让人应接不暇,但任何大型游戏都是如此,不仅仅是MMO。
可能是技术选择 – 提前做出明智的选择并坚持下去。它将需要大量的中间件和后端技术,你必须搏斗在一起才能顺利工作,而一直换成最新的炫酷东西可不是个好兆头。
这款游戏最让你的团队激动的技术成就是什么?
我认为在 Unity 中完成的开放世界 MMO 并不多。我们没有庞大的团队,而我们正在制作一款真正庞大的游戏,因此我们必须专注于一些孤立的小领域,尽可能开发它们,然后继续前进并获取反馈。
整个包裹都是些新东西——如果有MMO,它需要让人感觉精神上像一个MMO,周围有很多人做着自己的事。我们做到了这点 – 我认为这比几乎任何 Unity MMO 都更好。我认为我们可以拍拍自己的背。
在Unity资源页面和博客上向开发者了解更多见解。观看《万神殿:《Rise of the Fallen》于 Steam 抢先体验。
