OhMyZzh
V2EX  ›  问与答

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

  •  
  •   OhMyZzh · Apr 3, 2023 · 1976 views
    This topic created in 1317 days ago, the information mentioned may be changed or developed.
    本人刚开始接触游戏开发,了解到帧同步和状态同步都依赖于服务器,我在想是否可以使用点对点的 webrtc 来实现网络同步,比如指定一局游戏中的某个玩家成为“服务器”,由他来计算所有状态然后广播给其他玩家,如果该玩家掉线了则指定另一位玩家成为“服务器”
    5 replies  •  2023-04-04 20:07:44 +08:00
    Rocketer
    Rocketer
    Apr 3, 2023 via iPhone❤️1
    1
    可以,但要考虑防作弊。

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

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

    如果不是的话建议考虑比较传统的中心化解决方案,裸 websocket ,Socket.io ,SignalIR 都有比较成熟库。
    OhMyZzh
    OhMyZzh
    OP
    Apr 4, 2023 via iPhone
    4
    @whi147 区块链的话实时性满足不了吧
    OhMyZzh
    OhMyZzh
    OP
    Apr 4, 2023 via iPhone
    5
    @Zhuzhuchenyan 确实,传统方案参考资料较多,我想的其实是可以节省租服务器开销…
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1256 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 17:27 · PVG 01:27 · LAX 09:27 · JFK 12:27
    ♥ Do have faith in what you're doing.