记录一下,想到哪里写到哪里。
回合制游戏一般流程是
一定时间内等待玩家输入,服务器计算该回合战斗数据,客户端收到数据后进行画面表现。
以此循环到战斗结束.
设计难点在于服务器返回怎样的数据结构,既简单又实现方便,数据量小,等具备常规工程化的特点。
梦幻举例:
1.对于一些概率性的技能等,输出肯定是一个确定的,比如触发or未触发。
2.对于伤害数值,输出的是一个具体数字,包含暴击,等相关信息。
方案1:
数据格式如果基于招式(技能,平A也可以看做是一个技能)的话,那么每个可攻击单位的每次攻击行为的数据可能像这样
对于一次完整的战斗,可达20个单位,每个单位的每次攻击大约是 220字节,一个回合大约就是4kb的数据量,最大上限可能是9kb。对于一个10回合的战斗,将会是40kb,还没包括玩家信息召唤兽信息等数据
官网找的一个录像帮战5回合,
每个 回合攻击序列都是这样一个SkillAction数组,依次播放,这样做存在的问题。是如果有技能是和该攻击行为有交互,比如反震,那么就很棘手了。方案1 pass
方案2:
根据方案1的缺点,方案2做了如下改进,客户端参与战斗逻辑处理,对于数值,几率等是服务器发送的,其余都可以是本地产生的结果。就算出外挂也只会影响他本人的体验,关键数据都是在服务器。这样的话,同一个技能,对应的数据客户端和服务端可能就很不一样