楼主一直不明白,都 2018 年了,为什么腾讯还解决不了游戏服务器分区的问题?

2018-11-25 09:57:34 +08:00
 yazoox

天朝的游戏玩家很多,估计要上亿。

基本上现在的网络游戏,不管是手游还是端游服务器都分几十个大区。如果放在十年前,是因为技术原因解决不了。能够理解。

可是现在都 2018 年了。 尤其是我们国内的网络应用这么发达,什么 618,什么双 11,短短的几分钟之内,金融系统的交易量就是几十亿的。 我相信应该早就能解决这个问题了。为什么还是要分几十个大区?尤其是腾讯,全球第一的游戏厂商。难道连这个问题都解决不了吗?

还是说,就是为了分几十个大区,挣多份的钱!?

有没有做网络游戏开发的大神?和俺们分享一下。难度到底在哪里?

34604 次点击
所在节点    游戏开发
224 条回复
nodin
2018-11-25 10:57:55 +08:00
分区才能控制数量,全部挤一个区里,一上线就像假期景点人挤人。当然,楼上的观点也是原因之一。
jiangnanyanyu
2018-11-25 10:58:02 +08:00
你为什么要玩他家的游戏
yuriko
2018-11-25 10:58:33 +08:00
无非就是几点:
多开服好运营,无论是实现多个竞争环境也好,鬼服之后合并服也好,降低老玩家对新玩家的压制等等,在运营上要方便不少。
技术上:电信和联通的通讯,为了网络通畅本来就是要假设两套服务器,分两个服还少了同步数据的烦恼

至于上两楼说的,iOS 和 android 的问题,苹果是有限制其他平台的充值渠道不能购买 iOS 端的消费,不然怎么苹果抽成,很多货币系统如果影响较多的,不如分开两服省事省心运营还方便
DeWhite
2018-11-25 10:58:45 +08:00
@Perry 合区是节省服务器费用,因为厂商的服务器冷门区服都是一定数量。合区等于,能省一个区费用。
xiqingongzi
2018-11-25 10:59:21 +08:00
整个游戏一个区和整个游戏 N 个区是多么明显的分布式架构???

整个游戏一个区,这么多人跑在一个服务器上成本多高?

分成 N 个区,每个服务器压力都不高,稳定成本低还能多赚一笔钱,为啥要做一个区。
xiqingongzi
2018-11-25 11:00:12 +08:00
天天学单体应用和微服务架构、分布式架构和集群,到了实战就忘完了。
randyo
2018-11-25 11:02:59 +08:00
当然是为了不停开新区赚钱呀
snail1988
2018-11-25 11:04:34 +08:00
游戏类型不一样,像吃鸡,王者这种当然不用分区,现在也不是分区,就分个 QQ 微信
但是像魔兽世界这类开发的 MMORPG,人太多挤在一个区,玩法上就不行,做任务打材料几百人和你抢游戏性大大降低,服务器活动抢个 boss 几万人,游戏体验也很差劲

技术方面
客户端同屏几百人,客户端渲染起来压力太大(参考永恒之塔要塞战卡死),你能看到的人物太多,网络压力也巨大(太多信息要求实时同步,而且是 N 对 N 的)

服务器也是,现在 MMORPG 大都采用了地图分块和 overlay 技术,但是也有一个处理上限,对于你说的双 11 交易系统如果延时能放宽到 1-2s,他所能使用的分布式系统的规模就可以做到很大承载更多买家同时交易
但是游戏服务不太一样大多数要求 100ms 内就要响应,玩家之间的交互随着玩家数上升指数级上升,1w 人同服的计算量可能是 1k 人同服的几十倍,分布式服务在这个响应时间内难以做大规模,承载的玩家数有限
947211232
2018-11-25 11:11:02 +08:00
纠正下,是全国第一的游戏代理厂商
BinRelay
2018-11-25 11:11:44 +08:00
最 nb 的是 连腾讯视频会员都分 qq 版本和微信版本……
DeWhite
2018-11-25 11:12:59 +08:00
简单的说一下吧,服务器宽带费用其实比服务器本身租金远要贵的多。在国内玩游戏的人,很多多到爆炸。分区的好处就是,不用管这些服务器之间有什么大型联动。网游确实是这样,不在一个区基本上能联动的很少。尤其是网游,真的算是很烧服务器费用的玩意。本地伤害运算意味着就能被篡改数据,那就服务器算吧。本地上传坐标的话,那就满天飞大哥了。那还是服务器算吧,网游的开放世界消耗服务器费用真的很重。魔兽一类开放性网游出月卡,那真的是因为刀架在脖子上必须收。moba 类游戏,那无所谓。
损耗比较小坐标系也没那么多。算完就丢过去,网络不好就漂移。当年有个叫 cf 的游戏,本地运算的坐标。导致外挂功能中,飞天遁地。后来出了个坐标限制补丁。屏蔽了就能接着嗨。所以后来基本上网游的坐标数据大部分都给服务器算了。
穷人节约费用靠本地运算,然后做不到安防只能变单机。富商服务器运算,但也吃不消费用。只能分布,主要还是玩的人太多。贪玩蓝月这种就有意思了,虚拟机配置一言不合就合区。
pony279
2018-11-25 11:16:46 +08:00
只问楼主几个简单问题:

1. 同城两台机器 ping 延迟是多少?
2. 省内两城之间的机器 ping 延迟是多少?
3. 跨省两台机器 ping 延迟是多少?
4. 深圳和北京,天津之间 ping 延迟是多少?

搞明白这几个简单的问题,再来看看你提到的上亿玩家,需要多少台服务器才能支撑起这些玩家同时在线?

这些服务器同步信息需要的延迟又是多少,复杂度是多少?
yksoft1
2018-11-25 11:23:12 +08:00
话说《守望先锋》是如何实现国内范围服务器不分区,主机式体验的?
snail1988
2018-11-25 11:26:44 +08:00
@yksoft1 因为他分了超小的区,十几个人, 吃鸡 100 人最多,只有他们 100 人的数据需要同步计算,现在主干网的建设,全国只要是大运营商,延迟相差 20ms 最多了
SorcererXW
2018-11-25 11:31:47 +08:00
就技术而言, 可以看看腾讯旗下的 supercell, 像皇室战争对实时性要求这么高的游戏, 都能做到全球全平台同服
分这么多服务器说白了就是为了赚钱
yksoft1
2018-11-25 11:32:26 +08:00
@snail1988 那远距离组 5 人、6 人队的情况下就很难按照延迟来排位了。
yksoft1
2018-11-25 11:33:21 +08:00
@snail1988 比如海外直连的和在东北、广东、山西的玩家组队这种情况,如何实现匹配?
snail1988
2018-11-25 11:34:11 +08:00
@yksoft1 最终承载运算的服务器可能是根据算法选的最合适的,这只是我猜的,因为我没感觉守望的体验好。。。
learnshare
2018-11-25 11:34:20 +08:00
我觉得是为了划分更多竞争团体,提高收益吧
现在网络环境没有以前那么糟糕吧
snail1988
2018-11-25 11:38:13 +08:00
@yksoft1 我感觉可以测一下不同延时和位置,连接的服务器在哪,抓包看看 IP 就知道了

我的意思是守望先锋,还有皇室战争这种,不存在开放世界,很好做到所有人可以一起匹配,让大家以为都在一个服务器游戏,但是存在大开放世界的游戏比如魔兽世界,如果所有人能一起参加交互,计算压力恐怖,在计算和实时性都有严格要求的情况下,现在的技术也很难做到几万人同服游戏

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/511251

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX