导语
在大部分回合制卡牌游戏中,客户端只做交互的响应,并上报操作数据,再将服务器反馈的结果数据在本地做同步后,客户端做相对应的表现,比如播放相应的动作或特效。而我们当前讨论是全新的同步方案,既保留了传统回合方案的优点,同时对传统模式的缺点进行改进。
传统卡牌游戏
传统回合制卡牌游戏中,战斗逻辑由表现模块和计算模块组成。
计算模块的主要职责是计算角色的出手顺序,技能是否可用,每个技能使用后得到的表现是什么等。
表现模块的主要职责是播放角色攻击动作,受击动作,特效,UI等。
传统卡牌同步策略
客户端
将玩家选择了哪个目标角色,释放了什么技能技能作为操作数据打包上报给服务器。
服务器
校验后计算本次操作的带来的血量增减影响,BUFF的增减影响作为结果数据下发给客户端。
以上流程就是一个回合中单个角色出手的流程。
传统卡牌战斗流程的好处
表现和计算模块完全解耦,各司其职,核心的计算模块完全在服务器这里,天然做到反外挂,且可以在不更新客户端的情况下,热修复逻辑BUG。
传统卡牌战斗流程的缺点
由于计算模块全部在服务器