查宇飞(YUFEI ZHA) Bucknell University 巴克内尔大学
DOTA 作为一款流行十余年的MOBA类游戏,其中数值关系庞杂且繁复。经过长年的更新以及调整,现在展现在我们面前的DOTA2这款游戏,却正以其“平衡”的优点而为玩家所熟知。DOTA2作为电竞项目,比赛中各个英雄的出场率以及战术的多样性让其脱颖而出。而其中居功至伟的,正是DOTA数据模型的稳定架构以及合理平衡。
DOTA的核心数值系统继承于魔兽争霸,其基础属性有三种,分别为力量、敏捷、智力。每个英雄都具有这三种属性,但有且仅有一项主属性。每项属性都有其所对应的附属属性,详细情况如下:
力量(每1点)——生命值:+20
生命恢复速度+0.7%
状态抗性+0.15%
敏捷(每1点)—— 护甲:+ 1/6
攻击速度+1%(线性叠加)
智力(每1点)——魔法值:+20
魔法恢复速度+2%
技能增强+0.07%
若增加的为某英雄的主属性,其普通攻击力将同时增加1点。在DOTA传统的角色分类中,各个位置的界限清晰。1、2、3、4、5号位各司其职。因为敏捷型英雄在后期占有绝对优势,所以比赛后期的胜负往往由占用全队大部分经济的敏捷核心决定。同时,鉴于过去版本中DOTA没有法强的概念,智力型辅助英雄往往在后期的作用非常有限且极易阵亡,导致辅助玩家的体验较差。于是在DOTA1的末期,一度常常在同一场比赛中见到10个敏捷后期英雄,严重违背了DOTA的核心玩法。
图1 理想状态下的职业战力表
以力量、敏捷、智力三种属性作为数据模型核心系统的对抗性游戏现在已几乎比比皆是,这种数值模型系统的优点是各个职业的特点、定位明确。但有一个明显的缺点,就是极易导致英雄/职业之间的战力严重不均。具体来说,某一游戏在版本更新中对于某一属性数值进行的改动很有可能会令该类别的英雄/职业的战力与其他类别产生较大差异,以至于产生该版本的所谓“幻神”职业。所以对于大部分的PVP游戏,我理想中的状态是使各个职业在不同等级的强度波浪型上升却最后汇聚于同一水平线上,如图1所示。
这样的战力安排,使得每个职业都有其强势期且相互交错。每个玩家都能在升级的过程中体验比同等级玩家更强的快感。同时,对于自己下个强势期的期望,会让玩家更易容忍暂时的升级困难,更具有游戏动力。而在最后,每一个职业上限应当基本相同。尤其对于有大量满级玩家的成熟网游来说,特定职业的过强或过弱都是很大的问题。所以很多游戏的“平衡”都着重于单个玩家的战力平均上。但是DOTA的MOBA游戏属性决定了其不一定要拘泥于这种平衡。
正如之前所说,对抗性的游戏如果各职业战力不均,会给使用较弱职业的玩家极差的游戏体验。然而,DOTA虽然是对抗性的游戏,它却是强制的5v5的对抗,单局游戏时间仅有1小时左右,而且阵容的选择由玩家完成。于是游戏职业的平衡性极大的由玩家通过选择阵容所决定。玩家可以通过合理利用己方阵容的强势期在游戏中获胜。而英雄的强势期则主要由其核心属性所影响。
从DOTA共计115个英雄中随机选择各个属性英雄8个,共计24个英雄。各个属性英雄的平均数值见表1。
DOTA中的等级区间为1-25,我们以6级作为前期来进行分析。
表1 各个属性英雄的平均数值
前期:力量型英雄:力量:39.375,敏捷:21.406,智力:23.556
敏捷型英雄:力量:27.719,敏捷:35.375,智力:25.1875
智力型英雄:力量:28.75, 敏捷:26.75,智力32.563
我们可以清楚看到,如果是互相仅仅进行普通攻击,智力型英雄从前期开始就定然处于劣势。对A中影响明显的生命值、护甲、攻击速度都由力量、敏捷所决定。
而前期,在力量型英雄与敏捷型英雄的对A中,力量型英雄的数值约为:
生命值: 250(平均基础血量)+39.375*20 = 1037.5
攻击力: 25(平均基础攻击力)+39.375 = 64.375
护甲: 2.6(平均基础护甲)+0.1667*21.406 = 6.17
攻击速度:100+21.406 = 121.406
敏捷型英雄的数值则为:
生命值: 250(平均基础血量)+27.719*20 = 804.38
攻击力: 25(平均基础攻击力)+35.375 = 60.375
护甲: 2.6(平均基础护甲)+0.1667*35.375 = 8.5
攻击速度:100+35.375 = 135.375
DOTA中的攻击速度与护甲公式则为:
攻击速率 = (攻击速度/101)/1.7
物理减伤 = 0.06*护甲/(1+0.06护甲)
所以在6级时,一个力量型英雄平均具有1037.5的生命值,64.375的攻击力,减免27%的物理伤害,每秒可进行0.7次普通攻击。而敏捷型英雄则有804.38的生命值,60.375的攻击力,减免33%的物理伤害,每秒可进行0.8次普通攻击。
X1 = (804.38/(64.375*67%))/0.7 = 26 秒
而敏捷性英雄击杀力量型英雄所需时间为:
X2 = (1037.5/(60.375*73%)/0.8 = 29.43 秒
由此可见,在前期的对拼中,力量英雄的血量提升让其更加占有优势。那么在什么时候敏捷型英雄会迎来其强势期呢。利用Python语言,我编写了一个小程序并计算了每一等级敏捷型英雄与力量型英雄击杀对方所需时间,将其具化为图表,如图2所示。
图2 DOTA2 7.18版本英雄击杀所需时间
图3 DOTA2 7.18版本英雄胜率榜前十
图4 DOTA2 6.88版本英雄胜率榜前十
可以看见在相当长的一段时间内,力量型英雄在对A中都占有绝对优势,而敏捷型英雄的优势期在23级之后到来。在达到24级时,力量型英雄击杀敏捷型英雄需要29.775秒,敏捷型英雄则需要29.687秒,首次能够在对A中获得优势。力量型英雄不仅强势期长,而且即使在后期,敏捷型英雄的优势也相当有限,这也是为什么在当前版本中,胜率最高的十个英雄中力量型英雄占有6个席位。
而力量型英雄的强势,也是经过版本更新才逐渐形成的。在6.88版本时,每点力量仅加19点血。1点的血量差距似乎不大,但是在之前版本中,胜率前十的英雄中仅有4个为力量英雄。
在6.88版本数据中,力量与敏捷型英雄击杀对方所需时间见图5。
图5 DOTA2 6.88版本中英雄击杀所需时间
两张图看起来差距不大,但是仔细观察可以发现,在7.18版本中力量型英雄的中期优势有明显的上升。在8级至18级中,当前版本的力量型英雄都比过往版本更加具有优势。而这同时意味着中期的压制以及在游戏中期获胜的概率。在当前版本下,力量型英雄很容易利用自己的强势期在前期打出优势,在中期结束比赛。
同时,相比于6.88版本,敏捷型英雄在后期更不具有优势。虽然图标上没有显示,然而具体数据上,在25级时,敏捷型英雄与力量型英雄击杀对方的时间差值,由0.5减少到0.3。这意味着在当前版本,即使拖到后期,力量型英雄与敏捷英雄原本就不大的战力差更小了。
版本基础数值方面的更新,也不仅仅只有属性的数值变化。同时等级方面的基础数值也有着显著的变化。以6.88版本与7.18版本为例,DOTA2官方在更新中也使用了经验方面的数值调整来适应、平衡游戏。图6是 DOTA2 6.88版本中英雄升级所需经验及击杀所需时间。
我们可以清楚看到,在6.88的版本中,在8-10级时,游戏升级所需经验在线性函数中有一个明显的下调。而正是在这段时间内,力量型英雄即将迎来他们的强势期。这种降低升级所需经验的方法,帮助力量型英雄更快达到自己的强势期。而在11级时,升级所需的经验被大大提高。11级又正是敏捷型英雄击杀力量型英雄所需时间最长的时候。换而言之,这是力量型英雄在全局游戏中最难被击杀的时间段。在敏捷型英雄后期更加强势的6.88版本,DOTA2通过这种经验设置,一定程度上平衡了敏捷型英雄与力量型英雄。以加快力量型英雄到达强势期的时间和延长力量型英雄强势期的时长,来保证力量型英雄的玩家游戏体验。
然而,DOTA2的游戏类型决定了什么时候获胜并不取决于强势期的时间长短,而是更由强势期时的实力差距所决定。即使强势期再长,只要强度不足以获得胜利,仍然是无用的。6.88版本中,力量型英雄虽然在中期有很长时间的主导权,但是无法将优势转化为胜势,更多的时候,仍然需要等待本方敏捷型Carry的后期发挥。
而在7.18版本中,中期力量型英雄与敏捷型英雄的强度进一步拉大,有效提升了力量型英雄在中期结束游戏的可能性。从图7也可以看出,DOTA2也改变了经验设置,不再需要通过拉长力量型英雄的强势期来保证该属性英雄的强度与玩家体验。
图7 DOTA2 7.18版本中英雄升级所需经验及击杀所需时间
由此版本的改动,不难发现,DOTA2在更加鼓励玩家前中期进行战斗,缩短平均的游戏时长,平均玩家的用户体验。然而与此同时,他们仍旧希望能够保持DOTA2的游戏特色,即敏捷、力量、智力分工明确,敏捷型Carry可以在后期接管比赛。所以,各个版本的更新中,力量型英雄增加了法术抗性、血量,而智力型英雄增加了法术伤害。这都是提升力量型英雄与智力型英雄的战力。但是不论如何提升,敏捷型英雄在后期仍然存在优势。虽然优势有限,但这一点优势就保持了DOTA2敏捷核心的后期能力,保证了DOTA2游戏玩法一定区间内的稳定。