游戏开发新手,请教一下前辈,关于服务端与客户端设计

2019-09-09 00:23:29 +08:00
 as9567585

新手刚刚学习游戏开发,之前一直是做 java 服务端,非游戏

学习了 Phaser,准备做一款棋牌游戏练手

客户端是浏览器环境,服务端是用我习惯的 java 开发的,使用的是 spring state machine 控制一局游戏的流程

通信选择的是 web service

我现在的设计是这样的,服务器有一个状态机,控制游戏的流程,各个玩家的数据等

当一个玩家出牌 -> 服务器状态改变 -> 推送给所有玩家,最新的状态,上一个玩家的出牌动作 -> 客户端修改数据,播放出牌动画

因为之前没有一点游戏开发的经验,所以有一些疑问,请教下前辈

当客户端开始游戏后,再重新连接,例如 1.关闭网页,重新打开 2.网络异常段线一段时间

再次链接到服务器后,客户端的游戏状态和服务器状态不一致

需要恢复客户端游戏的状态到最新状态,也就是说,在任意时刻客户端都需要可以恢复到某一种状态

所以是客户端也要维护一个状态机? 还有是其他的设计方案?

1109 次点击
所在节点    问与答
2 条回复
chinvo
2019-09-09 00:25:45 +08:00
状态同步、帧同步 是多人游戏的两种同步方式
as9567585
2019-09-09 11:33:24 +08:00
@chinvo 额, 原来有两种方式选择呀, 有什么书籍,或者项目,可以推荐学习不,谢谢~

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

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

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

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

© 2021 V2EX