关于战斗——游戏数值平衡设计(第5节)
(2013-04-30 15:26:22)
标签:
数值策划数值平衡战斗系统创新技能 |
分类: 游戏策划 |
5.5.1 确定攻击的指令
在许多RPG中,尤其是在回合制游戏中,在其中发生攻击的指令非常重要。过程可以相当简单——检查属性(例如,灵敏度),查看哪个单元具有最高的值,然后依次执行这个过程,知道所有的单元都采取了行动为止。其他过程更复杂,设计使用一个共识来确定谁在一局中具有“主动性”。例如:
1/4 × 属性体质 + 3/4×属性灵敏度 = 主动性值
在实时游戏中,事情要复杂一点,因为单元在不断地执行动作,如果玩家可以执行某个动作,然后必须等待很长的时间,以便所有其他的单元都采取行动,之后才能执行另一个动作,那么他将感到心烦意乱。用于解决这个问题的一个方法是:允许单元在有限的“在装填丹药”时间之后执行动作。Square Enix的《最终幻想4》(Final Fantasy IV)中开始使用ATB(Active Time Battle,活动时间战斗)系统(1991年),其中玩家可以实时选择指令。一旦完成了指令,玩家可以输入下一个指令,而不管战斗的其他角色和敌人干什么。
如果玩家只控制了一个角色,实时给出指令就不是一个问题。不过,如果玩家必须控制一个角色团体,并给其中的每个角色发出指令,情况就可能会变得近乎癫狂。通常有许多指令可供角色使用,因此决定使用团体中的哪个角色将是费时的,从而可能导致在团体中无法齐心协力。解决这个问题的一种方式是:一旦发出了指令,当玩家选择一个角色然后重新开始时,有时间停止游戏。
5.5.2 确定供给值
依赖于战斗是如何建模的,必须确定证那都中的供给制(Attack Value,AV)。它可以使上面列出的值之一(通常是力量(Strength)),或者可能涉及某种类型的公式,例如:
3/4×属性力量 + 1/3 ×属性提醒 = 攻击值(AV)
一旦确定了基本供给制,那么就可以对它应用任何修饰符,以增强或减弱攻击。这些修饰符可能来自正在挥动的武器(例如,“+1把厄运之剑”)、角色穿戴的其他魔法装备(护身符、戒指等),以及分配各角色任何魔咒/技术。修饰符通常是累积的,既可以为正,也就可以为负。例如,角色可能携带+1把厄运之剑和一个可以增加角色力量属性的戒指,但是角色重度了,这将使得他变得虚弱(例如,使力量-1)。
因此,用于为证那都确定修改的攻击值的公式将变为:
基本攻击值 + 正修饰符 - 负修饰符 = 修改的攻击值
如果设计师愿意,可以使用这个修改的攻击值确定战斗的结果。然后可以使用证那都表格生成随机化的结果,并且来自该表格的结果将是对敌人造成的伤害。不过,有时设计师可能希望微调武器战斗,以考虑呗攻击的敌人的类型,以及会对它造成影响的盔甲和防御性魔咒。
5.5.3 确定防御值
使用过于简单的公式确定对敌人造成的伤害值可能导致怪异的结果。例如,如果玩家与手持短剑企且未穿盔甲的妖怪搏斗,并且战斗的最终结果是在每次攻击中都会对妖怪造成的6个攻击点的伤害,如果对穿戴有重型盔甲的犀牛造成了类似的伤害,则似乎可能有些令人奇怪。玩家将期望犀牛的皮肤吸收一些甚至可能全部的伤害。为了考虑对手的防御措施的变化,设计师可能在战斗解决算法中包括一个防御值。
与确定供给制一样,设计师可以使用敌人的属性来定义基本防御值(Defense Value,DV)。例如:
1/4×属性体质 + 1/6×属性体型 = 基本防御值
可以像这样使用这个基值,或者通过其他因素修改它,比如敌人的盔甲、魔法设备和魔咒。用于确定修改的防御值的公式如下:
基本防御值 + 正修正符 – 负修正符 = 修改的防御值
把两个公式结合起来,将得到最终的供给制:
修改的供给制 – 修改的防御值 = 最终的攻击值
5.5.4 战斗算法的示例
既然已经有了用于说明角色和物品属性及修正符如何工作的基本公式,设计师就可以额开始着手定义如何解决战斗的算法。该算法是一个解释战斗如何发生的主逐步的过程。在这个示例中,算法首先检查累计的攻击值是否大于累计的防御值,如果是,使用战斗表格确定对防御者造成多大的伤害。该算法看起来可能如下所示:
确定攻击类型
第1步:确定要解决的攻击类型。
l
l
l
确定修改的供给值
第2步:基于攻击者当前的属性级别,使用它的攻击值。
第3步:求出攻击者的基本攻击值
l
第4步:求出攻击者的修改的攻击值。
l
确定修改的防御值
第5步:基于防御者的属性级别,使用它的基本防御值。
l
第6步:求出防御者的修改的防御值。
l
确定最终的攻击值
第7步:求出最终的攻击值。
l
确定攻击是否成功
第8步:如果最终攻击值 = 0(或更低),就终止战斗解决。
l
第9步:如果最终攻击值 >= 1,就继续解决战斗。
l
解决攻击
第10步:使用战斗表格生成一个随机结果。
第11步:确定对目标的伤害值。
l
l
l
解决关键击中
第12步:在关键击中表格上生成一个随机结果。
第13步:利用关键击中表格上的乘数结果乘以战斗表格中的原始伤害值,并且转到第14步。
对目标应用伤害
第14步:从目标的当前击中点数减去最终的伤害值。
l
l
【解读,这里要添加一份流程表格图】
5.6 战斗表格
如果在战争期间发起的每次攻击的结果总是相同的,玩家可能会对战斗的方式日渐生疑,或者尝试使用系统对抗它自身以最小化伤害。在现实生活中相同的攻击极不可能总是导致相同的伤害值,因为作战人员在参战时会四处移动,从而可能避开突袭,或者借用盔甲减轻伤害。因此,设计师可能决定使用战斗表格为每次攻击提出多种不同的结果。使用这样一个表格的有点是:设计师可以对结果进行加权,使用一些结果比另外一些结果更有可能发生,因为他们发生的概率更高(参见表5-1)。基于战斗算法的构造方式创建任意的战斗表格是有可能的。
表5-1 战斗表格(加权)
2d10的结果 |
效果 |
伤害修饰符 |
1~2 |
未击中 |
NA |
3~10 |
接近未击中 |
-2 |
11~30 |
正常击中 |
0 |
31~50 |
正常击中 |
+1 |
51~60 |
正常击中 |
+3 |
61~70 |
猛烈击中 |
+6 |
71~80 |
猛烈击中 |
+10 |
81~90 |
猛烈击中 |
+15 |
91~95 |
非常猛烈地击中 |
+25 |
96~100 |
关键击中 |
** |
注:1.在这张战斗表格上,朝着中心对结果进行了加权处理,使得大多数伤害都会发生。比较这张表格与表5-3,注意它们都包括了一个“伤害修饰符”列。
2.**表示在关键击中表格上掷骰子,并且使用哪个修改过的伤害结果。
表5-1中的结果可以是从一个从敌人的击中点总数减去的值。或者可以给予影响战斗的其他因素增加或减少这个值(例如,如果玩家中毒了,接可能会对最终的2d10掷骰子结果应用-5的掷骰子修饰符)。许多游戏使用传统的人2d10随机化系统,允许100种可能的结果,但是电子形式的RPG可以使用任意范围来确定结果。