战斗流程设计杂谈

  1. 首先战斗流程不要被打断,一次操作从头到尾就是完整,不要在中间进行任何触发,比如某个技能执行过程中加上了某个状态,而加上这个状态的过程中又触发某个伤害/技能/xxxx流程。
    1. 这种情况最好不要立即执行,否则战斗的时序会打乱,这种流程越来越多情况下,策划的需求跟程序的实现结果就会逐渐不可控,变成只有单独作用时才会是理想需求,一旦综合作用就会各种不符合预期
    2. 这种情况下,状态里的操作最好加入到一个序列,每次技能流程完毕再去读这个列表,然后逐一去做到
    3. 如果有需要在本次操作后续流程前生效的,用攻击特效来做,因为既然需求是流程完成前生效,那么比起流程后激发,就多了个本技能后续流程计算需要的参数而已,在攻击特效阶段加入实现即可
  2. 技能跟伤害要分离,
    1. 分离的原因是技能其实有数层概念
      1. 最底层是单次的伤害计算模型,用来描述造成伤害/治疗/创生时的参数作用情况
      2. 其次是某次操作指令,描述本次行为将会对下一层基础计算的组织方式,例如是一次性伤害、还是多次伤害、陷阱被动触发、法术场主动触发
      3. 最上层是玩家可见的概念,随着游戏的不断挖掘元素,技能概念是会逐渐丰富的,这个时候就需要区分出来是什么类型技能,这些技能所存在的系统是不一样的
      4. 2层实际上经常不区分出来,因为这层随着游戏的发展会变得很波动,例如如果有法术场组这种概念,就会导致2其实还需要细分,反而不如不分。
      5. 3层其实也可以放入到某个技能总系统中,其他系统拿到他的引用,但是一来后续的技能模块就必须置于初始设计的总技能系统下,不利于后续扩展,毕竟策划的需求是无穷无尽的。
  3. 状态属性的分离
    1. 状态属性其实分两种
      1. 一种是简单叠加性质的,甚至包括语言自动帮你叠加的,例如list跟tuple
      2. 一种是不能简单叠加的,例如触发类型的
    2. 可以在导表时将其分为两张表(建议这么做,因为叠加属性其实很多系统也会用到)
      1. 对于叠加属性,就在属性重算时全部叠加计算一遍就好了
      2. 对于非叠加属性,最开始可以直接每次遍历状态获取,后期可以针对每一个属性,在加减时进行缓存运算以优化
发布了10 篇原创文章 · 获赞 0 · 访问量 2406
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览