新手刚刚学习游戏开发,之前一直是做 java 服务端,非游戏
学习了 Phaser,准备做一款棋牌游戏练手
客户端是浏览器环境,服务端是用我习惯的 java 开发的,使用的是 spring state machine 控制一局游戏的流程
通信选择的是 web service
我现在的设计是这样的,服务器有一个状态机,控制游戏的流程,各个玩家的数据等
当一个玩家出牌 -> 服务器状态改变 -> 推送给所有玩家,最新的状态,上一个玩家的出牌动作 -> 客户端修改数据,播放出牌动画
因为之前没有一点游戏开发的经验,所以有一些疑问,请教下前辈
当客户端开始游戏后,再重新连接,例如 1.关闭网页,重新打开 2.网络异常段线一段时间
再次链接到服务器后,客户端的游戏状态和服务器状态不一致
需要恢复客户端游戏的状态到最新状态,也就是说,在任意时刻客户端都需要可以恢复到某一种状态
所以是客户端也要维护一个状态机? 还有是其他的设计方案?
1
chinvo 2019-09-09 00:25:45 +08:00 via iPhone
状态同步、帧同步 是多人游戏的两种同步方式
|