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

2023-04-03 22:34:04 +08:00
 OhMyZzh
本人刚开始接触游戏开发,了解到帧同步和状态同步都依赖于服务器,我在想是否可以使用点对点的 webrtc 来实现网络同步,比如指定一局游戏中的某个玩家成为“服务器”,由他来计算所有状态然后广播给其他玩家,如果该玩家掉线了则指定另一位玩家成为“服务器”
930 次点击
所在节点    问与答
5 条回复
Rocketer
2023-04-03 22:37:47 +08:00
可以,但要考虑防作弊。

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

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

如果不是的话建议考虑比较传统的中心化解决方案,裸 websocket ,Socket.io ,SignalIR 都有比较成熟库。
OhMyZzh
2023-04-04 18:20:08 +08:00
@whi147 区块链的话实时性满足不了吧
OhMyZzh
2023-04-04 20:07:44 +08:00
@Zhuzhuchenyan 确实,传统方案参考资料较多,我想的其实是可以节省租服务器开销…

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/929553

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX