还有一小部分关于格斗流程分析的找不到了.过往的青涩回忆记录之.
从原点开始胡思乱想
以下是我针对游戏战斗,从一个简单的念头开始推演战斗系统与数值的脉络。文中可能没有涉及具体的游戏数据间的公式关系,更偏重于思考类似我们需要哪些数据,为什么需要这些数据,这些数据的面貌如何等问题。鉴于经验和能力原因,有些分析或许流于肤浅,但我认为这种尝试比直接拿类似力量、敏捷等现有材料设计一套公式更有助益。我们不仅要知道怎么做,更要知道为什么我们要这样做。
一 原点
假设某游戏的原点是:“做一款男男女女都可以好好pk的游戏”。
你开始着手设计,决定先不考虑什么诸如宠物系统,升级时间,经验分配,装备,属性等等杂七杂八的东西。而是回到游戏的原点,仔细考虑什么是“男男女女都可以好好pk”的游戏。
你首先想到这句话实际上说的是战斗体验的问题。显然它透露了pk战斗易于上手这个讯息,需要女生也可以玩的很好,你初步希望它类似普通格斗游戏那种上手度,可以上演一个有天赋的新女性玩家上手一小时后能够干掉她的男朋友的奇迹,当然是在同等装备条件下=_=!令普通的玩家在面对自身多种技能,或对战多个职业时不会有无所适从的感觉,能够比较镇定的决定自己的策略。这就是你初步的一个想法,你将会让这种简单就好的感觉一直影响你今后的决定。
影响战斗体验的因素,你回顾了自己的游戏经历,基于回到原点的前提,你将不会太过纠缠于阵营、魔法、属性、装备、相克等这些具体游戏内容,而是偏重于那些更宽泛,更抽象的事物。顺着这条思路,你稍微总结了几个方面:
1 战斗时间 2 战斗节奏 3 伤害元素
4 战斗模式/策略组合 5 战斗空间/控制操作 6 艺术体验
到了这里大致可以了,也许会有新的款项加入,也可能整合到另几个更有代表性的描述划分中,但目前你能做的就是这么多。在继续深入之前,你知道那些成功有趣的游戏系统不一定都是相同的,决定其不同处之一在于设计者对各种游戏的假设或细节的判断。你觉得需要一个类似百科全书的东西,它将会依据你的经验、已有的数据甚至未知的数据(你将来搜集的)来提供一个判断参考,我们姑且称为专家A,专家B…吧。
并且因为我们考虑的是基于几个假设所引出的广泛、抽象意义的数值与系统,所以得出的结论也必然应该是广泛意义上的特征集合,而不是一些具象的东西。打个比方说,根据地球引力,钙化物抗压能力,生物体平均密度,结构力学,肌肉收缩强度,液体压力以及相关的生物知识我们可以大致推断出陆地上的哺乳生物体重、身高不会超过某个值,但是我们无法得知这个极限生物会长什么样,有什么皮肤,长得可爱不可爱等等。
二 战斗时间
战斗的情况千变万化,且不说玩家的类似hit & run等等各种诡异的战术,单是游戏提供的策略(主要指技能)组合,其不确定因素之大,不是设计者能够完全把握的。但就像根据升级时间来推演打怪、寻怪时间以及任务经验分配,回城频率等,我们确实需要有一个对pk战斗总时间的基本预计。这个预计会很模糊,但我们还是把它作为战斗系统其他部分的一个参考。凭经验,你感觉以往游戏一场遭遇战大概花费30秒左右的时间,消灭一个同级怪物的时间也低于30秒(我们暂时不关心怪物,因为总可以调整怪物的战斗时间)。然而我们先不想讨论野外遭遇战中时间为多少合适(骚扰,追击,逃跑,援助这些因素都会极大的延长或缩短遭遇战时间,这里需要涉及到具体一点的游戏内容),并且更多的属于一种结构问题,如果游戏提供野外遭遇的机会有限或是专门的战斗场所。因此我们假设双方会一直战斗到底,并总是集中火力对付优势目标。下表列出了1v1战斗时间分别为30秒和60秒时,从1v1,到5v5的战斗总持续时间。
1v1 |
30s |
1v1 |
60s |
2v2 |
15 + 30 = 45s |
2v2 |
30 + 60 = 90s |
3v3 |
10 + 15 + 30 = 55s |
3v3 |
20 + 30 + 60 = 110s |
4v4 |
7.5 + 10 + 15 + 30 = 62.5s |
4v4 |
15 + 20 + 30 + 60 = 125s |
5v5 |
6 + 7.5 + 10 + 15 + 30 = 68.5s |
5v5 |
12 + 15 + 20 + 30 + 60 = 137s |
计算过程以60秒,5v5举例:在1v1的情况下玩家能够坚持60秒,则他在被5人集中火力时,能够存活60/5=12秒。双方实力相同,12秒后只剩4v4,如此继续推算即可得上表。
这里玩家的dps不止计算了一场战斗中的伤害输出时间,也计算了其被控制、移动跑位等时间。5v5实际情况的话可能玩家坚持的时间更少。如果算上同伴的支援抵消效果的话,我们可认为上表的数值是有可信度的,它能够反应这种生存递减趋势。
在30秒的1v1预计时间前提下,5v5的情况中玩家只能存活6秒。在这个时间内面临血量急剧下跌,很多玩家都会惊慌,他们能做出的反应是有限的。即使队友有所反应,也常会面临一个是否营救的尴尬情况。于是常会发生在战斗开始还没到10秒,某玩家只能在接下来的1分钟看好戏。这确实不太符合我们的宗旨,让更多菜鸟乐于参与战斗,而不是上来就被鞭尸。给予战斗者更多的时间,帮助其思考和操作,实现比较丰满(包含了人数意义上的)的策略,你希望战斗是优雅的法国大餐,而不是粗暴的汉堡包。从这点出发,你决定暂时把战斗时间预计为60秒。
三 战斗节奏
关于战斗节奏,最先想到的是技能的施放频率与此关系密切,但我们还无法比较清晰的看到一种可以形成数值观念的关系。技能的施放频率其实某种程度上体现为伤害的输出节奏,于是你决定把战斗节奏抽象化,抛弃与游戏具体内容相关的部分,更关注于这些具体内容的表现方式。经过与专家A的商讨,你把战斗看成是以下几个关系的集合:
1 伤害输出节奏
2 控制能力
3 减益/增益能力
4 动作节奏
1,2点是战斗节奏最主要的组成部分。事实上,伤害输出节奏、控制节奏的不同决定了一个游戏中各个职业玩法的不同,甚至决定了不同游戏其战斗系统的区别。伤害输出节奏包括了整个战斗的伤害曲线以及攻击期的伤害曲线。控制不单指控制敌方移动、施法的能力,广泛上的能使己方处于主动的行为都可以看为一种控制能力,比如隐身、瞬移等技能我们也可以看为广义上的控制技能。减益/增益能力指的是通过技能、装备强化(或削弱)自己(或对方)的状态,提高(或降低)对方(或己方)恢复能力等行为。动作节奏指的是玩家的操作行为,技能的数量及使用频率导致的apm变化,以及游戏提供的诸如跑、跳、转身或其他一些物理动作模拟行为影响战斗的程度都可以视为动作节奏的一种。
在此没有篇幅详细分析各个游戏的不同职业的区别,焦点放在节奏差异上。wow中武器战士的非线性输出特色鲜明,很有典型意义。我们假设某武器战士(tbc之前)技能输出套路为普攻+英勇打击+致死打击+斩杀。以下是输出的大致模拟:
可以看到武器战士的输出是很不连续的。起手技能后产生了第一个技能伤害后,各个伤害高峰间隔都比较长。其强力伤害技能致死打击是一个6秒cd的较长技能,其他大部分技能为瞬发短cd(1秒),但却需要怒气积累时间。整体上属于厚积薄发型的伤害输出方式。按照战士高血高防的设定,为了平衡有必要减少其控制性技能数量和威力。因此,对于缺少一个有效时间(控制或者敌方伤害范围外)进行伤害输出职业,为其设计这种非线性的高爆发伤害输出模式就显得合情合理。
利用强力技能的固定cd时间控制(5-6秒的大约相当2-3个法系伤害技能间隔)爆发期间隔,关于技能cd在下文的策略组合中有专门分析。同时为了避免爆发期内爆发力过高,一方面是限定怒气值与技能消耗值的比例,不至于使过多伤害技能同时施放;另一方面设计怒气值不是线性增长,而是与战斗情况联系,跟玩家所受的伤害和所输出的普攻伤害挂钩,迫使高血高防的战士必须去追求贴身战斗和承受伤害来发动攻击,避免其利用高血高防优势积累怒气实行hit & run战术,如此也部分的延长了其爆发间隔时间。
第3个控制攻击节奏的手段,是武器的攻击速度。从图1的伤害输出看,攻击速度与普通攻击频率联系,但普攻的伤害量比较有限。物理普攻的伤害输出曲线应该与整体战斗节奏模型相一致,否则直觉上这种节奏的不协调会使玩家困惑,而对于技能伤害的平衡调试来说,同类型的数据有类似的变化规律有助于分析和设计(但这也不一定成为我们的束缚,暂且先记下来吧)。你记得暗黑2及过往相当多的游戏中,攻击速度往往是与一段时间内的整体伤害有关,但是单次伤害的计算往往并不包含攻速。为此,我们建立一个简单的计算模型,看看当单次伤害与武器速度挂钩所产生的影响。假设武器自身攻击力为dmg_weapon,人物总属性提供的攻击力为dmg_char,武器攻击周期为T(为符合习惯以下称为攻速),技能对武器攻击力的放大因子为1+k(我们总可以把输出技能归化为对攻击力的乘性扩大),技能的额外伤害为dmg_skil。于是最终伤害为:
Final_dmg = (dmg_weapon + dmg_char) × T × (1 + k) + dmg_skill (1)
以上公式我们把T与dmg线性相关。如果武器攻速在[1-4]秒内浮动,其伤害差距就为[1-4]倍之间浮动,如果按照0.2秒的间隔计算任意2个速度T1和T2的比值T1/T2(T1大于T2)的平均值,可得平均放大倍数为1.75倍。实际上我们还需要考虑的是1-4秒的攻击速度区间能分配给武器战士的实在不怎么多。除了类似盗贼这种需要高攻速武器的职业外,就是战士的其他伤害输出模型(狂暴战士)也需要占据一定的速度区间。而在[1-2]秒的高速速区间对于武器战士来说意义不大,攻击节奏过于领先技能施放、怒气变化节奏了。综合以上2点,对于目前设定的武器战士来说[1-2]秒的高速区间没有多大意义。我们把[2-4]秒的区间作为标准,那么其平均放大倍数还要降低,以0.2秒为间隔的话,为1.33。显然1.33的放大倍率无法满足我们的非线性爆发要求。
现在面临的新要求是,要求在一个基础值固定的情况下(例如(1)中的攻击力dmg_weapon+dmg_char),使攻速差距越远,其所造成的伤害差距越大,并且递增的速率应该大于线性速率。很自然的会想到将计算模型中的T因子改为T^2因子,但是突然公式多乘以一个T,我们目前还看不到多乘的这个T所体现的直观物理意义。或者根据T的大小调整总攻击力的大小,这样也可以达到平方级的变化率,但是总攻击力包含了武器及人物2部分,人物部分的dmg_char并没有速度属性,目前体系改变T对它没有影响,而为了不让攻击力来源过于单一,dmg_char所占的比重是相当大的。因此可供调整只有武器部分的dmg_weapon,这又束缚了我们的调整范围。
因此我们先要统一dmg_weapon和dmg_char的表现形式,并试图找到其与T的一个线性联系。Dmg_weapon如何得来的呢?武器本身设定了攻击速度,直觉上武器的威力与其挥舞周期成正比,于是可设攻击力与速度的计算模型为:dmg_weapon = dps_weapon×T,我们使用dps(每秒伤害量)和T把武器攻击力分解为更基础的表现形式,很高兴的看到dmg_weapon与T成线性联系,武器的最终伤害于是与T成平方比。这并不是偶然的,既然使用武器攻速T作为一个最终伤害乘数因子,T是一个时间相关的量纲,那么dps每秒伤害 这种与时间相联系的量纲表示就是有必要的,尽可能最终伤害公式中参数都分解为最简形式总是有利的。由此推演,继续把人物属性提供的攻击力表示为dps_char×T的形式。即把人物属性换算为dps的形式,而不再使用攻击力来直接表示。通过dps这个量纲统一了武器与人物属性这2个伤害来源,新公式如下:
Final_dmg = (dps_weapon + dps_char) × T × T × (1 + k) + dmg_skill (2)
公式(1)和公式(2)的差别就在于在(2)中当角色属性固定时,更换不同攻速的武器,那么最终伤害里由角色属性提供的伤害也会与攻速T成平方比,而在(1)中只为线性关系,攻速T的作用进一步增强了。在[2-4]秒区间内以0.2秒为间隔计算(T1/T2)^2的平均值,得到1.84的放大倍率。差不多相当2倍攻击了,而且当技能触发暴击(特别是我们可以设定某些技能具有额外暴击率)时,可以看到具有相同dps情况下,技能的放大倍率为T^2×(1+k)×2。
按照这个模式,我们以下表中的单手斧与双手斧进行比较。技能的放大因子为1.2,额外伤害为300。
武器速度 |
武器dps |
攻击强度dps |
总dps |
普攻 |
技能攻击 |
普攻暴击 |
技能暴击 |
2.6 |
71.7 |
60 |
131.7 |
890.5 |
1368.6 |
1781 |
3037.2 |
3.6 |
93.2 |
60 |
153.2 |
1985.4 |
2682.5 |
3970.8 |
5665.0 |
2.6秒的单手斧已经算是比较慢速的单手武器了,而游戏最慢的武器速度为3.8秒。总dps是比较接近的相差不过20,而1秒的速度差导致了相差将近一倍的伤害。而同一武器时,技能暴击与普攻的伤害量为[3-4]倍比值。值得注意的是,武器攻击速度并不一定就是实际上的攻击速度,因为享受技能的增益效果可以使实际攻速提高,但是计算伤害还是使用武器速度属性。这是一个灵活的设计,并不僵化在固定的攻击速度中。这种实际攻速与武器攻速属性分离在狂暴战士和盗贼的伤害输出节奏中占有相当的地位。
另外一个相当微妙的因素是随机因子的作用。比如不同近战武器的最小攻击力和最大攻击力浮动各不相同(一般越慢浮动越大),这也导致了慢速武器的爆发伤害不如快速武器来得平稳。而这些差别正是不同天赋、不同职业的伤害节奏区分之一。
综上,对于武器战士伤害输出节奏的设计,一是利用主技能间隔来形成战术起伏,二是利用技能怒气消耗与怒气增长方式来控制爆发当量与速率,最后通过武器攻速配合技能塑造了爆发曲线。从而行成了一套的有着较长平缓期,间歇性爆发的伤害输出节奏。而穿插其间的,还有微妙的随机因子和技能效果(比如实际攻速提升)等辅助因素。武器战士的控制、增益(状态、恢复)能力均很差,战斗兴奋点单一,战斗的侧重点在于酝酿把握短爆发时期。
归纳一下我们目前所用到的调整战斗输出节奏的因素:
1 技能cd时间
2 技能点积累和使用模式
3 伤害计算原理
4 随机因子
5 属性和技能效果
当我们需要设计多种职业时,把职业分类,并让同类职业享有某些共同的参照,再围绕这个基础根据需要添加特色点,这种模型衍生的思想经常被你拿来copy作文,现在你发现它在此处也有一些作用哈。
比如物理职业,一般的都需要依托武器作为伤害实现的媒介。那么设计一个包含武器属性的伤害公式作为一个共性的参照就显得很有必要。这个公式需要被不同类型职业引用,要求它具备较好的弹性。在同时我们回顾公式符合了这一要求。首先通过对T的划分,可以得出伤害差距比较明显的几个区间,而对于每一个区间通过dps进行线性调整,进一步细分伤害类型。更重要的是,公式(2)显示了一种对应于设计武器和伤害的直观模型:T控制大类型,dps则可调整大类型中的个体特色部分。在我们的模型中,把T分为[1-2],[2-3],[3-4]3个区间,它们分别代表了单次攻击动作中伤害曲线类型,T越高,曲线越陡峭,公式(2)给出了对应于这3种曲线的数值表现。
现在假设我们需要设定这样的物理职业:它的血低防低,同时又有着高爆发力,并且具有快速反应特性。如果我们选择[3-4]区间,来满足高爆发的特点,我们知道[3-4]区间普攻对dps的放大倍率为[9-16],而如果发生暴击机会达到[18-32]放大倍率。而角色具有快速反应特性,这通常意味着高的技能释放频率,于是将变为 高的放大倍率配合高的攻击频率,从直觉上的辩证观念,这是有一点破坏平衡的。从游戏性上看,人们总乐意在游戏中看到一种因素被另一种因素制约着,这样才会显得理性和公平。即使强制使用这个模式,为了平衡高放大率与高攻击率,必然需要通过技能或其他规则来产生一些极小的因子来配平它们,这种极小与极大的数值混合使用的话会导致设计困难,以及玩家的理解困惑。
吸取经验,我们再尝试使用[1-2]区间,这个区间满足了快速反应的要求。如何满足高爆发要求?由前面的推演,很容易想到的一是可以提升职业暴击率,快速的攻击当有了暴击率的支持能够如虎添翼,这是利用随机因子调整伤害节奏。二是可以提升该职业的实际攻击速度,单位时间内产生更多伤害。以上暴击和攻速的提升我们一方面可以利用属性转化来实现,另一方面可以体现在技能中。战斗节奏的不同也需要属性这个基础数据相对的适应。体现我们现在我们分别吧3.8秒和1.4秒攻速的武器作为战士和新职业的标准武器攻速。在相同的dps情况下,伤害值比为:
(dps×T1^2×(1+k)+dmg_skill) / (dps×T2^2×(1+k)+dmg_skill) ~= (T1/T2)^2=7.36
即战士的单次攻击伤害为新职业的7.36倍。表面上,我们可以直接令暴击率比值乘以实际攻击速度的值等于7.36来达到这个目的。但是,我们设计新职业并不是为了得到一个换了武器的翻版战士,而且只提升暴击比和实际攻速比的话,每个因子提升率为2.7倍,倍率太大了,为了不至于使新职业的暴击率超过100%,攻速过快,那么战士就要被限制在小的范围内。所以我们需要给新职业再添加一个因子。注意到[1-2]区间的单次伤害实在太低,而这个阶段的主要是匕首等高速武器,直觉上可以每只手拿一把这种高攻武器,从而降低暴击和实际攻速因子。而双持武器也是一种视觉和想象上都相当酷的特性,因此我们决定给新职业加入双持武器的特性,并且作为一个区别战士的卖点之一。
仅仅修改武器和角色的物理因素是不够的,否则还是脱不开翻版战士的阴影。新职业的另一个假设条件是低血低防,那么它显然需要较强控制能力或较强的增益能力作为弥补。我们刚为其设定了双持近战武器的特性,这样的酷特性显然不适合于通过治疗或防御等增益方式来作为特性加强生存能力,所以我们为其增加比较强力的控制能力,从而增强其在战斗中的主动性。我们已经可以隐约看到这个职业的机动性,它的战斗过程不同于战士那种忍受伤害,拼命贴近积累技能点(怒气)的被动攻击方式,而是一种游走,接近,撤离的过程。这就是我们熟悉的盗贼的艺术。
到此新职业初具形状。那么我们试试把各个因子相乘,看看结果。在同等dps情况下,假设盗贼的战斗中平均暴击率比战士多30%,实际攻击速度比战士快30%,双持带来了1.8倍的伤害提升,总共提升了约1.3×1.3×1.8=3倍。之所以没有考虑控制技能因子,因为控制带来的是攻击时间的延长,它对整体的伤害总量有贡献,但与特定时刻的伤害大小并无直接关系。实际上因为控制技导致的伤害时间增长,使得盗贼的单次攻击放大倍率要低于战士。如下图所显示的:
基础伤害的偏低,需要靠公式(2)中技能对dps的放大因子来平衡。因此设计盗贼技能时,其对dps的放大作用将会比较明显,额外伤害相对于dmg来说也显得比较有分量。我们设定其放大因子约为1.6,于是总共通过这几个因子的总提升倍数为1.3×1.3×1.8×1.6=4.8已经大致弥补武器战士与盗贼的(T1/T2)^2伤害倍数差。
(dps×T1^2×(1+k)+dmg_skill) / (dps×1.3×1.3×1.8×1.6×T2^2×(1+k)+dmg_skill)
~= 7.36/4.8 = 1.53
再考虑其控制技能带来的伤害时间提升,可以保证2者其整体伤害输出在同一水平线,基本上若控制技能设计的越强,则平均单次伤害量越要降低。在wow实际的设计中,为盗贼的一系列技能添加了一种计点模型,该技能被使用将得到一些计点,根据计点累积的大小达成某些技能的释放条件或者增强伤害。这种离散化技能设计方式很好的塑造了盗贼非线性的伤害方式,与其优雅精确的控制、输出相得益彰。
最后,出于和战士相同的原因,为了避免在各种特殊情况下(如在敌方被控制状态下长时间贴身),这些物理瞬发技能所形成爆发当量都是十分惊人的,我们需要给这种类型的输出加一个限制,降低伤害当量,进一步塑造非线性的战斗形式。可以效仿怒气值的做法,姑且称为能量吧。前面我们因为战士高血高防的特点,令其其怒气值的增长不是线性的,而是一种离散模式,需要长时间的贴身战斗和承受伤害来提供增长。盗低血低防的盗贼显然不具备长时间贴身战斗优势,我们希望这个职业的特征是游走,攻击,撤退这种骑兵模式,因此它在战斗中可能会有比较长的潜伏期,如果需要主动攻击和承受伤害才行,那么其在潜伏期的主动性就大打折扣了(无法获得使用技能的能量点),也就无法占据控制上的主动性。所以需要改变怒气值的被动性,令能量能够线性自动增长,如此才能配合盗贼的战斗特性。
以上根据某些假设的物理职业玩点,逐步演化武器战士,盗贼的一些伤害特点。以这2者为模型,如果我们对武器战士和盗贼都使用[2-3]区间内的武器时,又有什么变化呢?从wow中来看,多了双持狂暴战士和战斗贼这种职业变形。从战士角度看,[2-3]的区间内的武器速度使得爆发力削弱了将近一半,从以上的推演分析,调整随机因子(暴击),增加攻速,增加技能使用频率,增强怒气增长率都是可行的,这其实令战士向原型贼的伤害曲线靠拢,而形成贼的伤害曲线前提之一是低血低防特性。战士的这些调整,尤其是暴击率与伤害技能频率增加,伤害将是倍增的,而怒气增长率提高,为其提供了更长范围的爆发期。我们也可以调整系数令其伤害持平,但那样做的话意义何在,与原型的区分不明显,特色不够。伤害输出方式改变后,我们必然要对技能、以及属性相关方面进行相适应的改变,才好形成新的职业和玩点。因此,有必要削减新类型战士的高血高防特性,令其承受更多的伤害(一方面刚好也能带来更多的怒气),使其伤害输出像平稳靠近时,生存能力变得不如原来平稳。甚至技能中可以有削减血量,承受额外伤害的效果来实现伤害提升。一个因素最好有另一个因素制约才好玩。相似的,对贼来说,[2-3]区间的武器令其单次伤害能力提升,有必要削弱其控制能力。通过把部分控制技能绑定到[1-2]区间的武器,以及直接设定某些天赋才会出现某些控制技能及增强等。同样的,对于原型盗贼来说,也很有必要限制其选择的武器速度区间,避免使用慢速武器造成过高的伤害。
依托Final_dmg = (dps_weapon + dps_char) × T × T × (1 + k) + dmg_skill这个公式,从技能cd时间、技能点积累和消耗模式、随机因子、属性和技能效果考虑了伤害输出特性,并参照控制、减益/增益能力的因素,我们模仿了wow2个最具特色的物理职业的设计脉络。我们虽然没有设计某些具体的技能,甚至还没有搭建基础的属性结构,可是我们已经可以依据不同的职业假设,判断这些技能和属性在这个职业应该怎样分布,大致的特性会怎样,已经有了一个宏观上的方向。法系职业更多的牵涉到了伤害元素,技能施展时间,cd以及消耗产出比,与物理职业相比共性不是那么明显,我们在后边再进行中分析。
以上花费这么多的篇幅重点讲了伤害输出特性,是想说明从功能入手,根据游戏的目的,判断数据面貌的理念。先设计心中的蓝图,然后才是基础和框架,似乎更能反映我们希望表现的游戏性。
继续回到我们的原点。我们是否也需要设计一个基于速度的公式并以此演化各个职业呢?上述推演的起点是攻击力与攻速挂钩。由于伤害与T的平方成比例,攻击力的浮动相当大,需要比较多的因子来平衡。为了体现这些因子,战斗技能的数量不可避免的暴增,战斗操作复杂性亦随之递增。而我们的前提是战斗操作相对简单,事实上结合后面的策略组合分析,我们不希望战斗中操作技能超过8个甚至更少。另外,这样做的话在装备设计上受到的限制比较大。一方面是因为攻击力与T^2成比例时,那么在设计同一个区间的一件高级但是快速的武器与一件普通但慢速武器之间的矛盾,装备的dps需要以平方比递增来弥补T^2的差距。当武器分的等级越多时,显而易见以这个问题的困扰就越严重。另一方面因为实际上攻速的区间并不大,一般为[1-4]秒,而这狭窄的区间还要划分成不同区域供不同类型角色使用,使得武器设计捉襟见肘,同质化问题是不可避免的,武器选择自由度比较少。不过这迎合了其装备副本获取模式吧,正好适合标准化的副本装备设计需求。
我们一直没有提到动作节奏对战斗节奏的影响。咋一看之下,wow具备了动作游戏的许多特点:完全的操控视角,自由的跑与跳,战斗空间更是3维全方位的,繁多的战斗技能
大大超出了很多动作游戏的水准。即使战斗上有如此多的自由度,我们仍不能称之为完全的动作游戏,它的前辈diablo2反而更够格。因为动作游戏的伤害多不能自动追踪目标,玩家或者怪物都能通过一定的动作操作规避这种伤害。而wow乃至多数的rpg网游中,你一旦发射了一枚火球,玩家一般都无法通过跑位规避这枚火球。实质上,wow更像是dnd系统的即时战斗改良版,只不过回合单位的概念隐藏的更深,被稀释了。
根据你的感觉,你希望自己的游戏更偏向动作类一点,上手会容易,没有过多的rpg性质的东西干扰了战斗过程(诸如繁多的技能)。你希望玩家每按下一个技能,都会像格斗一样有确实的动作反应易于理解,你不希望角色像伊拉克的坦克一样,无论怎么跑还是不可避免的被美军的标枪打中。
但是前面关于战斗节奏的分析仍然是有用的,关于战士与盗贼的职业推演仍然有着启发意义,我们将会采用这种原型衍化的思想设计新游戏的职业。然而在伤害元素,战斗模式/策略组合的概念没有清晰之前,你觉得仍无法精确的划分战斗节奏,现在先把这个思路放在以下的分析中了。
四 伤害元素
人类的想象是无穷的,于是有了神仙狐怪、五行六道,有悟空八戒,当然还有ET和美女=_=!游戏作为第九艺术,更是融合了美术、音乐、文化、技术、娱乐的想象。我想说的是,战斗虽然是暴力的,但还是需要想象力的。玩家总是希望在战斗中能有更多的变化,战斗的单一不止会表现在攻击节奏,战斗模式,策略组合这些纯粹战斗层面的单一,战斗中体现的游戏内容的单一我们也要尽量避免,而这主要反映在伤害元素的设定上。玩家的大多数时间都花在战斗上,战斗中关于游戏内容的体验,占了玩家对整个游戏内容体验的很大一部分,对于玩家是否能够融入游戏世界起着关键作用。
伤害的类型、伤害的表现形式、伤害的作用机理,体现了游戏的内容维度和战斗维度。伤害类型是指伤害的手段,比如物理伤害和魔法伤害。一般的,物理伤害会被视为一种无属性类型,作为其他非物理伤害的参照标准。非物理伤害在很多游戏中多会被细化为更多的变种,作为职业、技能、怪物的设计材料库。当我们考量伤害类型时,其实我们关心的是这种伤害是如何被抵抗的。伤害与防御是一对矛盾体,这种相互制约正是游戏性的体现。对应于物理伤害,有装甲来约束,而对应于非物理伤害,一般有类似抗性的概念进行抵御。显然的,对于每一类伤害都提供单独的抗性是最好的选择,这样调控的自由度更大,不同伤害之间的区别才会显得独特。另外,这也将会丰富游戏装备及类似系统的多样性。这自然的让我们想到:物理伤害,归根结底不过也是一种伤害类型罢了,只是它常过多的被绑定到了近战职业以及部分远程职业身上(当然这也是rpg模拟现实的特性所决定的特点),而这些职业所占的比重又比较大,使得其地位凌驾于其他伤害类型之上,这反而也限制了我们创造更多样性战斗空间的能力。我们将尝试令物理职业具有更多其它伤害类型手段,这方面牵涉到的变化是否能如我们所愿,在游戏模式与策略组合章节中再考察吧。
很多游戏中,不同伤害类型及其抗性的计算常会突出一种相克的抗性。某一种伤害类型或抗性将会对具有另一种伤害类型或抗性的职业产生额外的作用,比如五行相克。这种模式的实际意义不大。我们看常见的五行相克,如果假定某角色可以选择2种伤害类型和2种抗性,那么它们之间的搭配就有C(5,2)×C(5,2)=10^2=100种组合方式。这些组合方式都是等价的,如果我们需要设计新加入的某些装备或技能,那么衡量其价值的工作量变得如此之大,我们真的不确定能够把握住,这还没有计算当确定了某个组合后,其他类型将会对这个组合产生的影响。对玩家而言,过量的选择,反而会令每一种选择显得没有价值。另一方面,就战斗来说,五行相克并不因为相克的名目就能够取得平衡,反而为不平衡推波助澜。玩家需要的是一种自由选择的余地,我们说平衡某种意义上就是一种民主的权利。真正的职业相克应该是那种战斗上的优点与缺点刚好相反,比如速度慢攻击高对于速度快攻击慢、防低血低控制能力强相对于防高血高控制能力弱的这种矛盾,矛盾通过一定的条件总能转化,正如玩家能够凭借自己的操作及对技能的理解来赢得战斗。而不是进入游戏后,gm就对你宣布你天生就该被某个群体的玩家践踏,因为你的id是数字他的id是英文。
说白了,五行相克就是希望一种伤害类型能够针对不同的抗性有不同的伤害效果,一种抗性能够对不同的伤害类型有不同的抵抗效果,混乱的源头由此而来。基于以上原因,我们决定每一种伤害类型及对应的抗性都是独立计算。
那么,设定多少种伤害类型,这些类型都有些什么特点?这取决于游戏的复杂度,和我们希望达到的效果。然而现在游戏的架构还不是很清晰,我们该如何进行推断?回顾之前推演的关于物理伤害的战斗节奏,我们决定遵循大致原则来设计。首先从游戏游戏内容维度考虑,伤害类型与战斗中的增益/减益状态和控制能力关系密切。除此之外,某种伤害类型应该满足一些规则,使得在技能中使用时它总会出现某种特性并受到某种限制,以此形成伤害类型的特点。因此我们罗列一些可能出现的状态;降低移动数度,降低攻击速度,减少各种抗性,击晕,降低各种攻击力。在伤害的形成上,某种伤害类型能够在单次攻击中形成爆发高伤害,另一种可能是持续性长时间的伤害,而有的可能具有短促紧凑的伤害曲线,有的可能伤害的浮动相当大。在战斗时间和空间的控制上,施展距离、范围、间隔也是会有所不同。这些特性很多,我们可能需要一些因子把它们表示出来,而不是由技能单独给出。
现在我们尝试创建冰系伤害类型,它总是能够附加降低移动速度的效果。那么,冰系伤害应该处在一个什么范围?这就需要我们衡量移动速度对攻防双方的影响。若减速效果为(1-k),我们简单的假设这将给被减速方带来1-k的伤害频度惩罚,给减速方带来1+k的伤害频度奖励,双方的攻击力相同,原攻击频度相同,那么由双方的血量差增大速率之比为A(1+k)/A(1-k)=1+(1+k)/(1-k),减速方得到了2k/(1-k)的伤害增益。所以冰系伤害力就要相对于某一个参照标准调低2k/(1-k),实际上我们可能还要考虑冰系技能的命中概率,以及被减速方的反制能力。这种降低不一定只需要调整伤害力的大小,调整技能消耗的技能点,令其消耗增大,减少其施展频率也是一种方法。暗黑2的战斗模式刚好符合这里的要求,减速可以说是少有的控制技能之一,不会有太多控制与反控制技能干扰计算因子,而女巫技能树中的冰弹和火球满足我们的测试需求。作为一种大致的估计吧,对比12级女巫的12级冰弹和12级火球效果。此时,冰弹的平均伤害为21.5,火球为24.5,其比值为1.14,冰弹的法力消耗为3,火球术的法力消耗为2.5,比值为1.2,2个比值乘积为:1.37。冰弹减速效果为50%,有(1+0.5)/(1-0.5)=2,开根号得1.41。相差不大,如此给了我们一些信心哈。
讨论到了冰系的伤害问题,自然而然想到:伤害类型的具体伤害由什么给出?抗性依照什么计算?先回顾,对于物理伤害而言,很多游戏作用的主要方式通过技能把一个基础物理攻击力转化为伤害,这个基础攻击力的构成一般为:由属性转换+装备提供的直接攻击力。该攻击力对物理伤害而言很重要,特别是其作为一个乘性因子在伤害公式里起作用时,技能是依赖于这个基础攻击力的。对于非物理伤害而言,可能会有几种模式。模式A是某个伤害类型的基础攻击力主要是由技能(等级)本身提供的,技能一般不对技能以外的因子进行转换。模式B类似物理伤害类型,基础攻击力构成为:属性转化+装备提供攻击力。基础伤害力来源于技能内部或技能外部即是模式A和模式B的区别。很自然的会想到一种模式C结合这2种模式,基础攻击力构成为:属性转化+装备提供攻击力+技能等级提供攻击力。模式C作为一种普遍模式(另某一项为0即可得出各种模式),我们建立以下计算模型:
atk = (c + e + s)×(1 + k1)×(1 + k2)… (3)
属性、技能提供的攻击力c、s特别是s对于某一个职业一般来说对总是固定的,而装备提供的攻击力依照装备品质浮动却会很大,这是一个玩家控制的自由量。现在我们又处于了面对公式(2)时类似的情况,公式(2)中依据对dps,T的选择区间我们模拟建立了一些物理伤害节奏类型。而这里面对c,e,s的不同侧重,我们可以看到诸如物理与非物理伤害模型的区别。在玩某个具体游戏时,我们可能常会听到玩家这样的感叹或抱怨:某个职业不怎么依赖装备哈,十之七八他通常说的都是某个法系职业。当某个职业1的atk主要来源是装备时,若e2处在普通水平,而另一个主要依靠技能提供atk的职业2,虽然其e2不高,但s2很高,既有c2+e2+s2 > c1+e1+s1。但是因为e1的浮动比较宽,当职业1获得某个好装备时,e1上升的很高,而以此同时职业2的s没有多大变化,而其对e2的依赖又不高,于是就出现了c2+e2+s2 < c1+e1+s1。这就是某职业依赖于装备之类的抱怨的来源之一,亦是常见的法系与物理系职业矛盾之一。
当公式(3)中的k1,k2,k3项为0或数值及项比较少时,就演变为由加法组成的公式,我们说这个公式是加性的。此时c,e,s作用都比较重要,每一项的改变对公式来说权重都差不多。类似一些dnd规则中的职业,或某些回合制游戏中,由属性提供的攻击力在这种加性公式中效果是直接显著的。而当k1,k2,k3项不为0(数值及项比较大)时,我们说这个公式是乘性的,其对基础攻击力的放大比较明显。因为在法系职业中c一般由装备附加和本身角色的成长构成,装备附加的那部分实际上可以看成是装备的攻击力,而角色成长带来的那部分就如s一样是固定的(固定的加固定的还是固定的),因为这2个原因于是属性在括号里的作用就显得重复了。为了避免这种重复性,我们可以把c提到括号外,让c影响参数k1,k2(如暴击率,命中率)等参数,或令c可以影响其他控制、增益能力等。尤其是当非伤害类型比较多,技能与技能之间相互加成效应又很多,计算模型复杂时,对基础攻击力的计算做简化是必然的,类似暗黑2和wow,我们都可以看到法系伤害类型中人物属性值基本不影响其基础攻击力,暗黑2影响的是魔法回复率,wow影响的是暴击率。而在dnd的职业中,攻击力的计算更多的是一种加性的公式,所以这时候利用多种属性构成攻击力是一种不错的选择,我们可以看到不同职业的很多技能效果甚至直接由属性值控制,这种伤害计算模式更直接的展现了rpg的魅力,人们更乐意于看到吟游诗人主属性为魅力而不是和法师一样为智力吧,虽然他们都能够使用法术=_=!,这是一种更自由的方式。我们曾在伤害节奏中讨论过因为物理职业一般都是通过武器达成伤害的,如果这种伤害类型对应了很多职业,
而这些职业常享有共同的物理伤害公式(如公式2),于是若基础攻击力只由武器装备构成就会显得弹性不足,我们需要引入另外因子来形成不同职业的伤害区别,因此基础攻击力在武器的基础上再加上属性转换或技能提供的顺理成章。例如暗黑中的亚马逊和wow中的盗贼,敏捷作为主属性是基础攻击力来源之一;而wow中的圣骑士,则不仅引入了属性的攻击力,技能构成的攻击力所占比重也很大。
假设我们把控制能力、减益/增益能力也通过某些规则归化为c、s、e中的某项,由公式(3)依据装备的品质某种物理职业与某种非物理职业的攻击力变化如下,假设技能提供的基础伤害力不改变并且装备提供的攻击力与品质成线性关系,得下图:
假设存在点A是基础物理攻击力与基础法系攻击力的平衡点。A点的位置一般应位于游戏中玩家装备品质集中段以上的区域。由图中可以看到物理装备的随品质的递增速率高于法系装备。经过平衡点之后,基础物理攻击力就大于基础法系攻击力。实际中我们会使用分段函数把数值限制在更小的区域内便于平衡。可能还可以利用随机因子,增加某些控制战斗节奏的技能来削弱不平衡的影响,但每引入一种新的元素也可能更增大了平衡调控的困难。从设计角度考虑,技能因子的弹性是要大于武器装备因子的,从伤害的量、形式、时间、空间等等角度我们的作为很丰富(这也是为什么在非物理伤害类型的基础攻击力中我们可以摒弃属性的转化),而依托于武器装备的话,可选择的范围比之技能要狭窄许多。因此弱化物理伤害与非物理伤害的区别,如前面已经说过的,不刻意的将这种伤害绑定到某几个职业中,扩大物理伤害中的技能因子比例,不拘泥于物理伤害与其他伤害类型的分离,亦有助于平衡。
经过以上分析,我们脑海中已经对伤害类型有了一种更自由一点的想法。我们希望伤害类型能够像dnd规则那样体现更丰富的职业特性,主属性将能够在基础攻击力中占更多的权重,这也将影响我们的技能设计不会出现太多的相互叠加影响,导致乘性效应过多。我们希望每一类技能更有独立性,而不被过多的其他技能影响,以与我们目前的游戏设想相适应,玩家总是能够比较明朗的看到某个技能的效果,而不会太多困惑,就像打飞机一样按一发子弹是一发子弹。我们将打算模糊物理伤害与其他非物理伤害类型的界限,其持续性攻击的特性我们会保留但有所削弱,进一步的我们可能会提供更多伤害类型之间的转换,例如可以把物理伤害的部分转化为其他类型伤害。而对于控制战斗节奏的另外因素,如控制能力与增益减益能力,我们将通过属性把它们联系起来赋予伤害类型,我们可以让不同的属性控制伤害类型的作用距离,影响范围,特殊效果持续时间,伤害转换比例等等,我们将看到伤害类型能够被更多的属性因素影响。这么做一方面是对散乱的战斗节奏控制因素进行一定程度的管理,另一方面是令伤害类型更容易扩展,我们结合不同的伤害类型及属性类型可以比较容易扩展出新的技能特点,甚至扩展新的伤害类型。这确实是增加了游戏的复杂度,但并不是外在表现层次上的复杂,我们的简单就好的原则有大部分原因是针对玩家而言的。用一种简单的表现形式,隐藏复杂的数据关系,这是上手简单,内容丰富的游戏特征,是我们所追求的方向。
暂时写到这里,或许还有些凌乱甚至显得肤浅,只是借此表达自己的一些想法,如开头所说的——我们不仅要知道怎么做,更要知道为什么我们要这样做。