从游戏角度审视网络与元宇宙发展概况
网络的限制和发展方向决定了我们能打造一个怎样的元宇宙产业和服务,也决定了我们什么时候可以使用它们,以及我们可以如何使用它们。
网络通信问题可能是在众多对元宇宙未来畅想中最被低估的问题,人们无不渴望能在元宇宙中找到更贴近真实的体验,尤其是在用户间的交互方面。Zuckerberg 在 Horizon Home 的发布会中也不止一次提到,用户在虚拟世界对于面部细微表情的需求超乎想象。然而,这些需求的实现不单单是对硬件设备的挑战,更是对网络发展的挑战。
网络意味着硬件识别的信息能否及时准确的传递到交互对象的设备,也意味着人们能否流畅的在元宇宙中生活。实时交互的网络传输不同于流媒体平台能够提前规划提前预载,而更像一个实时在线的 3A 游戏,不同的是每个玩家的动作、决定都无法预知,然而这些实时信号的传输才是元宇宙在技术上需要攻克的最大难关。
本文作者 Matthew Ball 从互联网游戏出发,深入的探究了网络服务与基础设施对于元宇宙体验的重要性。
律动 BlockBeats 将原文翻译如下:
这是来自 MatthewBall「元宇宙入门」的第三部分,这一部分将聚焦于网络在元宇宙扮演的角色。这里所提到的网络被定义为「可持久的、能实时连接、高宽带和由主干网络提供的去中心化信息传输,这些网络可以在交换中心和服务之间任意穿梭(路由)以及那些最终负责输出到消费者眼前的数据服务」
网络的三个核心要素,即带宽、延迟和稳定性。当然对于很多读者来说这可能是关于元宇宙建设问题中,他们最不感兴趣的一环。然而这些网络的限制和发展方向决定了我们能打造一个怎样的元宇宙产业和服务,也决定了我们什么时候可以使用它们,以及我们可以如何使用它们(也许永远也无法使用)。
带宽
通常情况下,人们认为带宽意味着「网速」,但实际上它是指「在一个时间单位中能够能传输多少数据的量」。对于元宇宙带宽的需求理应远远高于大多数的互联网应用程序和游戏,甚至超过了很多现代的连接方式。通过《微软飞行模拟器》(Microsoft Flight Simulator)的例子或许能够更好的解释这一问题。
《微软飞行模拟器》是迄今为止作为逼真,地图最为广阔的用户模拟器。它囊括了 2 万亿棵独立渲染的树木,15 亿座建筑以及全球几乎所有的道路、山川、城市和机场。并且上述所有的模型都趋近于「真实」。因为它们是基于现实中的真实场景高质量扫描而来的。但是为了实现这个想法,《微软飞行模拟器》需要超过 2.5PB(拍字节)或者说 250 万 GB 的存储。目前的消费类硬件设备(和大多数企业级设备)都无法存储这么多的数据。
即使有设备能达到这个存储量,但是《微软飞行模拟器》的实时更新系统可以反映真实的世界天气(包括准确的风向、温度、湿度、雷达和照明)和空中交通。你可以毫不夸张的通过《微软飞行模拟器》进入现实世界正在发生的飓风风暴中,也可以找到 IRL 的商业客机的航线和它一同飞行。
(图为劳拉飓风期间,《微软飞行模拟器》中的场景)
事实上《微软飞行模拟器》是通过你的本地设备储存大量的核心数据来工作的(它像很多主机游戏一样通过本地运行,而不像例如 Stadia 这样通过云服务器运行)。当用户在线时,微软会根据需要,将大量的数据串流到本地设备中。想象一下,你是一个真实世界的飞行员,当你翻过一座山,或者转过一道弯时,被遮挡的光线带着信息第一次映入你的视网膜,这时你才看到了并知道了视野盲区的东西是什么。在那之前什么都没有,但是你的认知告诉你,会有「一些东西」出现。
很多游戏玩家会认为这和多人在线游戏的原理相同。但事实上,大多数游戏服务器只是向单个的玩家传输位置数据、玩家输入数据(例如在射击、投掷炸弹等数据),和数据总览(例如在《绝地求生》游戏中玩家残留数)。这些游戏的所有资产和渲染数据已经储存在了本地设备上,因此需要大量的下载和安装时间,同时也占用了很多硬盘存储空间。
通过根据需求来发送渲染数据,游戏可以有更加多样化的道具、资产和环境。这样游戏可以不需要下载安装过程中的延迟时间、更新处理或是庞大的硬盘存储。因此这种本地信息和数据流的混合模式被很多游戏采用。然而这种方法对于以元宇宙为中心的平台来说尤为重要。例如,《Roblox 虚拟世界》比《马里奥赛车》或《使命召唤》这类游戏更需要资产、物品和环境的多样性。
随着虚拟模拟的复杂性和重要性的日益发展,需要串流的数据也随之增长。至少就目前来看,《Roblox 虚拟世界》得益于一个事实,那就是其潜在的预置道具和资产可以被广泛的重新利用并且轻度定制化。因此《Roblox 虚拟世界》大量的串流数据都用于调整这些预先下载好的项目。但是最终形成的虚拟平台则需要近乎无穷无尽的排列组合方式(这些排列的方式又是无法预测的)。
数字孪生平台(Virtual twinning platforms)也被称为「镜像世界」,如《微软飞行模拟器》已经需要重新创造无限趋于真实世界的(可证明)多样性了。这也以为这实时发送的数据像「乌云」一样,既庞大又在实时变化不可预测。
最后一点也是关键的一点。如果我们希望在一个大型的、实时的、共享的和持久的虚拟环境中进行交互,我们将需要接收大量的云数据串流。
(其中有一个不是真实场景)
用「现实」世界和游戏《堡垒之夜》的地图相比较。地球上的每个人在同一个时间都处于同一个「模拟环境」中,并且具有永久性。例如我砍倒了一棵树,那么这棵树就永远的消失了,对于每个人都是永远的消失了。但是当你玩《堡垒之夜》的时候,它只是通过固定时间特定版本的地图,来进行游戏。并且在这个时间内,这个地图中,你做的每一件事情都只有少数用户能够共享,并且在地图重置之前,这个时间周期非常的短暂。如果你砍掉了一棵树,那么他将在 10-25 分钟之内被重置,而且树的消失,仅仅是对于和你一同进入游戏的其他 99 个玩家而言消失了。只有当 Epic Games 发布新的游戏版本的时候,地图才会真正的改变。如果 Epic Games 想要把「你的游戏世界」发送给其他人的时候,其他都都会放弃自己的「游戏世界」并且选择在特定时间去完善「你的游戏世界」,这对于大多数虚拟体验来说,这种算是比较好的体验。这同样适用于元宇宙中许多的服务。但是有一些体验是需要在所有用户中保持可持续性的。
如果们想要自由无缝的穿梭在不同的虚拟世界中,那么云数据串流也是至关重要的。Travis Scott 在《堡垒之夜》的线上虚拟演唱会,让很多玩家从游戏的核心地图无缝的传送到从未出现的海洋地图,然后又到了从未见过的星球,最后到达了外太空深处。为了实现这一效果,Epic Games 在活动开始的前几天就通过《堡垒之夜》的游戏补丁向用户提前发送这些场景数据(当然,这意味着如果用户在活动开始前没有下载并安装更新,他们将无法参与其中)。当玩家处于一个特定区域的时候,其本地设备已经开始加载下个区域的背景了。因此这个系统运行的非常完善,但是前提是,需要内容发布者提前很长一段时间知道用户下一步的去往哪个世界。如果用户希望拥有广泛的目的地选择权,那么必须要下载所有潜在的选项(这是不可能的)的全部内容,或者使用云端串流。
除了环境数据增加以外,还有玩家数据的增加。当你在《堡垒之夜》与朋友一起游玩时,《堡垒之夜》的服务器需要向你发送你朋友的位置信息以及他们的动作信息,而游戏的动画已经预先装载到你的设备上了(例如装弹或者跌落效果),这时只要接受到信息运行即可。但是当你有一个实时的动作捕捉被传送到你朋友的视角时,每一个捕捉到的实时信息都需要传送到你朋友的视角中,对于其他玩家也是一样。如果你想在虚拟世界中观看视频文件,就像《堡垒之夜》有时会提供的那样,那么这些视频也需要在虚拟世界的流媒体进行播放。同样的原理可以应用与游戏的空间音频和玩家之间触感体验。
许多在线游戏玩家都因为带宽不足导致的数据堵塞而头痛不已。而元宇宙只会强化这些需求。好消息是,世界范围内的宽带普及率以带宽速度都在不断上升。计算方式也在不断改进,通过提前预测真实数据发生前的可能性,能够很好的改进受限的数据传输。
延迟
目前网络里最大的挑战也是普通用户最难理解的问题也就是延迟。延迟是指数据从一个点传递到另一个点再传递回来所需要的时间。相比于网络的带宽和稳定性,延迟通常被视为最不重要的 KPI。这是因为大部分的互联网信息传输都是单向的或是不及时的。发送一条 WhatsApp 消息和收到读取消息的延迟相差 100 毫秒、200 毫秒或是 2 秒并不重要。当你点击 YouTube 的暂停按钮到画面真正暂停的时间是 20 毫秒、150 毫秒还是 300 毫秒也没有那么重要。在观看 Netflix 的流媒体视频时,视频的连贯性比是否能马上播放更为重要。为了达到这个目的,Netlfix 会延迟视频开始播放前的时间,这样设备能够提前加载后续的视频,即使遇到网络崩溃或是卡顿,用户也很难注意到其中的差别。
即使是同步的长时间视频通话,用户对于延迟也会有相对较高的容忍度。通话中视频的部分也是最不重要的一部分,因此如果你的网络出现问题,视频通话软件通常会优先处理更「轻量化」的音频数据。如果你的延迟暂时从以毫秒为单位增加到了以秒为单位,那么软件可以通过停顿的间隙飞速的完成内部编辑,提高积压音频的播放速度来匹配当前进度。此外,用户也非常习惯延迟的出现,因为他们只需要等一等就好了。
然而,沉浸式的 3A 在线游戏则需要非常低的延迟。这是因为延迟决定了每个玩家接受信息的速度 (例如,一个玩家的位置在哪,是否投掷了一颗手雷或是一个踢飞一个足球),以及他们的反应传递给其他玩家的速度。换句话说,延迟决定了你游戏的输赢。这就是为什么现代的大多数游戏的视频帧率是平均帧率的 2 到 4 倍。这也是为什么我们反对在传统视频中应用高帧率画面的同时,也能快速接受这种增长。这所有的一切都是必要的进程。
在电子游戏当中,人们对低延迟的需求非常高,特别是相比于其他媒介。例如,传统的视频和电子游戏。普通人甚至不会注意到音画是否同步,除非音频传递的时间早于 45 毫秒,或者延迟超过 125 毫秒(区间为 170 毫秒)。人们可接受的范围甚至更广,基本在早于 90 毫秒至延迟 185 毫秒之间(区间为 275 毫秒)。对于数字按键,例如 YouTube 页面点击暂停按钮之后,我们只有在点击之后 200-250 毫秒的时间内没有反应,我们才会意识到点击失败了。在 3A 级游戏中,狂热的玩家在延迟高于 50 毫秒就会感到不适,如果高于 110 毫秒会感觉焦躁,如果延迟高于 150 毫秒那么将无法进行游戏。根据 Subspace 研究发现,对于狂热的游戏玩家来说,游戏的平均延迟每增加或降低 10ms,那么他们的每周的平均游戏时间会相应的增加或减少 6%。这是一个惊人的数据,而很多公司还没有发现。
(美国各个城市网络延迟对比)
通过以上的数据,我们来看一下全球的延迟数据。在美国,数据从一个城市发送到另一个城市再返还回来,平均往返时间是 35 毫秒。事实上许多配对都超过了这个数字,特别是那些人口密度高,用网需求高的城市(例如,傍晚从旧金山到纽约的往返)。然后是从「城市到用户」的传输时间,这是造成传输速度慢的主要方面。人口密集的城市、社区或是公寓楼非常容易造成网络拥堵。如果你是通过移动设备,以 4g 网络玩游戏的话,平均延迟要达到 40 毫秒。如果你住在非中心城市,你的数据还要传输到 100 英里以外,并且通过陈旧的、维护不良的电缆设备,这样的话延迟还会更高。在全球范围内,城市之间的传输延迟的中位数范围大约在 100-200 毫秒之间。
为了解决延迟问题,很多在线游戏公司已经开发了一系列解决方案和技术,但目前仍然没有形成一定的规模。
例如,目前大多数的高质量多人在线游戏都是通过「匹配区域机制」来划分不同的服务器的。游戏开发商能够根据玩家地理区域的记录,给那些生活在美国北部、西欧或东南亚的玩家按区域划分匹配最低的延迟。游戏作为人们的生活休闲方式之一,人们大多数会和一到三个朋友共同游玩,因此这种区域的匹配机制做的非常好。毕竟,你不太可能与几个时区之外的人一起玩游戏。不管怎么样,作为玩家你并不会关心那些路人对手住在哪里(通常来讲你们的语言都是不相通的)。不过 Subspace 调查还发现,中东大约有四分之三的地区互联网延迟波动超过了多人在线游戏的可玩范畴,而在美国和欧洲,这个数字大概在四分之一。这主要反映了管带基础设施的局限,而非服务器所在的位置。
多人在线游戏也使用「netcode」解决方案,以确保同步性和一致性以保证玩家能够流畅游玩。Netcode 主要会基于网络延迟数据,通过代码自主的干预玩家设备(例如 PS5)的延迟数据,直到高延迟玩家(例如游戏对手)输出信号的到达。这种让是虽然会让很多低延迟玩家感到厌烦,因为他们的肌肉记忆会更适应低延迟,但是却是行之有效的。在 Netcode 方案出现之前,情况会更加复杂。如果你的游戏对手延迟过高,而你的设备还是按照正常预期进行,这是如果设备发现了对手玩家的数据出现了偏差,那么它将会释放对手玩家正在进行的动作,然后尝试修正并回放「正确」的动画。
这些解决方案适用于 1v1 的游戏 (例如平面格斗游戏),或是低延迟出现波动的情况(例如 40 毫秒上下的波动),以及具有非常高的可预测性动作游戏(例如赛车游戏,平面格斗游戏)。但是如果我们将这些解决方案扩展到元宇宙的视角,更多的玩家,更大的延迟变化,更多的动态场景,那么这些解决方案的可行性将会非常底。代码很难前后一致的预测十几个玩家的变化,也很在不破坏体验的情况下,修正这些玩家的动作延迟。相反,简单的断开一个高延迟玩家的连接会更容易。尽管一个视频电话会有很多的参与者,造成「核心」延迟的参与者才是最重要的。就像在游戏中,从所有玩家中获得正确的信息,延迟才是最大的问题。
低延迟对于大多数游戏都不是问题,例如《炉石传说》或者《World with Friends》之类的游戏,他们大多是回合制的游戏,要么是不需要立即同步的,同样像《王者荣耀》或是《CandyCrush》这样的游戏也是一样,不需要高质量的像素输入,也不需要精确到毫秒的传输速度。但是例如《堡垒之夜》、《使命召唤》和《极限竞速》等 Twitch 榜上有名的游戏,都需要更低的延迟。这些游戏是有利益掺杂其中的。但是这仍然是整个游戏市场的一小部分,甚至在全球玩家的游戏时间中比重更小。
尽管元宇宙不是一款火热的 3A 游戏,但是他的社交属性和期望值都意味着它需要更低的延迟。微小的面部动作对于人类的交流同样非常重要,人类对于细节的错误和同步问题异常敏感(因此,有很多 CG 动画会出现「恐怖谷」效应)。社交产品更加依赖产品的普遍性。想象一下,如果 FaceTime 或者 Facebook 不能使用了,当你独自一人在家时,你想要在虚拟的网络中雇佣国外的劳动力,除非你的朋友或家人远在国外能够帮助你寻找,否则即使你有宽带网络也无法实现。
不幸的是,延迟是所有网络属性中最难解决也是最慢解决的。正如上面提到的,部分原因在于很少有服务和应用程序需要超低延迟交付。这就限制了任何网络运营商或对低延迟有需求的内容交付网络公司的发展。事实上这方面的业务已经受到了来自物理定律层面的冲突和挑战。
从纽约市到东京或孟买需要 40-45 毫秒的光程,全程 11000-12500 公里。这满足所有低延迟范畴。然而,尽管大多数互联网主干是光纤,但光纤电缆的速度比光速低 30%,因为光线在真空中有损耗 (损耗通常为 3.5 dB/km)。铜线和同轴电缆在远距离有更严重的延迟损耗,带宽更为有限,这意味着更大的拥堵和延迟交付风险。但这些电缆仍然构成了住宅和商业建筑内部以及社区的大部分电缆。
此外,这些电缆并不是密布到每个角落的。我们通常认为的「主干网络」事实上是疏松私有网络连接而成的,没有一个网络会以最大效率提供数据包的传输(或者有动机因为利益为客户提供比竞争对手更快的网速)。因此,服务器与服务器之间,或是服务器与客户端之间的网络距离可能大过他们之间地理距离。此外,保证传输可靠和调控拥堵比实现最小化的延迟更为重要。这就是为什么从纽约到东京的平均延迟是两个城市之间光速传输的 4 倍以上,从纽约到孟买的延迟是 4-6 倍。
基于电缆进行升级或是建设中继设施都是极其昂贵和困难的,尤其是要实现地理位置上的最短距离。此外还需要当地监管部门或政府的层层批准。当然相比之下建设无线网络会更为简单。5G 建设当然有很大的帮助,因为它的平均延迟比 4G 低 20-40 毫秒(延迟时间可能低至 1 毫秒)。然而 5G 仅仅提升了最后几百米的传输速度,一旦你的数据传输到了信号塔,那么整个速度又会回归到原始的主干电缆的速度了。
SpaceX 的卫星互联网公司 Starlink 承诺,未来将在全美乃至世界范围提供高带宽、低延迟的互联网服务。但是这并不能解决超低延迟的问题,特别是超远距离的延迟问题。虽然 Startlink 可以在 18-35 毫秒之间实现你的房屋到卫星的往来,但是它延长了正常情况下纽约到洛杉矶的距离。毕竟这些数据需要在多个卫星之间相互传输。在某些情况下,Starlink 甚至会加剧数据传输的时间,从纽约到费城的直线距离大约为 100 英里,电缆距离大概为 125 英里,但是当数据发送至低轨道卫星并且返回时,之中的距离可能会超过 700 英里。另外,光线传输的损耗远小于通过大气传输的光的损耗。特别是在阴天的情况下,人口密集的地区嘈杂的城市,更容易受到干扰。2020 年,Elon Musk 也强调说「Startlink 的服务对象是电信部门也难以解决的用户」。在这个意义上,Startlink 事实上为元宇宙带来了提升远超过对传统网络的提升。
全新的技术、产业链和服务仍然正在开发,以满足日益增长的、对实时带宽需求更高的应用程序。例如 Subspace 披露一些投资公司将在数百个城市部署硬件设施,以便在未来开发低延迟的「天气地图」,并搭建网络堆栈来协调第三方路径和应用程序的低延迟需求,甚至建立一个光纤网络,通过各种光纤网络连接,进一步缩短服务器之间的距离,最大限度地减少非光纤电缆的使用。
同时,为需求低延迟的应用程序提供优化的 CDN,而不仅仅是提供交付的稳定性与带宽。该公司遵循「基础设施即代码」的方法,允许客户定制公司各种方面的边缘计算机集群,承诺软件应用程序可以在 150 毫秒清除和替换集群中的所有缓存内容,并且可以实时缓存并加速单个区块链的实时交易时间。
稳定性
稳定性是显而易见的。我们是否有能力将劳动和教育转移到虚拟世界,直接取决于服务质量是否可靠。这里既包含了网络整体的运行时间,也包含了其他因素(例如上传或下载的带宽)的一致性,以及延迟。对于现代许多「生活在互联网上「的人来说,上面的许多内容听起来会显得危言耸听。大部分情况人们对 Netflix 上 1080p 或是 4K 的视频已经非常满意了。然而 Netflix 之类的流媒体服务利用了稳定性的解决方案,但是这些解决方案并不适用于游戏或是元宇宙中的某些应用。
像 Netflix 这样的非实时视频服务平台,会在视频文件提供给观众之前的数小时或者数个月里就提前收到了所有的视频文件。这让他们能够有充足的时间来进行广泛的分析,通过分析框架数据来缩小(或压缩)文件大小,同时可以确定哪些信息可以被丢弃。Netflix 会基于算法「观察」视频中的蓝天场景,并且决定如果一个观众的网速下降,500 种不同深浅的蓝色色块会简化为 200 或是 50 或是 25。流媒体播放器的分析甚至是基于影片情节而进行的,它会识别对话场景比快节奏的动作场景更容易承受压缩。这也是多通道编码。正如前面讨论的那样,Netflix 还利用多余出来的带宽,在用户需要视频之前将其发送到用户的设备上,因此如果用户的网速暂时下降或是延迟增加,都不会影响用户的最终体验。此外,Netflix 将在本地节点预先加载内容,当你要观看最新一集的《怪奇物语》时,它实际上已经储存在几个街区之外了。这在直播或是创建实时数据的方面是不可能实现的,当然上述所说的情况也需要更快的网速。这也解释了在 Stadia 云串流 1GB 文件和在 Netflix 的 1GB 文件完全不在一个量级。
因此,即使网络发展的期望在本质上并不具有竞争力,但是我们不可否认的是,元宇宙提高了网络各个方面的要求,如延迟、稳定性、弹性和带宽,或是能否达到 3A 级别的游戏水准。无论如何,如果你的设备不能及时的接受所需要的所有信息,那么你的硬件设备再强大也不重要了。
原文来源:Matthew Ball,前亚马逊工作室战略主管
原文编译:律动 0x21