游戏开发论坛

 找回密码
 ????
搜索
查看: 11353|回复: 19

[讨论] 三生万物

[复制链接]

7

主题

24

帖子

235

积分

中级会员

Rank: 3Rank: 3

积分
235
发表于 2010-3-1 14:01:00 | 显示全部楼层 |阅读模式
本帖最后由 水成文 于 2013-3-14 21:54 编辑

  这是我作为数值策划参与的第一个项目,MMORPG,道具收费,即时制,2.5D(只能水平方向转视角)。

  本篇固然含有形而上的总结,不过更多的是具体的细节。我想类似的游戏项目为数不少,一些问题,虽属本项目的细节,或许也是有普遍意义的。

  本篇包括角色属性、装备属性、怪物属性、技能属性和升级经验的设计,不包括经济系统,那将是下一篇的内容,如果有下一篇的话。

  本篇如有一言半语,诸君以为写得有道理,则幸甚幸甚。如有一言半语,诸君以为有所启发,则幸甚幸甚。如能得诸君之反馈,则尤为幸甚。

  

  ---------------------------------------------我是正文的分割线---------------------------------------

  

  半途加入项目时所面对的处境:

  0.道具收费。

  1.共4种职业,盗贼、战士、法师、牧师(注:按职业性质,本文借用魔兽世界的名目),每个职业2个分支,10级和40级转职,10级的时候选择职业,40级的时候进一步选择分支(本文中就用这样的名目吧:近战盗贼、猎人、武器战、防战、火法、冰法、暗牧、神牧,因为魔兽世界,这些名词比较直观)。

  2.角色的属性:四种基础属性,力量、敏捷、智力、耐力。二阶属性若干(不列举了,做了改动,一会再说)。

  

  
硬性的要求

  首先,装备分为7种品质,有12种强化等级。以品质4强化6为基准,人物基础占总属性的10%,其他为装备属性,这是主策的设计。

  为什么?为什么是7种品质而不是6种?为什么是12种强化等级而不是10种或15种?基础属性与装备属性的比例为什么是1:10而不是1:8.53?

  我提不出可以对品质区间或强化等级的区级进行限制的条件,因此接受了此设计,作为数值设计的基准。

  这也是我在接下来工作中的一贯态度:将所有的方案视为全集,尽力寻找可以对问题做出限制的条件,在全集中寻找满足所有限制条件的尽可能小的子集。对我来说,麻烦的不是子集太小,相反,是找不到足够的限制条件来把子集限制得足够小。限制条件是至为重要的。一些限制条件是出自明显的设计需求,另一些则出自个人的观念、经验和知识底蕴。相对于前者,后者可能就不那么容易发现了。

  其次,玩家将普遍容易达到品质4强化6的装备水平,这也是主策的设计。就以此为装备属性设计的基准吧。

  第三,我决定以盗贼为基准,最先做盗贼的属性。原因么,我在魔兽世界里是玩猎人的,盗贼的一个分支即是用弓的远程物理职业,就是这样。

  

  我决定仿用魔兽世界的属性设计。我以为魔兽世界是“简单”的,我真的这么以为。简单地说,大多数属性都是“线性”地起作用(有些例外,比如破甲,这或许就是CTM中取消破甲属性的原因,不过在较小的范围内仍可视为线性的),要么线性地增加基数,要么线性地增加百分比,而且各项属性的效果都是独立计算的,因此各项属性的价值可以定量地衡量。

  说到定量的衡量,考虑两个角色生命值和伤害输出能力分别为hp1, hp2, dps1, dps2,则要使第一个角色胜过第二个角色,即第一个角色在被第二个角色打死前先打死第二个角色,应

  hp1 / dps2 * dps1 > hp2

  得

  hp1 * dps1 > hp2 * dps2

  不等式左右两边都只和一个角色自身的数值有关。所以,在不考虑各种免伤效果(应当加成到hp上)时,一般以hp * dps作为角色的“能力”。(我非常乐于看到对“能力”的其他定义方法。)

  这里举一个反面的例子。我参加的上一个项目(数值不是我做的),战斗中一次普通攻击造成的伤害的计算方式为:令攻击者攻击力为atk,目标的防御为def,则伤害为

  atk * atk / (atk + def)

  这样,atk、def对角色“能力”的提升并非线性的。我以为这样是不好的。但是不好在哪里?除了数学上的不美观,还真难说。我们不考虑所有情况,只考虑“每一种情况”——特定职业等级装备水平下,面对特定职业等级装备水平的敌人,这时候属性的价值是可以计算的。但是这个价值不是自身固有的,是依赖于对手的属性的。这对平衡性设计会带来多大的负面影响呢?事实上我们需要着重考虑的只是同等水平(等级和装备)下的平衡,不同水平下的不平衡只要在可以接受的范围内就可以,并不是需要精确定量的。

  不管怎么说,我喜欢简单的设计,我决定采用类似魔兽世界的做法。

  插一段,英雄无敌3的伤害计算,攻击力大于目标防御力时,伤害 = 伤害力*(1+(攻击力-目标防御力)*5%),即1点攻击力增加5%伤害,看,线性的。与同行相比,我的游戏经历不多,我觉得英雄无敌3(只玩过3)、魔兽世界、dota的数值是很好很好的,它们是怎么被设计出来的?

  

  我决定,角色有这些属性:力量str、敏捷agi、智力int、耐力sta,这些基础属性不变,另外有生命值hp,魔法值mana,攻击强度hp,法术强度mp,护甲armor,魔法防御mr,命中等级hitLv,暴击等级criLv,闪避等级ddgLv(注:命中率hit = hitLv/const,const与角色级别有关,暴击率cri = criLv/const,const同样由角色级别决定,另外,命中和闪避的关系,并非综合两者计算一次攻击是否击中,请参考魔兽世界的战斗“圆桌列表”)。

  魔兽世界在60级的时候是没有暴击等级之类属性的,黑手饰物上直接写着暴击几率加2%,TBC后改成了暴击等级加28。暴击率由暴击等级除以一个和等级有关的常数来换算,这样随着等级提升,装备上的暴击等级数字便可以相应提升,而实际的暴击率没有变。骗人的玩意儿。不过,装备上的暴击率数字从10级到60级始终不变,看起来终究不大好,我也没别的法子,就这么办吧。

  原先的设计里,还有招架,但是实际上是没有体现的,只是脚本程序里写着,游戏内没有任何特别的体现,招架和闪避完全一样,我觉得没有意义。是的,它没有带来新的东西,它和已有的东西没有差异,它没有意义,这是我的判断(魔兽世界的战斗圆桌列表中的每一项都有不同的作用方式和效果)。

  原先的设计里,法术分火焰冰霜光明暗影等系别,因此角色有相应系别的法术强度和法术抗性属性。除了在文字描述和特效上表现不同系别的差异,是否真的还需要数值上也有所体现呢?后面的数值工作上,我把这个忽略了。

  
战斗节奏

  角色只有一套装备,自由支配的属性来自镶嵌石。pve应当是倾向于追求dps,这会在单位时间内输出更多的伤害,打死更多的怪物,获得更多的收益。假如自由支配的这部分属性,全部选择dps属性,可以提升10%的dps,那么,全部选择hp属性,应该可以提升多少hp呢?假设也是10%,那么hp*(1+10%) * dps和hp * dps * (1+10%)是一样的,角色的“能力”没变,pvp上不分胜负,但是pve上提升dps更有优势。Imbalance。因此“等量”的hp属性应当比dps属性对角色的提升更大。

  怪物的hp,我决定和同级别角色的pve装备下的hp相差不大。

  令固定属性部分(装备和角色基础属性,不含自由支配的镶嵌石属性)为hp, dps,额外的属性,分配在hp上为Δhp,分配在dps上为Δdps,令pvp战斗时间为T_pvp,pve战斗时间为T_pve,有:

  (hp + Δhp) / dps = T_pvp

  hp / (dps + Δdps) = T_pve

  再令RaT = Δhp / Δdps,即是等量属性的hp与dps的比值。它应该要比T_pvp和T_pve大,此外我没有别的想法了。魔兽世界里6点耐力为60点生命值,相应的6点ap(当时我弄错了,应该是8ap)大约能增加1dps(我是按猎人算的,算上自动射击和技能,如果宝石附魔对各职业的提升是一致的,那么其他职业大概也是这个数字吧),即RaT = 60。

  解得

  Δdps / dps = (T_pvp - T_pve) / (RaT + T_pve)

  Δhp / hp = (1 / T_pve - 1 / T_pvp) / (1 / RaT + 1 / T_pvp)

  hp / dps = (T_pvp + RaT) * T_pve / (RaT + T_pve)

  由此,借助T_pvp,T_pve,RaT,确立了角色生命值、dps和自由支配属性的比例关系。老实说我不喜欢,我不觉得这应该是一个有确定答案的问题,我却做出来一个确定的结果。不过,就这样吧。另一方面,我是以盗贼为基准来做的,其他职业自然有所区别。

  
