V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Game Engines
Unreal Engine
MyCryENGINE
zdt3476
V2EX  ›  游戏开发

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

  •  
  •   zdt3476 · 2021-06-04 15:54:47 +08:00 · 3220 次点击
    这是一个创建于 1263 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    13 条回复    2021-06-05 09:13:17 +08:00
    th00000
        1
    th00000  
       2021-06-04 15:58:30 +08:00
    要具体问题具体分析, 什么类型的游戏, 技术栈是什么样的
    kop1989
        2
    kop1989  
       2021-06-04 16:03:32 +08:00
    这个“全区全服”的概念太大,也太概略了。

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

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

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

    战斗服可以水平扩展即可
    大厅可以是多个服务器, 前面挂一个 gateway, 这个 gateway 记录了当前的服务器跟登陆玩家的对应关系
    数据库跟全球通服这个概念没什么关系, 根据你们的技术选型来决定架构就可以了
    大厅里面的聊天 /好友等弱交互单独写一个服务去承载
    shpkng
        8
    shpkng  
       2021-06-04 17:02:53 +08:00
    数据做全球同服挺简单的,大概就是数据共享然后就近组战斗服?
    很多 SLG 都能做到
    sunny352787
        9
    sunny352787  
       2021-06-04 17:51:46 +08:00
    http,后端挂个负载均衡,我就这么干的。
    反正你战斗服都丢出去了,其他类似抽卡养成这种逻辑普通的 CRUD 服务器就搞定了
    Suigintou
        10
    Suigintou  
       2021-06-04 22:39:09 +08:00 via iPhone
    其实很多游戏搞分区是因为安卓区不用专门给苹果交钱了。
    liuhan907
        11
    liuhan907  
       2021-06-04 23:08:47 +08:00 via Android
    @zdt3476
    要不考虑一下类似 dotnet/orleans 这种 virtual actor 模型来实现?
    DeWjjj
        12
    DeWjjj  
       2021-06-05 02:13:15 +08:00
    挂掉服务器的用户分摊进,其他服务器都有冗余空间设计的。
    反正数据都是托管在厂商的数据库中的,不太需要研究数据库这种应用层的东西。
    因为用云厂商的比单招一个人来,便宜的多。
    nieyujiang
        13
    nieyujiang  
       2021-06-05 09:13:17 +08:00 via iPhone
    @murmur #6 这游戏还用开挂?我现在基本上都是除了高难和多血条,一炮一面🌚
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2747 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 15:24 · PVG 23:24 · LAX 07:24 · JFK 10:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.