地狱潜者吧 关注:15,118贴子:121,651

理性讨论:为什么开发商不直接购买更多的服务器 -转自reddit

只看楼主收藏回复

由于很多人对当前的服务器容量问题感到沮丧和困惑,我想我应该提供一个解释并帮助解决一些误解。 免责声明:我不为 Arrowhead 或 Sony 工作,也没有特殊的内部知识,但我是一名软件开发人员,对问题有一定的知识。
首先,我提一下问的最多的问题:为什么他们不能购买更多服务器? 有目共睹的,他们已经赚了足够的钱,或者索尼也会帮助他们,包括微软 Azure/亚马逊 AWS (服务器供应商)。他们可以在几分钟内为开发商提供所需数量的服务器。
从行业角度来看,有两种类型的扩展。 垂直(vertical)和水平(horizontal)。 垂直扩展是指获取更强大的服务器或投入更多服务器资源来解决问题。 水平扩展是指您获得更多服务器。 并非每个系统都可以轻松地在两个方向上扩展。 周一,Arrowhead 将服务器容量从 25 万增加到 36 万。 这是垂直典型的垂直扩展。 不幸的是,垂直扩展只能到这为止。 CPU 的运行速度有限,您只能获得有限的内核,并且服务器中只能容纳有限的 RAM(内存)。
好的,那么解决方案是水平扩展并获得更多服务器,对吧? 是的,但不完全是。 对于处理玩家连接的服务器来说,它需要拥有有关游戏世界的所有最新数据。 如果您添加更多服务器,您需要某种方法来使它们保持同步(稍后会详细介绍)。
“Palworld 可以,为什么 Helldivers 不行呢?” Palworld 的需求与Helldivers不同。 每个服务器都运行一个完全独立的世界。 他们不需要串联彼此或保持同步,因此他们只需投入更多服务器就可以有效地无限扩展他们的游戏(只要他们不想增加每台服务器的玩家数量)。 而回到《Helldivers》,我们所有人都在同一个游戏世界中玩。 这是游戏的核心机制。
我们还可以从开发人员最近的一条推文中获得一些见解,其中提到他们的数据库正在努力处理负载。 这就说得通了。 数据库为应用程序存储数据,它们很容易垂直扩展,但水平扩展就没那么容易了。 传统上来讲,数据库是拥有强大硬件的大型服务器的主要用途之一。 数据库也可以水平扩展,但需要更精细。 考虑到我们的数据库需要保持所有数据同步,以便所有玩家都可以在同一个游戏世界中玩游戏。 如果该数据每 30 分钟更新一次,但每秒请求数百万次,那么将该数据复制到我们需要处理所有这些请求的尽可能多的服务器将非常简单。 这就是像 Reddit(贴吧) 这样的服务能够轻松扩展以处理如此大规模用户的原因。 他们的数据库只需要在最终阶段保持同步(这当中当然有许多精细的代码已经内容,并且涉及大量的工程,在此我们暂时忽略)。 但游戏服务器不同,游戏数据需要不断更新,服务器请求可能成倍增长。 所有的请求不仅需要最新数据,还需要越快越好的获得该数据,否则游戏可能会出现问题。 在像 reddit 这样的服务上,这可能只是意味着页面加载需要更长的时间,或者用户可能必须刷新页面才能看到最新的帖子。 对于游戏来说,这可能意味着您无法获得奖励或游戏崩溃。 像这样水平扩展数据库要困难得多,如果您只是向其投入更多服务器,那么它们为保持同步而必须完成的工作量可能会导致性能更差。 我个人曾在一个系统上进行开发过,在该系统中,天真地尝试使用更多服务器来扩展数据库会导致查询时间延长近 10 倍。
我忽略了很多细节,但希望它能帮助人们理解为什么当前的问题不容易解决。 这也不是他们可以盲目投入更多人的事情。 两个女人用再短的时间也是生不出孩子的。
最后,我想指出,第一代的 helldivers 历史最高在线有大约 7000人 ,但平均不到 1000 人。如果他们设计的系统能够处理 10 倍于他们前作的玩家,那么玩家数量将达到 7 万人。开发商假设续作有10 倍的增长是相当疯狂的,但他们却更进一步,设计了可容纳25万人的服务器。 不幸的是,全平台可能有 50 万以上的玩家想要在同时游玩。这是令人难以置信的成功,这些数字可能远远超出了开发人员对helldivers 2最疯狂的预想。 (这些数字只是我所听到的。不能 100% 确定它们是否准确,但总体观点是正确的)。