各职业基础属性、装备属性

  首先,各职业的装备上应提供什么属性。估摸着如下安排

  盗贼:str, agi, sta, ap, hitLv, criLv, armor

  战士:str, agi, sta, ap, hitLv, criLv, armor

  法师:int, sta, mp, hitLv, criLv, armor

  牧师:int, sta, mp, hitLv, criLv, armor(治疗分支无hitLv属性)

  这样安排,说不上来什么严肃的理由,但也并非是全然无意识的。

  然后考虑基础属性对二阶属性的影响(我这里说“首先”“然后”,事实上做的时候却并不是这样的,比如起初盗贼的装备上并不准备安排str,而是在考虑“然后”下的内容时做了修改。这篇文章并不想表现如何实现一套严谨的数值,相反,想展示过程中的种种难堪的混乱。)

  耐力(sta)影响hp,我(在excel里)定义名字k_sta_hp,值为10,表示耐力到hp的换算系数为10(以下命名皆如此例),这个10是没道理也不需要道理的,我想。

  我又定义名字W_sta,表示1耐力属性的价值,把值定为1,这同样是没有道理的。现在1价值属性可以提供1 / W_sta * k_sta_hp的生命值,根据上文定义的RaT,1价值属性应当可以提供1 / W_sta * k_sta_hp / RaT的dps

  我又定义了K_str_ap, K_agi_ap, K_agi_ddgLv, K_agi_criLv, K_str_armor, K_int_mp, K_int_criLv, K_int_mr, K_int_mana, K_neg(这个是用来计算护甲、魔法防御和闪避的效果的参数), W_int, W_mr, W_ap, W_str, W_agi, W_criLv, W_hitLv, W_ddgLv, W_armor, W_mp,这些量相互关联,比如W_str, W_ap和K_str_ap显然是相关的,但是无法确定他们的数值。我需要边界,需要限定条件。

  在没有头绪地乱撞了很久之后,我选择了一个限定条件:数字好看。是的,盗贼的敏捷应该高过其他职业,战士的力量应该高过其他职业,法师和牧师的智力应该比其他两个职业高,生命值应该略有差异但是不太大,除了防战。这说不上什么理由,就是为了“好看”。

  于是,我先把各职业满级的属性和装备属性(品质4强化6)定了下来(除盗贼外,其他职业还需要调整,因为我要借助盗贼的数值来设定各项属性的价值,再给其他职业分配与盗贼总属性价值相当的属性)。先是定义**时的级别m_lv,力量m_str, 敏捷m_agi, 智力m_int, 耐力m_sta, 攻击强度m_ap, 法术强度m_mp, 命中等级m_hitLv, 暴击等级m_criLv, 护甲m_armor, 闪避m_ddgLv, 魔法防御m_mr, 暴击m_cri, 命中m_hit, 生命值m_hp, 法力值m_mana。各级别属性是从1级到m_lv级的等差数列,这样,各级属性都算出来了。不过,实际在做的时候,我把40级之前每级的属性跨度设为0.5,40级之后每级的属性跨度设为1,即40级之后每级提升的属性是之前的两倍。为什么?想当然耳。

  当然,各项并不是全部相互独立的。一开始我考虑hp不随等级成长,完全由sta换算来,那么m_hp = m_sta * k_sta_hp. 再由上节的hp / dps = (T_pvp + RaT) * T_pve / (RaT + T_pve),这套属性下的dps也确定了。

  再由m_cri,即得无暴击时的dps,和每1%暴击对dps的提升量。前面已经计算出了1价值属性应提供的dps,在人为设定W_criLv后,即可算出暴击率和暴击等级的换算关系。因为每一点暴击等级应提供的dps是固定的不随角色级别改变的,而每1%暴击率对dps的提升数值是随等级变化的(不同级别dps数值不同),暴击率和暴击等级的换算关系也是随等级变化的。这样就得出了不同级别暴击率和暴击等级的换算关系。

  命中等级和命中率的关系也一样计算,不同的是,把命中等级到命中的转换系数调低了一点,一方面命中是有上限的,这样做以鼓励玩家优先考虑命中达标,另一方面我认为暴击的效用大于数值字面上显露出来的,短时间的爆发比平稳的伤害给对手带来的压力更大。

  其他各项属性价值以换算关系也在一番设定和计算后得到,这里不再细说,总之不能算出来的就自己定个差不多的数字。这是基础,是定义,公理,设计者有足够的自主权。

  在属性价值确定以后,计算盗贼职业的积极属性(dps属性)占用的总价值和消极属性(hp,闪避,护甲等属性)占用的总价值,以此为基准对其他职业的属性略作调整,使这些职业的属性总价值相当。这里对积极属性和消极属性的价值进行求和作为基准,也许不是很合适,但我就这样做了。一个考虑是,镶嵌石对各职业的提升应当是一致的,因此各职业应当有一样的总属性价值。

  至此,各职业的基础属性和品质4强化6的装备属性确定了。不过且慢,这个属性,在低等级阶段看起来是很不舒服的(至少当时我是这么以为的),没奈何,给各职业加上了0级基础属性:b_str, b_agi, b_int, b_sta, b_hp, b_mana,这些附加的属性比如agi将对cri产生巨大的影响,因为低级阶段criLv到cri的换算系数很低,于是在计算agi到criLv的换算时,把b_agi减掉了。其他护甲、闪避等等皆如此。这说不上什么好法子,以后再做的话,我可能一方面不再考虑低等级阶段属性数字的难看,另一方面,既然属性是随等级线性增长的,那么并不一定要从0开始,可以从稍后的某一点开始,将之作为1级时的角色属性(说明:如y = k * x, 将x = 5时的y作为1级属性,然后每升一级x取值增加0.5,到40级后每升一级x取值增加1)。

  以品质4强化6的装备属性为基准,属性随品质的变化为等比数列,公比为1.13,属性随强化的变化,强化6以前为等差数列,公差为0.08 * 强化6时的属性,强化6以后为等比数列,公比为1.08,我觉得这是好的。同级别品质7强化12的装备与品质4强化6的装备属性大小比值为1.13 ^ 3 * 1.08 ^6 = 2.29,那么hp * dps的比值约摸为2.29 * 2.29,说约摸是因为实际上会大于这个值,诸如暴击、闪避、护甲方面的提升尚未考虑进去。总之大约在6到10之间吧,也就是不论控制技能相互配合什么的,大家互砍,一个品质7强化12装备级别的角色敌得过3到4个品质4强化6装备级别的。这也是策划的要求。

  

  k_neg也是从魔兽世界中来的,魔兽世界中的护甲减伤公式为 armor / (armor + Const),为什么这样?减伤比例armor / (armor + Const),则存活时间为hp / (dps * (1 - armor / (armor + Const))) = hp / dps * (1 + armor/ Const),随armor线性增长。如果要把护甲减伤算到角色的“能力”上,则能力应在原本的hp * dps的基础上,再乘以(1 + armor / Const)。K_neg就是这里的Const。除了护甲外,闪避和魔法防御的效果也依此计算:V / (V + K_neg),V为属性所占的价值。是的,为了让闪避等级的效果也果也是线性的,我决定依此计算。这样,同样价值的护甲、魔法防御和闪避的效果都一样。

  

  一个问题,假如属性A只降低受物理攻击的伤害,而属性B降低物理攻击和法术攻击的伤害,那么B的价值应该比A高吗?高多少呢?我不知道,简单地让B和A的价值相等了。

  

  前面确定的是全套装备的属性,现在来确定各部位装备的具体属性。

  首先是各部位将分配多少价值的属性,随意地约摸地定下来。然后是每一部位的装备上各种属性的份额,按平均份额随机浮动若干,保证全套装备的总属性固定。就这样定下来了。这样的后果,一,写了一个脚本,所有装备的属性自动生成了。二,虽然不同部位的装备各种属性份额的比例是不一样的(某部位上力量多些,某部位上敏捷多些,诸如此类),但同一部位不同级别的装备,各种属性的比例是一样的。唔,不好看。

  不过没关系,装备上还有随机属性,从装备的总属性上扣下一定比例的属性“价值”,此外的部分按设定的比例分配,这部分则随机到各项对本职业“有用”的属性上。(例,假如随机属性的价值为10,W_agi为2,W_ap为1,在这两项属性中随机,则结果应满足agi * W_agi + ap *W_ap = 10。)

  对于物理职业,武器dps该怎么算?把角色dps分成两部分,一部分由直接写在武器上的伤害数字提供,一部分由属性(就是ap,包括武器上的敏捷和力量换算来的)提供。定好比例,即可算出双手武器的dps,这个工作,在制定角色整体属性之前就要做,因为要考虑角色整体属性能提供除武器dps之外所缺的那部分dps。

  附单手武器与双手武器dps比例的计算。

  双持单手武器,令武器为W1,dps为d1,速度为t1:

  主手普攻:(d1*t1+ap*c1(t1))/t1 注: c1(t1)是t1的函数,表示取值受武器速度t1影响。下同此例。

  副手普攻:(d1*t1/t1) 注:副手攻击不受ap加成

  技能:(d1*t1*c2(t1)+ap*c3(t1))/gcd 注:技能只考虑以主手武器施展。

  双手武器,令武器为W2,dps为d2,速度为t2:

  普攻:(d2*t2+ap*c1(t2))/t2

  技能:(d2*t2*c2(t2)+ap*c3(t2))/gcd

  双持dps为:2d1 + ap*c1(t1)/t1 + d1*t1*c2(t1)/gcd + ap*c3(t1)/gcd

  双手dps为:d2 + ap*c1(t2)/t2 + d2*t2*c2(t2)/gcd + ap*c3(t2)/gcd

  令c1(t)=k1*t, c2(t)=k2/t, c3(t)=k3,因此:

  双持dps为:2d1 + ap*k1 + d1*k2/gcd + ap*k3/gcd

  双手dps为:d2 + ap*k1 + d2*k2/gcd + ap*k3/gcd

  要使两者相等,排除相同的项,令k2=gcd,得

  d1=d2*(gcd+k2)/(2gcd+k2)=d2*2/3, 此时单手武器dps为双手武器的2/3

  若令k2=2gcd,则

  d1=d2*(gcd+k2)/(2gcd+k2)=d2*3/4, 此时单手武器dps为双手武器的3/4

  注:由前述定义,k1为普通攻击dps受ap的加成,k2/gcd为技能dps受武器dps的加成,k3/gcd为技能dps受ap的加成

  法系武器的dps对法系职业无意义,因此折算相当分量的法术强度加在上面。

  
