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

卡牌类游戏能否仅靠 webrtc 实现网络同步?

  •  
  •   OhMyZzh · 2023-04-03 22:34:04 +08:00 · 915 次点击
    这是一个创建于 579 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本人刚开始接触游戏开发,了解到帧同步和状态同步都依赖于服务器,我在想是否可以使用点对点的 webrtc 来实现网络同步,比如指定一局游戏中的某个玩家成为“服务器”,由他来计算所有状态然后广播给其他玩家,如果该玩家掉线了则指定另一位玩家成为“服务器”
    5 条回复    2023-04-04 20:07:44 +08:00
    Rocketer
        1
    Rocketer  
       2023-04-03 22:37:47 +08:00 via iPhone   ❤️ 1
    可以,但要考虑防作弊。

    我感觉还不如把所有在线用户都纳入一个 P2P 网络,让几个不参与当前对局的用户给他们做服务器。
    whi147
        2
    whi147  
       2023-04-04 10:27:34 +08:00 via iPhone
    你应该用区块链思路,将数据发送到这局所有玩家,在规矩时间返回,超过 50%的值为正确值
    Zhuzhuchenyan
        3
    Zhuzhuchenyan  
       2023-04-04 15:55:30 +08:00
    之前做过类似的技术选型。

    如果点对点是一个核心诉求的话,那么网页端的游戏的可选项只有 webrtc 一个,但是即使 webrtc 也需要一个中心化的 stun 服务器来帮助两个用户建立点对点的链接。考虑到国内糟糕的 NAT 环境建议先充分测试再做决定。

    如果不是的话建议考虑比较传统的中心化解决方案,裸 websocket ,Socket.io ,SignalIR 都有比较成熟库。
    OhMyZzh
        4
    OhMyZzh  
    OP
       2023-04-04 18:20:08 +08:00 via iPhone
    @whi147 区块链的话实时性满足不了吧
    OhMyZzh
        5
    OhMyZzh  
    OP
       2023-04-04 20:07:44 +08:00 via iPhone
    @Zhuzhuchenyan 确实,传统方案参考资料较多,我想的其实是可以节省租服务器开销…
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1737 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:34 · PVG 00:34 · LAX 09:34 · JFK 12:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.