火炬之光:无限浅谈一下关于攻速阈值与帧的关系如下:
先说说通常游戏逻辑
以30帧为1秒,即服务器或者客户端每秒处理逻辑数据30次
再以单次伤害的技能举例, 设定此技能初始动画为 30帧 , 第15帧时为关键帧,即触发一次攻击命令
可以理解为每30帧, 触发一次关键帧
当攻速达到一定数值, 会改变技能的关键帧触发频率,
每30帧, 触发一次关键帧 即1秒1次
每15帧, 触发一次关键帧 即1秒2次
每10帧, 触发一次关键帧 即1秒3次
每5帧, 触发一次关键帧 即1秒6次
每3帧, 触发一次关键帧 即1秒10次
每2帧,触发一次关键帧, 即1秒15次
每1帧,触发一次关键帧, 即1秒30次 !!!
可以看到 每2帧,触发一次 和 每1帧,触发一次 , 差距巨大 , 可以理解为 额外伤害+100% !
每个阶段的攻速, 可以理解为有个阈值, 超过它,则提升一阶, 低于它一点点, 都只会停留在上一阶 ,
这样,多出来的攻速就浪费了, 当然, 如果再提升一点点, 超过阈值, 就是质变
这个体验是非常不好, 如果能有多少攻速就能得到多少正反馈, 这样是最理想的状态
之前鹅厂的某5V5游戏已经这样实现了
我记得之前游戏公告有看到过类似取消攻速阈值的概念, 不知道有没有实装 .
接下来以开发者的思路来构建"取消阈值"的理论实践
例如, 当技能攻速达到 每秒40次时, 实际每秒的逻辑帧率已不足以计算它, 超过的 10次就浪费了,
因为每帧最多只会触发一次伤害, 简单修改下逻辑
让其均匀的把40次伤害平摊到 每秒的30次逻辑中, 就简单实现了,
即 每帧造成(40/30)次伤害,
第一帧时, 造成了1次伤害, 余1/3次,
第二帧时, 造成了1次伤害, 余2/3次,
第三帧时, 造成了1次伤害, 余1次, 则再次造成一次伤害, 余数-1
...
...
也同样适用于其他档位,
例如, 当技能攻速达到 每秒29次时, 实际上每帧伤害 29/30 次
第一帧时, 造成了0次伤害, 余29/30次,
第二帧时, 造成了1次伤害, 余28/30次,
第三帧时, 造成了1次伤害, 余27/30次,
...
...
以上就是火炬之光:无限浅谈一下关于攻速阈值与帧的关系相关内容。