怪物属性

  设定各级别段的装备水平,同时可以对付的怪物数量,怪物的hp * dps就定了,再设定hp与同级别盗贼hp的比例,dps也就确定了。

  怪物的命中率、暴击率和闪避率统一设定一个值。

  过程中制定了下表:

  lv:[1,lv1),装备水平:品质1无强化,可同时对付怪物:n1

  lv:[lv1,lv2),装备水平:品质3无强化,可同时对付怪物:n2

  lv:[lv2,lv3),装备水平:品质3强化6,可同时对付怪物:n3

  lv:[lv3,lv4),装备水平:品质4强化6,可同时对付怪物:n4

  lv:[lv4,lv5),装备水平:品质5强化6,可同时对付怪物:n5

  这样分段,各段之间无衔接,实际做的时候稍稍修改了下,使合段衔接起来。

  

7

主题

24

帖子

235

积分

中级会员

Rank: 3Rank: 3

积分
235
 楼主| 发表于 2010-3-1 14:01:00 | 显示全部楼层

Re:从道生一到三生万物——项目数值工作总结(篇1)

技能数值

  在做数值之前,先看了下技能设计,觉得做得比较杂乱,无一定的设计思路、原则,各职业多有效果重复的技能,转职的设计也没有考虑到具体实现上。于是和主策商量了下,决定重做技能设计。做的时候遵循下面几条:

  1. 技能一开始就分两个分支,到40级为止,40级转职之后,只能选择其中一个分支。

  2. 同一职业两个系别有若干公共技能,这些公共技能是体现职业特点的。

  3. 一点rp精神,技能要“像”是这个职业的。

  4. 同职业不要有效果重复的技能,要有差异。

  5. 构造体现职业特点的技能循环。

  第五点也是学魔兽世界。(很多人说学魔兽世界的游戏在中国不可能成功,我们这个游戏能不能成功不管,反正不是学魔兽世界的,只是我个人在数值这一块的工作上对魔兽世界多有借鉴。话说回来,那些学魔兽世界而失败的作品,其失败是因为学到的那部分呢还是没学到的那部分呢?)

  

  技能设计(这部分略去)完成后,开始做数值,遇到的问题一个个说吧。

  

  大致上制定了这样的框架:单个技能的效果与角色属性呈线性关系,设定技能对角色“能力”的提升比例,依此比例确定技能的效果以及计算相应的受角色属性影响的系数。我以为这是简单自然的,易于调节的。

  

  数值应该精确到何等地步?现在我还不能精确地回答这个问题。借用以前模电老师的话:半导体电路里各处的电势都是毛估估的,多一点少一点无所谓,但是做出来的产品却是非常精确的。另外,http://blog.sina.com.cn/s/blog_507dc9190100f28t.html 这是几个月前写的,现在依然持此看法。

  

  物理职业有普通攻击和技能攻击,法术职业只有普通攻击。一开始考虑物理职业的技能dps和普通攻击dps的比例为1:1,这是个错误的考虑,当时却没有意识到。魔兽世界中,盗贼和战士的dps大部分来自普通攻击,TBC初期的兽王猎人,dps组成中自动射击和稳固射击的比例大约1:1,但是,魔兽世界中,盗贼的技能dps是受能量值限制的,战士的技能dps是怒气限制的,技能不能不停地使用,而猎人,到WLK自动射击提供的dps已经不足1/4了。暴雪不想猎人无脑稳固,我也一样,不想我的角色反复地按同一个技能。而且我们的游戏没有能量值和怒气,各职业都是用法力值的,不受能量或怒气的限制。一般来说,技能伤害总该比普通攻击的伤害高一点,在由三四个技能组成的输出循环中,技能伤害必定要高出普通攻击的伤害。1:1的比例实在没法做下去,那么改成2:1吧,这样的话,如果前述设计的武器装备的dps和ap对普通攻击dps的加成不变,总的dps变成了原来的3/2,预设的一场战斗的持续时间将变为原来的2/3,这样不好,于是回头把角色的生命值也提升为原先的3/2。前面说过,角色的生命值完全由耐力换算来,但是现在我不想增加角色的耐力值,也不想增加耐力转换为生命值的系数,这将带来一系列别的问题,多项属性的价值将要重新计算,各职业**的属性也要重新安排(原因如前所述,各职业应当有一样的总属性价值,而不同职业耐力属性在总属性价值中占的比例并不一样)。于是,把要增加的这部分生命值,作为角色固有的基础生命值(也是随等级成长的),角色生命值不再只取决于耐力值。这样完成之后,感觉好险。前期设计一定要谨慎呀。

  

  随着等级提升不段学到新的技能,新的技能要挤占公共CD,必有其优势,因此带来总体上角色“能力”的提升,这种提升超出了随等级线性提升的范围。对此应该如何考虑?一方面,这种提升hp和dps方面都有,对战斗节奏的影响可以看作抵消了,另一方面,新技能的优势被控制得比较小。因此这个问题基本被无视了。

  

  假设一场战斗持续20秒,战斗频率是60秒1次,则1分钟CD持续30的技能可以全程生效。那么这样的技能的效果应该按100%时间生效还是50%时间生效计算呢?另一方面,战斗时间和战斗频率难以把握。在设计这种持续性效果的技能时,要不要考虑战斗时间和战斗频率呢?出于对此的犹豫,基本上我把长CD的这种技能的持续时间定得短于战斗时间(当然相应地效果比较强)或者远远长于战斗时间,以此来弱化这个问题。

  

  具体的各种类型的技能,数值设计应遵循怎样的思路?

  1.单体伤害技能。

  某职业的一个瞬发无CD的单体伤害技能和一个瞬发6秒CD的单体伤害技能,伤害应该一样吗?直觉地,有CD的技能应该比无CD的技能高,这是符合玩家的心理预期的。高多少?是线性地随CD时间增长,还是应当更高?更低?

  一个职业的瞬发无CD的单体伤害技能和另一个职业的瞬发无CD的单体伤害技能,伤害应该一样吗?换一个角度,如果我们希望这两个职业的总dps一样,那么他们瞬发无CD单体伤害技能的伤害应当一样吗?

  一个瞬发无CD的DOT技能(damage over time,持续造成伤害的技能),造成的总伤害和造成直接伤害的技能相比,应当一样吗?

  ……

  

  这样的问题一大堆,一步步来。

  前面说了,技能设计时注意构造技能循环。dps职业的技能循环由dps技能构成,治疗职业的技能循环由治疗技能构成。各职业都有一些技能是在循环之外的,它们将由角色自主选择合适的时机使用。对于循环内的技能,将其作为整体考虑,使dps技能循环的伤害输出与设计相符,使治疗技能循环的治疗量输出与设计相符。而循环外的技能,则以提高5%角色“能力”为限。

  现在来看DOT技能,在WOW中,DOT技能受法伤(即法术强度)加成与DOT持续时间成比例,换算到每一秒上则是一样的。

  另外,一方面,一个瞬发持续15秒的DOT技能受100%法伤加成,而一个瞬发直接造成伤害的技能则只受1.5/3.5的法伤加成,看上去DOT技能更有优势。另一方面,DOT技能的伤害是在一段较长的时间内逐渐生效的,对敌方造成的“压力”是比不上直接造成伤害的技能的。

  WOW中的DOT技能除了受法伤加成外,另有固定数字的基础伤害,我不知道这个数字是怎么定的,或许考虑了对上述两方面的平衡。

  在我这里,我把处于技能循环中的DOT技能直接按15秒造成200%dps的比例计算了。这只是便宜之计,但是当时我也没觉得有什么不妥,我以为这是整体中不需要细致考虑的那部分细节。现在的话,我想或许可以考虑得更好一些。

  

  假定有一个技能循环,包含3个技能:A:瞬发无CD直接造成伤害,B:瞬发6秒CD的直接造成伤害,C:瞬发持续15秒的DOT。

  求最小公倍数,这个循环将持续30秒,公共CD为1.5秒,可以施放出20个技能,其中技能C为30/15=2次,技能B为30/6=5次,技能A为20-2-5=13次。

  技能30秒应提供30dps(指技能dps,普通攻击dps应先扣除)的伤害输出,由前述已经知道2次C技能将造成200%dps * 2 = 4dps的伤害,故A,B应造成30dps - 4dps = 26dps的伤害。

  考虑A和B的伤害,设技能CD为t,公共CD为T(无CD技能的CD视为等同公共CD),再增加一个变量D,为dps基础值,不同cd的技能dps按(ln (t/T) + 1) * D计算。那么有

   (ln(1.5/1.5)+1) * D *1.5 * 13 + (ln (6/1.5) + 1) * D * 1.5 * 5 = 26 * dps

  即算得D,再按(ln (t/T) + 1) * D算得A, B单个技能的dps,伤害则由dps乘以公共CD(如为吟唱技能且吟唱时间超过公共CD,则是乘以吟唱时间)。

  前面问CD技能的伤害应随CD时间线性增长还是更高或更低,我认为应该是更低,所以用了ln (t/T) + 1这样的式子(很简单,不是吗?又,无CD或公共CD的技能,t = T,该式即等于1)。ln是以自然数e为底的对数函数,这个底数合适不合适?我认为底数的选择是有一定自由的,甚或选择的时候可以与各职业的特性相匹配,比如dps平缓的职业,底数选大些,暴发力强的职业,底数选小些。

  当技能的伤害确定后,接下来要考虑的就是如何把伤害分配到武器伤害加成,ap加成和固定数字上去了(对法系来说是mp加成和固定数字)。

  结合前面设定的ap和mp的价值,不论具体到每个技能上是怎样的,宏观上它们应当提供固定数值的dps。但当时我犯了一个影响不大的错误。我把技能的伤害按比例分配给武器伤害,ap或mp加成,和固定数值上,而没有考虑ap和mp应该按它们的价值来提供dps,这样ap和mp的实际价值与预设的价值有了偏差,好在这偏差很微小。不管怎样,思路上确实有漏洞,忽视了一条“限定条件”。

  

  关于技能伤害的固定数字部分,为什么要有这个部分?因为技能要升级。如果都按属性比例来计算,那技能只要有一个级别就可以了。既然技能要升级,不同级别总要有区别。这个区别有由固定数值部分体现了。那可不可以让技能不受属性影响全部是固定数值?也不行,我们希望显出装备的作用,要让技能效果受装备的影响。那能不能不要固定数值,而调节不同级别的技能受属性影响的系数呢?可以,但是不好。原因就是角色“能力”将随技能级别的提升而非线性成长。魔兽世界的下一个资料片,技能不再增加新的级别了,因为反正都是一个公式,暴雪烦了。

  说到这个,再多说句。如果考虑游戏中的战斗,技能等级实无必要。不光是技能等级,暴雪那一整套充斥无数细节的战斗数值体系,其中有多少是与战斗体验无关的?不过或许与“高玩”的优越感有关。有个仿dota的游戏League of Legends,这个游戏里没有敏捷力量耐力这些基础属性(中间属性),玩家从装备上获得直接与战斗相关的属性(生命值、生命恢复、移动速度增加、技能CD缩短、法术伤害增加等等)。虽然游戏不只是战斗系统,我以为这种做法,至少是值得思考下的。

  

  再说AOE技能(群体伤害技能)。我倾向于AOE对单个单位的dps比单体攻击的dps低,但是低得不多,但是法力消耗要高很多。

  

  在说怎么做那些提升5%“能力”的技能之前先说几句。

  1. 5%是个很随意的值。

  2. 数值工作,大处要求严谨,小处很多时候是毛估估的。原因前面说了,找不到足够的限定条件。

  3. 前面说的那些和后面要说的,并不能保证做出一个平衡的系统来,但是它框架简单,易于调节。

  4. 技能设计是为了使战斗生动多彩,而不是平衡。

  

  现在来看。

  设有技能,效果为增加角色ap,无CD持续时间长(30分钟)。这个技能可以长期保持的,只要让提升的ap可以提供5%dps即可,假定ap提供40%的dps,那么该技能大约应增加5% * (1 / 40%) = 12.5%的ap

  

  设有技能,效果为增加角色ap,长CD,持续时间短,待定。角色应当是有选择地在某种情况下使用此技能。设CD60秒,持续时间15秒,每60秒生效15秒,即是把60秒的5%压缩进15秒内,这15秒应使dps提升 5% * (60 / 15) = 20%,不过且慢。这个技能占用了一个公共CD,少施放了技能循环中的一个无CD技能,因此损失的dps需要补上,设损失的伤害值为n * dps,则该技能的效果应在20%的基础上加上 n / 15。那么,如上,该技能应增加(20% + n / 15) * (1 / 40%)的ap。

  

  设有技能,效果为角色免疫魔法伤害,长CD,持续时间短,待定。如果CD100秒,持续时间5秒,似可使角色在受到魔法攻击时存活时间增加5%。(注:这种做法是有问题的)

  

  其他各类状态技能的效果(降低目标护甲、提高攻击速度等等),皆如此计算。

  

  设有技能,造成伤害并有几率附加DOT效果。这里涉及“几率性效果的时间覆盖率”,令技能施放间隔为T,效果触发几率为p,效果持续时间为t。某一时刻是否处在效果下,取决于之前t时间内是否有触发效果。得覆盖率为 1-(1-p)^(t/T)(其实应该比这个值小一点,因为最先的t/T次,每次是否处在效果下的几率要小一些)。

  

  设有技能,降低目标移动速度。移动速度如何换算成能力?不知道。

  dota里不同英雄移动速度是不一样的,但是dota里不同英雄本来就是不平衡的。设为英雄a、b,移动速度s(a) > s(b),a追杀b,a的攻击前摇加后援时间为t,则攻击间隔为t * s(b) / (s(a) - s(b)),感觉无从把握。

  mmorpg里一般没有攻击前摇后摇,角色移动速度也都一样(轩辕剑OL里角色移动速度由敏捷决定,但它是个纯PVE网游,不考虑职业间PVP平衡的)。

  考虑两个近战职业或两个远程职业正面对敌,减速技能意义何在?移动速度快的一方或许有决定战斗要不要打的主动,但不能决定战斗的胜负。

  考虑一个近战职业和一个远程职业。近战职业可能被远程职业借减速技能“风筝”,为避免这种情况,一方面,各近战职业都有技能可以迅速拉近与敌方的距离,另一方面,法系远程职业的大部分伤害需要吟唱。

  最终,我给了所有职业减速技能,它们在在CD、持续时间、施放距离、附带效果等方面各所区别,但具体的数值则交由实际游戏体验之后的调整。

  

  设有技能,使目标昏迷、瘫痪、定身、恐惧。如何计算?同上不知道。其实算是可以计算和不可计算之间吧。比如控制技能不应使一方完全无还手之力;战斗中一个控制技能取代了伤害技能,它应带来多大的“好处”来补偿损失的伤害输出,以及它本应提供的5%能力提升?

  

  基本就这些。再次提醒,假如限入对某个技能如何计算的困惑不可自拔,请告诉自己不要钻牛角尖,一切逻辑演算都无效之后,我们总还可以直接填表,进游戏验证。

 
  