IP属地:上海1楼2024-02-21 23:35回复
    credit: reddit - Ok-Kaleidoscope5627 02/17/24


    IP属地:上海2楼2024-02-21 23:38
    收起回复
      原帖地址好像发不出来 半机翻,大家凑会看看


      IP属地:上海3楼2024-02-21 23:40
      收起回复
        举个不那么恰当的例子就是一堆中低端显卡加起来也无法达到高端显卡的水平


        IP属地:上海来自Android客户端4楼2024-02-22 02:00
        回复
          这么长的贴,估计没几个人有耐心看,也未必看的懂,很多人都是单线思维,你火了,赚钱了,就应该不计任何代价的缺啥补啥。
          我们单位有代加工业务,很多客户自带料来我们厂加工,他们带的料没有任何富余,而且要求材料利用率可以说已经达到99.8%。(我们自己的材料利用率能达到92%就很高了,会产生很多边角料)他们完全不懂加工设备对材料尺寸的要求,没有合格率的概念,也没有剩余边角料概念,更没有设备对材料的品质要求概念,认为一切皆可加工。
          说人话就是门外汉指导内行干活,一切都是想当然。


          IP属地:辽宁来自Android客户端5楼2024-02-22 04:57
          收起回复
            看到这就想起育碧的幽灵行动荒野任务打着打着队友掉线但是有AI队友,而且还能打不至于掉线白打


            IP属地:福建来自Android客户端6楼2024-02-22 09:58
            回复
              所以,楼主认为箭头下一步应该如何应对?


              IP属地:广西来自Android客户端7楼2024-02-22 10:10
              回复
                一代最高7000最高1000?我不大相信


                IP属地:浙江来自iPhone客户端8楼2024-02-22 10:28
                收起回复
                  所以就相当于单一服务器是一个世界,现在已经把这个世界的空间开发到头了,而和帕鲁不同的是,帕鲁开新服务器相当另开一个新世界,而箭头则是需要复制一个原有的世界,但是两个世界的同步时间长,会降低读取速度。艹,怎么突然让我想到星际公民萝卜的网格化了


                  IP属地:辽宁来自Android客户端10楼2024-02-22 11:39
                  回复
                    顶帖上去


                    IP属地:广西来自Android客户端11楼2024-02-22 11:56
                    回复
                      換成人话,就是一间餐厅很火爆。但是人多进不去了。你临时改建扩大餐厅,更多的客人可以进了,但还是有很多人排队。此时此刻你继续扩建是没用的,大厨的炒菜速度就那样。上不了菜,再大的餐厅又如何?等道菜要1小时你乐意?所以停止扩建餐厅确实是一个明智的决定。


                      IP属地:中国香港来自Android客户端12楼2024-02-22 12:09
                      收起回复
                        本质是这个游戏所有人在一个世界。没有分服的概念。这也是核心玩法。对与错不好说,但玩家爽


                        IP属地:北京来自iPhone客户端13楼2024-02-22 12:41
                        回复
                          目前的流程体验大概也就30到50小时,之后就是重复刷勋章,玩家人数一两个月就降到五分之一了,服务器加了也是白加


                          IP属地:广东来自Android客户端14楼2024-02-22 12:45
                          回复
                            分两个服,把亚洲单分出来(主要给国人玩),进度单独计算。


                            IP属地:河北来自Android客户端15楼2024-02-22 13:10
                            回复
                              楼主说这么多没用的,很多人只会认为你为厂商洗地,不如顺从,可能确实是意料之外的情形,但是这游戏现在褒贬不一也算是一种对箭头的敦促


                              IP属地:福建来自iPhone客户端16楼2024-02-22 14:01
                              回复