一般游戏不是一服对应一数据库嘛,那跨服是怎么实现的??很好奇!!! - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
atfeel
V2EX    问与答

一般游戏不是一服对应一数据库嘛,那跨服是怎么实现的??很好奇!!!

  •  1
     
  •   atfeel 2018-11-08 15:19:22 +08:00 4135 次点击
    这是一个创建于 2579 天前的主题,其中的信息可能已经有所发展或是发生改变。
    11 条回复    2018-11-09 10:06:30 +08:00
    sundy2014
        1
    sundy2014  
       2018-11-08 15:27:22 +08:00 via Android
    之前看到的,说是同一个数据库,不同的区,只是登入入口不同而已。最后的主程序和数据库是同一个的。比如 1234 区是跨服区,就是同一个数据库,主程序。45678 是另外一个跨服区,又共用另外一个。
    pcloves
        2
    pcloves  
       2018-11-08 15:51:47 +08:00 via Android   2
    说一下 mmorpg ~

    不清楚你说的跨服概念,所以我先说一下我们自己理解的跨服:一般指的是某个活动的跨服玩法,比如跨服国战,这种情况下,A 服和 B 服的玩家早到 C 服( C 服也称作大世界服)参与活动,活动结束后,各回各家,奖励在各自服务器发放,存盘~这种概念的跨服很有局限性,而且需要针对性的开发跨服玩法。这种概念的跨服不影响各服的生态环境

    另外一种跨服,应该是题主说的合服的概念,主要就是 A 服和 B 服的数据库进行合并(比如 a 库合并到 B 库,或 A 和 b 合并到 C 库),合服完毕后,游戏服务器连接新的 db,所以这种操作对玩家来说是无感,登录的还是自己的服,但是发现人多了,这种概念的跨服其实是将两个生态合并到一起,主要是应对玩家流失~

    以上
    v2eAllen
        3
    v2eAllen  
       2018-11-08 15:59:59 +08:00   2
    游戏后台开发者答一发,跨服的概念是把不同服的玩家拉到同一个场地内,进行游戏交互。楼主说的 1 对 1 数据库,那就把玩家数据拉到跨服中(内存),同时客户端需要建立到跨服的网络连接。跨服玩法结束后,再把玩家的数据删除掉。
    一般在跨服玩法中,不会直接改变玩家属性。如果需要改动,也是发送消息通知到玩家所在的服务器进行修改。
    feverzsj
        4
    feverzsj  
       2018-11-08 16:03:03 +08:00
    就是和携号转网差不多嘛
    xxxy
        5
    xxxy  
       2018-11-08 17:24:52 +08:00
    @v2eAllen 把数据存到内存长时间不是不可靠吗?
    loveour
        6
    loveour  
       2018-11-08 19:00:59 +08:00
    @xxxy #5 游戏服务器并不需要那么高的可靠性,真要丢数据,也就丢了,又不是银行。毕竟数据也没那么容易丢,服务器设计好点丢数据概率很低。
    关于跨服同意 3L 说法。合服和跨服还是不一样的。
    changnet
        7
    changnet  
       2018-11-08 19:13:20 +08:00 via Android
    一服对应一数据库。跨服时,各个分服的各有一 socket 连接到跨服逻辑服,把玩家数据传过去。玩家在跨服逻辑服要保存数据时传回对应的分服。

    根据各游戏的玩法不一样,传的数据会进行具体优化。
    MeteorCat
        8
    MeteorCat  
       2018-11-08 19:21:32 +08:00 via Android
    2 和 3 楼正解
    atfeel
        9
    atfeel  
    OP
       2018-11-08 20:31:24 +08:00
    @changnet 感觉你这个说法比较靠谱.
    就是不知道 socket 连接到跨服逻辑服等等一套流程的原理..

    很想知道
    des
        10
    des  
       2018-11-08 20:45:36 +08:00 via Android
    首先,你这个理解有点问题。

    一般直接连接的是接入系统,用来管理连接,鉴权,数据分发。不过也有
    qwe61655
        11
    qwe61655  
       2018-11-09 10:06:30 +08:00 via iPhone
    怎么实现都可以 这属于基础啊
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1066 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 17:35 PVG 01:35 LAX 09:35 JFK 12:35
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86