升级经验

  怪物可提供的经验应随怪物等级提升,用等差数列,设为40 + 5 * lv。

  接下来要考虑的是升级时间,升级时间随级别的变化应该是导数为正,二阶导数也为正的函数。我想到等比数列,但是觉得等比数列增长的太快,我希望比等比数列平缓一点。于是,令每个级别的升级时间为t (lv) lv > 9,因为10级之前是新手期,另算。

  再令q, d为常数(比如q=0.15, d=0.001),并有t(lv) = t(lv-1) * (q ? d * (lv * 10))。

  再令t(10)等于,比如说10分钟,算出从10级到满级每一级的升级时间。

  这样总的升级时间当然是和期望的不一致,这个10分钟根本就没经过大脑乱写的。不过没关系,归一化。假定我们期望的总升级时间是T(各个游戏各不相同,就不管是怎么得出来的了),而在t(10)=10分钟时的总升级时间为Z,把每级的升级时间 乘以 T / Z 就可以了。这样就得到了期望的每个级别的升级时间。如果觉得不大好的话,可以调节t(10), q, d.

  有了升级时间和怪物经验,每个级别的升级经验就差不多出来了,差的那部分是对任务奖励经验、双倍经验等的设计,略过。

----------------------本篇完结,诸君指教。--------------

