游戏全区全服现在有什么好的方案吗?

2021-06-04 15:54:47 +08:00
 zdt3476

卡牌的抽卡游戏。全区全服有什么设计方案?我现在的想法是,实际分服,只是玩家不可知。但是这种情况,如果有一个服务器节点挂了,那么部分玩家就无法正常游戏,这种单点问题如何解决呢?或者有没有其他什么好的方案。

3220 次点击
所在节点    游戏开发
13 条回复
th00000
2021-06-04 15:58:30 +08:00
要具体问题具体分析, 什么类型的游戏, 技术栈是什么样的
kop1989
2021-06-04 16:03:32 +08:00
这个“全区全服”的概念太大,也太概略了。

比如,是不是账号互通就算“全区全服”?
还是全服同屏才是“全区全服”?
游戏交互压力多大? tickrate 是多少?

完全不同的需求,架构、技术也会完全不同。
zdt3476
2021-06-04 16:03:39 +08:00
@th00000 我对问题进行了修改,麻烦看下,谢谢。
zdt3476
2021-06-04 16:07:04 +08:00
@kop1989 账号互通即可。 但是这种情况是不是登录服务器就只能是单个数据库?不然登录的时候找不到对应账号具体在那个逻辑节点。 关于交互压力和 tickrate,战斗这块是准备独立做个战斗服武器,类似开房间,所以这块可以横向扩展。现在主要的问题还是逻辑服这块。
misaka19000
2021-06-04 16:18:34 +08:00
卡牌这种弱交互少状态的游戏直接上分布式应该问题不大吧

状态太多的话多节点同步状态肯定是要疯掉的,但是卡牌类游戏我觉得还好
murmur
2021-06-04 16:22:48 +08:00
fgo 这种就是全区全服,代价是除了最基本的状态同步基本没什么交互,外挂满天飞,各种挂,一炮三面,除了抽卡没挂啥都能开挂
th00000
2021-06-04 16:56:52 +08:00
简单的卡牌游戏, 不需要全球通服

战斗服可以水平扩展即可
大厅可以是多个服务器, 前面挂一个 gateway, 这个 gateway 记录了当前的服务器跟登陆玩家的对应关系
数据库跟全球通服这个概念没什么关系, 根据你们的技术选型来决定架构就可以了
大厅里面的聊天 /好友等弱交互单独写一个服务去承载
shpkng
2021-06-04 17:02:53 +08:00
数据做全球同服挺简单的,大概就是数据共享然后就近组战斗服?
很多 SLG 都能做到
sunny352787
2021-06-04 17:51:46 +08:00
http,后端挂个负载均衡,我就这么干的。
反正你战斗服都丢出去了,其他类似抽卡养成这种逻辑普通的 CRUD 服务器就搞定了
Suigintou
2021-06-04 22:39:09 +08:00
其实很多游戏搞分区是因为安卓区不用专门给苹果交钱了。
liuhan907
2021-06-04 23:08:47 +08:00
@zdt3476
要不考虑一下类似 dotnet/orleans 这种 virtual actor 模型来实现?
DeWjjj
2021-06-05 02:13:15 +08:00
挂掉服务器的用户分摊进,其他服务器都有冗余空间设计的。
反正数据都是托管在厂商的数据库中的,不太需要研究数据库这种应用层的东西。
因为用云厂商的比单招一个人来,便宜的多。
nieyujiang
2021-06-05 09:13:17 +08:00
@murmur #6 这游戏还用开挂?我现在基本上都是除了高难和多血条,一炮一面🌚

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

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

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

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

© 2021 V2EX