helldivers吧 关注:40,207贴子:811,949

理性讨论:为什么开发商不直接购买更多的服务器 -转自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
      收起回复
        hmmm


        IP属地:美国来自iPhone客户端4楼2024-02-22 01:17
        回复
          总结:
          是单个服务器的cpu和内存上限到头了,现在只能同时容纳45万名玩家了。如果再加一个新的服务器,要解决两个服务器之间数据互通的问题,数据不能及时互通也会导致玩家的上线、加入游戏、结算、充值等等功能出问题、这不是小作坊能马上拿出来的技术,他们完全没有这个经验,也没用这种技术人员。
          现在箭头在招聘新的软件技术人员,什么时候招到不好说,招到之后,什么时候能写出来代码也不好说。


          IP属地:上海来自Android客户端5楼2024-02-22 02:45
          收起回复
            老司机1的同时在线人数峰值是7000人,老司机2箭头认为能卖得不错,毕竟质量过硬,美滋滋准备了25万人的服务器,觉得肯定够用了,能有25w人同时游玩他们都能做梦笑醒。
            结果,没想到,发售几天后是80w人挤破头想进游戏。


            IP属地:上海来自Android客户端6楼2024-02-22 02:49
            收起回复
              属于是早期底层逻辑出现问题了,租服务器都没用呗,估计等他们搞好玩的人也少了,最好别白忙活一场


              IP属地:新疆来自Android客户端8楼2024-02-22 03:36
              收起回复
                为什么作者认为【所有人都在同一个游戏世界中玩】是本游戏的核心机制?
                有多少人关心联机的四个小伙伴以外的世界?


                IP属地:上海9楼2024-02-22 04:23
                收起回复
                  我的评价是为了那点没人愿意买的破内购全程联网加狗屎反作弊导致的一系列问题


                  IP属地:四川来自iPhone客户端10楼2024-02-22 05:18
                  收起回复
                    这到底是有多弱智才能问出不关心同一个世界这种问题。。。游戏都跨平台了它这时候再分xx区服岂不是脑子有问题?本来就是方便全球人员都能联机的一个系统才把数据放一个数据库里的


                    IP属地:江苏来自手机贴吧11楼2024-02-22 05:27
                    收起回复
                      越搞越烂,刚发售还能朋友一起联机,能匹配,过几天经常掉线,匹配不到人,现在谁当主机都连不上,武器削成一坨难度加强的情况下一点也不爽,怎么越烂人玩的越多呢,垃圾游戏 我玩一代去了


                      IP属地:上海来自iPhone客户端12楼2024-02-22 07:01
                      收起回复
                        +3


                        IP属地:山东来自Android客户端13楼2024-02-22 07:32
                        回复
                          现在低龄傻子太多,戾气重,只会嚷嚷
                          你稍微跟他解释一下为什么不扩容
                          马上“孝子”“洗地”的帽子就扣上了了


                          IP属地:湖南来自Android客户端14楼2024-02-22 07:42
                          回复
                            甚至还要来一句“帕鲁两百万而且是业余程序猿怎么服务器没崩?”说这种话的人要么是没有玩过帕鲁,要么是没有脑子的。


                            IP属地:湖南来自Android客户端15楼2024-02-22 07:49
                            收起回复
                              坏消息,说明箭头一开始没做服务器集群,现在就一台机器,没有扩容方案


                              IP属地:北京来自Android客户端16楼2024-02-22 07:54
                              收起回复