1

主题

257

帖子

257

积分

中级会员

Rank: 3Rank: 3

积分
257
发表于 2010-3-1 14:50:00 | 显示全部楼层

Re:从道生一到三生万物——项目数值工作总结(篇1)

构造体现职业特点的技能循环。这是啥意思?循环什么?

1

主题

57

帖子

63

积分

注册会员

Rank: 2

积分
63
发表于 2010-3-2 19:08:00 | 显示全部楼层

Re:从道生一到三生万物——项目数值工作总结(篇1)

very well
以后慢慢看

15

主题

207

帖子

283

积分

中级会员

Rank: 3Rank: 3

积分
283
发表于 2010-3-2 22:43:00 | 显示全部楼层

Re:从道生一到三生万物——项目数值工作总结(篇1)

楼主谈到的这些基本原则都是没错的
我也是按照这些东西来指导自己做数值设计的

话说魔兽世界的数值设计是相当有研究和借鉴价值的

我更想知道大家在设计的时候有没有走过弯路,或许这些对我们提高更有好处

4

主题

109

帖子

113

积分

注册会员

Rank: 2

积分
113
发表于 2010-3-3 19:58:00 | 显示全部楼层

Re:从道生一到三生万物——项目数值工作总结(篇1)

收藏了。。。

7

