mmo游戏里战斗设计02-初步设计

2021/08/07 Mmo-Game

mmo游戏里战斗设计02-初步设计

目录

战斗系统需求

1.什么是1级属性?什么是2级属性?

1级属性:
   a.力量、智力、敏捷...,简单理解就是最基础的属性。
   b.同时1级属性会影响2级属性, 例如力量的增加会增加HP、物理攻击以及增加少量的物理防御。
   c.一般游戏里给人物加点,就是加的1级属性。

2级属性:
   a.物理攻击、物理防御、HP、MP、魔法...
   b.2级属性可以理解为间接的体现,玩家一般不能直接对它进行操作,加点主要是加1级属性,
     通过1级属性影响2级属性成长。最终值,战斗公式一般以最终值计算。

例如:梦幻手游人物属性加成关系
  1力=1物伤+0.6法防+0.2速
  1魔=1法伤+5蓝+1法防
  1体=8血+0.4法防+0.2速
  1耐=2.2物防+0.4法防+0.2速
  1敏=1.5速

2.属性成长公式

3.角色属性表概览

对于角色属性表设计:
   1.如果是设计了一种数值体系是用公式来计算数值体系的,那么可以不用在配置表里
     配置全部数据。
       -优点:
             a.表数据量较少,程序内存少。
       -缺点:
             a.不直观,程序需要根据公式计算。
             b.并且有时候很多数值并不是线性关系,很难用公式来规划,
               不得不采取另外的方式。
     
   2.如果是需要更加精确和控制数值并且直观的话,那么需要在表里配置全部数据。
       -优点:
             a.程序可以直接读表,不用再计算公式,效率高。
             b.属性数据全部配置在表里,直观方便查找,策划可以精确调节。
       -缺点:
             a.随着不同职业的增加,表的数据量会越来越大,难以维护。

有时候策划只是给你个想法,要求根据人物等级就能取到对应的属性,属性就是xxxx, 并不会告诉你怎么设计表
如何实现。
我们程序就要学会根据需求来确定合理的表格设计,告诉策划怎么配置,我们项目采用第2种方案,一般也是采用
第2种方法让策划配置。

4.技能需求概览

上图:
1.旋风斩技能,角色原地旋转,对周围200m以内范围玩家造成2秒的持续性伤害。
  思考下我们如何实现类似的技能,如何设计技能系统?
     a.一般的可以简单理解为技能系统的组成由技能和buff系统组成,技能只判断是否命中目标,
       命中目标后派发buff到目标身上,造成伤害是由buff驱动。但是这里,旋风斩旋转是对周
       围200米造成伤害,如果伤害是由buff驱动,那么如果玩家离开200米外,得移除buff,比
       教复杂。
     b.那么我们是不是能把这种伤害放到技能来做?但是如果技能可以直接产生伤害了会不会打破
       设计原则,技能需要写伤害逻辑?待确定..
     c.这个点最合理的实现是,技能本身能够直接对周围的怪物产生直接伤害,技能有伤害逻辑?
       那就技能系统技能能产生伤害,buff也能产生伤害?
2.冲锋突刺,会对角色产生位移。
3.瞬发技能,不需要施法时间,释放时立即生效。

5.战斗类型

6.战斗模式

1.客户端战斗(难度比较低):
  a.服务器需要做验证方案,不然容易产生外挂。
  b.一般服务器不做逻辑,只需要做结果分发和战斗回放验证。
  c.王者荣耀(采用帧同步):
    --多人战斗假设有10人战斗,如果只有一人使用外挂,很容易验证对比其它人数据包,发现你的
      数据包和其它9人来说有异常那么你就是外挂了。
    --1v1战斗,或则多人战斗,都说自己的数据包是正确的,无法用数据包对比来判断相信谁。因为
      帧同步可以战斗回放验证,客户端可以向服务器发战斗回放数据,服务器通过专门的验证战斗回
      放数据的服得到准确的战报,从而得到结果。
      你可能觉得的服务器回放战斗验证很耗时,但是一个服同时在线和同时结束战斗的场次,其实没
      有想象中的那么多。
      还有很多策略可以让客户端做一些表现来延长等待服务器的结果,甚至这场结果不准确可以通过邮寄
      发放到下一场战斗告诉你上一战斗你开挂了,结果无效。
2.服务器战斗(复杂度高):
  a.所有核心战斗逻辑都在服务器上跑,客户端做表现。
  b.服务器上跑战斗,同时在线四五千甚至上万人,那么随时随地发生很多场战斗,对服务器压力非常大。
    对于mmo游戏,很多游戏战斗确实是放服务器做。压力大,有的游戏就会将战斗单独拆分出来到一个服,
    甚至是战斗集群服。

Search

    Table of Contents