V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
atfeel
V2EX  ›  问与答

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

  •  1
     
  •   atfeel · 2018-11-08 15:19:22 +08:00 · 3600 次点击
    这是一个创建于 2208 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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   ·   实用小工具   ·   5386 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 05:52 · PVG 13:52 · LAX 21:52 · JFK 00:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.