主题

24

帖子

235

积分

中级会员

Rank: 3Rank: 3

积分
235
 楼主| 发表于 2010-3-4 12:39:00 | 显示全部楼层

Re:从道生一到三生万物——项目数值工作总结(篇1)

“我更想知道大家在设计的时候有没有走过弯路,或许这些对我们提高更有好处”
  上面已经写过一些,项目还在继续,以后会写的。

1

主题

292

帖子

292

积分

中级会员

Rank: 3Rank: 3

积分
292
发表于 2010-3-4 18:46:00 | 显示全部楼层

Re:从道生一到三生万物——项目数值工作总结(篇1)

D~~~~

期待更新~

4

主题

109

帖子

113

积分

注册会员

Rank: 2

积分
113
发表于 2010-3-5 18:50:00 | 显示全部楼层

Re:从道生一到三生万物——项目数值工作总结(篇1)

道、道、道。。。

23

主题

432

帖子

867

积分

高级会员

Rank: 4

积分
867
发表于 2010-3-8 13:22:00 | 显示全部楼层

Re:从道生一到三生万物——项目数值工作总结(篇1)

魔兽世界的数值,
从平衡的角度来说做的非常好
从成长的角度来说,,有很多有待提高的地方
您需要登录后才可以回帖 登录 | ????

本版积分规则

????|????|????|????|?????? ( ?ICP?17032699?-3 )

GMT+8, 2025-5-24 12:55

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表