数值策划:教你将战斗力数字化
本文意在和大家聊聊战斗力的计算以及在实际工作中的应用。
战斗力,顾名思义,评判战斗能力的分值。
玩家面对战斗力会有两个理解:
所以,只要保证相同战力不同职业互搏平衡。以及不同职业获得相同战力的养成代价相同,我们认为这一套战斗力的计算是无误的。
针对不同的游戏,不同的团队,计算战斗力会有不同的方法。这没有一定之规。本篇文章,也不过是将我之前工作时的一些小技巧分享给大家。
我习惯分模块地计算。并赋予不同模块不同的数值使命。就战斗力来讲,我会从以下两个方面展开,和大家一起探讨:
1属性带来的战斗力:制作职业间的平衡;
2技能带来的战斗力:区分职业间的不同。
2.1.战斗节奏
制作属性,我不自然就会想到标准人。一说到标准人,就会想到战斗节奏,或者说是标准战斗时间。
制作游戏数值,最关键就是把握时间。无论是制作战斗还是制作经济。这也将会是我们整套数值体系中,可以根据玩家
体验主观设定的数值。体现在战斗中就叫做战斗节奏。
不同的战斗类型,标准不同。我们可以将游戏分为两种类型:
游戏节奏以秒来体现。基础模型为互相攻击,同时死亡的时间。我们简称为互搏时间。
制作时,需要提前考虑到技能对攻击的放大效果,所以要多预留一些时间,不能把互搏时间做的太短。一般我们会预设一个2倍的效果提升。
还需要考虑重复操作导致无聊,时间也不能过长。主要参考的因素有技能的CD,攻击动作帧数。卡牌类游戏要考虑积攒能量的时间。一般2-3个技能循环为佳。
通过我们长时间对玩家体验的观察,战斗节奏往往设定在40-60秒之间。
回合制自然是以多少个回合作为评判标准。
同上理论,观察玩家行为,游戏前期我们往往会把战斗节奏定在3-5回合。游戏版本迭代后,回合数会略有延长。
我,会把回合类游戏的战斗节奏定义在3.1回合。为什么?我把它称为:“3.1理论”。
道理很简单, 如一层窗户纸。在标准模式下,玩家互搏时间3.1个回合,在游戏中实际体验为4回合。假设玩家有能力突破3.1个回合,把0.1的份额去掉,那么就会在3回合中解决战斗。在对战中获得决定性胜利。那么,玩家如何能去掉0.1的份额?当然是通过充值,或惊喜类收益啦:)
所以很自信的跟大家分享3.2理论,正因为我们在制作战斗雏形的时候,就已经将经济,付费,惊喜等各种元素考虑在内。简单的几个字,就能体现出游戏的本源。
我们先假定经过团队讨论,将战斗节奏雏形定义在50秒。也为了下文计算方便。接下来开始制作最基本的模型,攻防血。
2.2.一级属性
2.2.1. 简单聊聊防御
减法:伤害=攻击-防御
a) 优点:
i. 简单,玩家理解成本低。
ii. 战斗力计算一般为加减。所以防御在战斗力计算中更加准确。
iii. 可以做到不破防。注意:这真的是加减护甲公式的优点。这样我们可以更加轻松的制作等级压制,对玩家的攻击属性要求更高。更容易拉付费。
b) 缺点:
i. 当有暴击,技能等因素加入之后,导致计算成本提高。自己算一下就明白。一个公式有加减,又有乘除时,很难计算。
ii. 不能加入攻击速度。当游戏中有攻击频率差异时,导致很难计算。即便将护甲计算在攻击速度以内,很难让人理解。更适合回合制游戏。
除法:伤害=a*攻击^2/(攻击+防御)
a) 优点:
目前市场,养成较深,养成系统很多的情况下。只要保证攻击、生命、防御按照同比例成长,就可以保证战斗节奏稳定。这样可以在任何角度增加养成系统,而不破坏战斗节奏。
b) 缺点:
i. 战斗力是一个相对值,很难换算成具体战斗能力或者有效生命。计算困难。
ii. 攻防血某一项偏高高者偏低时,会严重破坏战斗节奏。
iii. 不同职业间,攻击和防御价值不匹配。最好能避免不同职业可以通用装备的系统。
乘法:战斗时间=生命/(攻击*(1-减伤))。减伤=护甲/(护甲+A)。A是这个阶段的成长标准。
a) 优点:
i. 非常好,非常合理的减伤方式。在同等级条件下,每获得1点护甲增加的有效生命的固定的。那么就能保证护甲、攻击和生命价值等价。
ii. 暴击等数据均为乘法方式,计算方便。
iii. A是唯一一个主观量。但计算平衡时,可以约掉。
iv. 战斗力计算方法显而易见,下文做简单推导。
我们可以把暴击等属性也乘在公式里,这个战斗力是实实在在的。
b) 缺点:
减伤公式=护甲/(护甲+A)。其中A为成长曲线。成长曲线中,往往只会添加等级参数。不会把所有系统的标准值全部计算在内。在目前市场形势下,各种养成系统太多,数值膨胀较快,容易冲击成长曲线。系统扩展较难。
比例:目前有一些更加简单粗暴的方式——直接使用一个比例。例如:物理减伤10%。
a) 优点:简单粗暴。可极端的体现职业间差异。
b) 缺点:
i. 这个比例无法理性算入战斗力。
ii. 无法正常成长。
护甲存在的意义是什么?不是单纯让玩家体验到有更多的花样。或者有职业间区分。如果你要做这个,不如把精力放在做技能和关卡上。
护甲实际上是让数值策划在另一个维度掌控游戏节奏。例如我们之前聊的不破防,例如可延长有效生命等。
但零护甲本身没有问题。很好算,玩家也不会因为没有护甲跟你较真。
以上几种减伤方式 ,笔者在实际工作中都遇到过。各有优劣。看项目,看团队,看我们对数值的把控能力。
目前除法公式比较流行,我们下文就拿它作为例子,继续探讨战斗力。
我习惯从PVP入手计算战斗。制作标准人,制作职业平衡。
我们先预设标准人是一个均衡类职业。并且符合标准战斗时间5 0秒。减 伤公式为:
20个成长阶段。即在这个阶段,通过等 级、强 化、装备等等一系列养成后的属性。表格如下:
我们设定生命,攻击,防御在战斗力中的占比相同。因为他们 同为一级 属性。那么:
下边我们增加一个职业,他是一个生存属性较高的职业:
成长阶段 | A战斗力 | A生命 | A攻击 | A防御 | AA互搏 | AB互搏 | BB互搏 | B生命 | B攻击 | B防御 | B战斗力 |
1 | 300 | 2500 | 100 | 100 | 50 | 70.3125 | 100.49 | 3000 | 80 | 134.38 | 334.38 |
2 | 600 | 5000 | 200 | 200 | 50 | 70.3125 | 100.49 | 6000 | 160 | 268.75 | 668.75 |
3 | 900 | 7500 | 300 | 300 | 50 | 70.3125 | 100.49 | 9000 | 240 | 403.13 | 1003.13 |
4 | 1200 | 10000 | 400 | 400 | 50 | 70.3125 | 100.49 | 12000 | 320 | 537.5 | 1337.5 |
5 | 1500 | 12500 | 500 | 500 | 50 | 70.3125 | 100.49 | 15000 | 400 | 671.88 | 1671.88 |
6 | 1800 | 15000 | 600 | 600 | 50 | 70.3125 | 100.49 | 18000 | 480 | 806.25 | 2006.25 |
7 | 2100 | 17500 | 700 | 700 | 50 | 70.3125 | 100.49 | 21000 | 560 | 940.63 | 2340.63 |
8 | 2400 | 20000 | 800 | 800 | 50 | 70.3125 | 100.49 | 24000 | 640 | 1075 | 2675 |
9 | 2700 | 22500 | 900 | 900 | 50 | 70.3125 | 100.49 | 27000 | 720 | 1209.38 | 3009.38 |
10 | 3000 | 25000 | 1000 | 1000 | 50 | 70.3125 | 100.49 | 30000 | 800 | 1343.75 | 3343.75 |
11 | 3300 | 27500 | 1100 | 1100 | 50 | 70.3125 | 100.49 | 33000 | 880 | 1478.13 | 3678.13 |
12 | 3600 | 30000 | 1200 | 1200 | 50 | 70.3125 | 100.49 | 36000 | 960 | 1612.5 | 4012.5 |
13 | 3900 | 32500 | 1300 | 1300 | 50 | 70.3125 | 100.49 | 39000 | 1040 | 1746.88 | 4346.88 |
14 | 4200 | 35000 | 1400 | 1400 | 50 | 70.3125 | 100.49 | 42000 | 1120 | 1881.25 | 4681.25 |
15 | 4500 | 37500 | 1500 | 1500 | 50 | 70.3125 | 100.49 | 45000 | 1200 | 2015.63 | 5015.63 |
16 | 4800 | 40000 | 1600 | 1600 | 50 | 70.3125 | 100.49 | 48000 | 1280 | 2150 | 5350 |
17 | 5100 | 42500 | 1700 | 1700 | 50 | 70.3125 | 100.49 | 51000 | 1360 | 2284.38 | 5684.38 |
18 | 5400 | 45000 | 1800 | 1800 | 50 | 70.3125 | 100.49 | 54000 | 1440 | 2418.75 | 6018.75 |
19 | 5700 | 47500 | 1900 | 1900 | 50 | 70.3125 | 100.49 | 57000 | 1520 | 2553.13 | 6353.13 |
20 | 6000 | 50000 | 2000 | 2000 | 50 | 70.3125 | 100.49 | 60000 | 1600 | 2687.5 | 6687.5 |
首先,我们要保证A和B的互搏时间是相等的,才说明A、B互相平衡。但是,如果B的战斗力依然按照A战斗力公式推导,就会导致平衡的情况下,战斗力不相同。
很多人到此就要么这样,战斗力不相同就不相同吧。要么会调整B的属性,保证战斗力相同,但会导致职业间互搏不平衡。这二者都是不负责任的,不可取的。
玩家是通过战斗力来评定胜负的。所以我们最好能保证A、B互搏平衡的情况下,A、B的战斗力也是相同的。所以我会改B的战斗力计算公式:
同理,我们可以加入第三个,第四个职业。但实际操作中,我们会发现,拍脑门定一个第三职业攻防血,并按着相同规律成长,导致AB互搏平衡,AC互搏平衡,CB互搏不平衡。如下表:
阶段 | 战斗力 | A生命 | A攻击 | A防御 | AA互搏 | AB互搏 | AC互搏 | B打C | C打B | BB互搏 | B生命 | B攻击 | B防御 | CC互搏 | C生命 | C攻击 | C防御 |
1 | 300 | 2500 | 100 | 100 | 50 | 70.31 | 38.19 | 53.42 | 52.99 | 100.49 | 3000 | 80 | 134.37 | 29.3 | 2000 | 120 | 90.95 |
2 | 600 | 5000 | 200 | 200 | 50 | 70.31 | 38.19 | 53.42 | 52.99 | 100.48 | 6000 | 160 | 268.73 | 29.3 | 4000 | 240 | 181.9 |
3 | 900 | 7500 | 300 | 300 | 50 | 70.31 | 38.19 | 53.42 | 52.99 | 100.48 | 9000 | 240 | 403.1 | 29.3 | 6000 | 360 | 272.85 |
4 | 1200 | 10000 | 400 | 400 | 50 | 70.31 | 38.19 | 53.42 | 52.99 | 100.48 | 12000 | 320 | 537.47 | 29.3 | 8000 | 480 | 363.8 |
5 | 1500 | 12500 | 500 | 500 | 50 | 70.31 | 38.19 | 53.42 | 52.99 | 100.48 | 15000 | 400 | 671.83 | 29.3 | 10000 | 600 | 454.75 |
6 | 1800 | 15000 | 600 | 600 | 50 | 70.31 | 38.19 | 53.42 | 52.99 | 100.48 | 18000 | 480 | 806.2 | 29.3 | 12000 | 720 | 545.7 |
7 | 2100 | 17500 | 700 | 700 | 50 | 70.31 | 38.19 | 53.42 | 52.99 | 100.48 | 21000 | 560 | 940.57 | 29.3 | 14000 | 840 | 636.65 |
8 | 2400 | 20000 | 800 | 800 | 50 | 70.31 | 38.19 | 53.42 | 52.99 | 100.48 | 24000 | 640 | 1074.93 | 29.3 | 16000 | 960 | 727.6 |
9 | 2700 | 22500 | 900 | 900 | 50 | 70.31 | 38.19 | 53.42 | 52.99 | 100.48 | 27000 | 720 | 1209.3 | 29.3 | 18000 | 1080 | 818.55 |
10 | 3000 | 25000 | 1000 | 1000 | 50 | 70.31 | 38.19 | 53.42 | 52.99 | 100.48 | 30000 | 800 | 1343.67 | 29.3 | 20000 | 1200 | 909.5 |
11 | 3300 | 27500 | 1100 | 1100 | 50 | 70.31 | 38.19 | 53.42 | 52.99 | 100.48 | 33000 | 880 | 1478.03 | 29.3 | 22000 | 1320 | 1000.45 |
12 | 3600 | 30000 | 1200 | 1200 | 50 | 70.31 | 38.19 | 53.42 | 52.99 | 100.48 | 36000 | 960 | 1612.4 | 29.3 | 24000 | 1440 | 1091.4 |
13 | 3900 | 32500 | 1300 | 1300 | 50 | 70.31 | 38.19 | 53.42 | 52.99 | 100.48 | 39000 | 1040 | 1746.77 | 29.3 | 26000 | 1560 | 1182.35 |
14 | 4200 | 35000 | 1400 | 1400 | 50 | 70.31 | 38.19 | 53.42 | 52.99 | 100.48 | 42000 | 1120 | 1881.13 | 29.3 | 28000 | 1680 | 1273.3 |
15 | 4500 | 37500 | 1500 | 1500 | 50 | 70.31 | 38.19 | 53.42 | 52.99 | 100.48 | 45000 | 1200 | 2015.5 | 29.3 | 30000 | 1800 | 1364.25 |
16 | 4800 | 40000 | 1600 | 1600 | 50 | 70.31 | 38.19 | 53.42 | 52.99 | 100.48 | 48000 | 1280 | 2149.87 | 29.3 | 32000 | 1920 | 1455.2 |
17 | 5100 | 42500 | 1700 | 1700 | 50 | 70.31 | 38.19 | 53.42 | 52.99 | 100.48 | 51000 | 1360 | 2284.23 | 29.3 | 34000 | 2040 | 1546.15 |
18 | 5400 | 45000 | 1800 | 1800 | 50 | 70.31 | 38.19 | 53.42 | 52.99 | 100.48 | 54000 | 1440 | 2418.6 | 29.3 | 36000 | 2160 | 1637.1 |
19 | 5700 | 47500 | 1900 | 1900 | 50 | 70.31 | 38.19 | 53.42 | 52.99 | 100.48 | 57000 | 1520 | 2552.97 | 29.3 | 38000 | 2280 | 1728.05 |
20 | 6000 | 50000 | 2000 | 2000 | 50 | 70.31 | 38.19 | 53.42 | 52.99 | 100.48 | 60000 | 1600 | 2687.33 | 29.3 | 40000 | 2400 | 1819 |
这导致B、C之间有误差。虽然误差很小,可以忽略,但是我们可以调整,达到一个更优值。因为我们有防御这个属性!我们可以通过这个维度调整C的生命与防御比例,尽量缩小误差。
我先用C攻击计算A、C互搏时间和B、C互搏时间。并把C生命和防御看做未知数带入这两个公式中计算。解一个二元方程即可得下表:
阶段 | 战斗力 | A生命 | A攻击 | A防御 | AA互搏 | AB互搏 | AC互搏 | B打C | C打B | BB互搏 | B生命 | B攻击 | B防御 | CC互搏 | C生命 | C攻击 | C防御 |
1 | 300 | 2500 | 100 | 100 | 50 | 70.31 | 38.19 | 52.99 | 52.99 | 100.49 | 3000 | 80 | 134.37 | 29.49 | 2138 | 120 | 78.62 |
2 | 600 | 5000 | 200 | 200 | 50 | 70.31 | 38.19 | 52.99 | 52.99 | 100.48 | 6000 | 160 | 268.73 | 29.49 | 4276 | 240 | 157.25 |
3 | 900 | 7500 | 300 | 300 | 50 | 70.31 | 38.19 | 52.99 | 52.99 | 100.48 | 9000 | 240 | 403.1 | 29.49 | 6414 | 360 | 235.87 |
4 | 1200 | 10000 | 400 | 400 | 50 | 70.31 | 38.19 | 52.99 | 52.99 | 100.48 | 12000 | 320 | 537.47 | 29.49 | 8552 | 480 | 314.5 |
5 | 1500 | 12500 | 500 | 500 | 50 | 70.31 | 38.19 | 52.99 | 52.99 | 100.48 | 15000 | 400 | 671.83 | 29.49 | 10690 | 600 | 393.12 |
6 | 1800 | 15000 | 600 | 600 | 50 | 70.31 | 38.19 | 52.99 | 52.99 | 100.48 | 18000 | 480 | 806.2 | 29.49 | 12828 | 720 | 471.75 |
7 | 2100 | 17500 | 700 | 700 | 50 | 70.31 | 38.19 | 52.99 | 52.99 | 100.48 | 21000 | 560 | 940.57 | 29.49 | 14966 | 840 | 550.37 |
8 | 2400 | 20000 | 800 | 800 | 50 | 70.31 | 38.19 | 52.99 | 52.99 | 100.48 | 24000 | 640 | 1074.93 | 29.49 | 17104 | 960 | 629 |
9 | 2700 | 22500 | 900 | 900 | 50 | 70.31 | 38.19 | 52.99 | 52.99 | 100.48 | 27000 | 720 | 1209.3 | 29.49 | 19242 | 1080 | 707.62 |
10 | 3000 | 25000 | 1000 | 1000 | 50 | 70.31 | 38.19 | 52.99 | 52.99 | 100.48 | 30000 | 800 | 1343.67 | 29.49 | 21380 | 1200 | 786.25 |
11 | 3300 | 27500 | 1100 | 1100 | 50 | 70.31 | 38.19 | 52.99 | 52.99 | 100.48 | 33000 | 880 | 1478.03 | 29.49 | 23518 | 1320 | 864.87 |
12 | 3600 | 30000 | 1200 | 1200 | 50 | 70.31 | 38.19 | 52.99 | 52.99 | 100.48 | 36000 | 960 | 1612.4 | 29.49 | 25656 | 1440 | 943.5 |
13 | 3900 | 32500 | 1300 | 1300 | 50 | 70.31 | 38.19 | 52.99 | 52.99 | 100.48 | 39000 | 1040 | 1746.77 | 29.49 | 27794 | 1560 | 1022.12 |
14 | 4200 | 35000 | 1400 | 1400 | 50 | 70.31 | 38.19 | 52.99 | 52.99 | 100.48 | 42000 | 1120 | 1881.13 | 29.49 | 29932 | 1680 | 1100.75 |
15 | 4500 | 37500 | 1500 | 1500 | 50 | 70.31 | 38.19 | 52.99 | 52.99 | 100.48 | 45000 | 1200 | 2015.5 | 29.49 | 32070 | 1800 | 1179.37 |
16 | 4800 | 40000 | 1600 | 1600 | 50 | 70.31 | 38.19 | 52.99 | 52.99 | 100.48 | 48000 | 1280 | 2149.87 | 29.49 | 34208 | 1920 | 1258 |
17 | 5100 | 42500 | 1700 | 1700 | 50 | 70.31 | 38.19 | 52.99 | 52.99 | 100.48 | 51000 | 1360 | 2284.23 | 29.49 | 36346 | 2040 | 1336.62 |
18 | 5400 | 45000 | 1800 | 1800 | 50 | 70.31 | 38.19 | 52.99 | 52.99 | 100.48 | 54000 | 1440 | 2418.6 | 29.49 | 38484 | 2160 | 1415.25 |
19 | 5700 | 47500 | 1900 | 1900 | 50 | 70.31 | 38.19 | 52.99 | 52.99 | 100.48 | 57000 | 1520 | 2552.97 | 29.49 | 40622 | 2280 | 1493.87 |
20 | 6000 | 50000 | 2000 | 2000 | 50 | 70.31 | 38.19 | 52.99 | 52.99 | 100.48 | 60000 | 1600 | 2687.33 | 29.49 | 42760 | 2400 | 1572.5 |
怎么样,护甲作为另一个维度,帮助了数值策划。同理计算C的 战斗力公式,保证A、B、C战斗力相等的条件下,达到理论平 衡。
我们常定义:命中、暴击、闪避等为二级属性。这些属性一般是以一个乘值的方式计算在公式中。所有二级属性皆通一理,下文只拿命中举例。
命中率判定,如果未命中,则造成0伤害。如果命中造成100%伤害。参与计算的平衡是防御减伤之后的数值。这样我们可以得到以下计算公式:
那么,我们既要保证命中率可以成长,又要避免命中战斗力不稳,我会这样处理。
命中率在游戏中产出,就以一个百分比形式产出。同时给它制作一条反属性,例如:未命中率。
这两条属性同时产出,并且同时成长。同上文计算一样,将其计算到多职业中。如下表:
阶段 | 战斗力 | A生命 | A攻击 | A防御 | A命中 | A反命中 | AVA真命中 | AA互搏 | AVB真命中 | BVA真命中 | AB互搏 | BB互搏 | B生命 | B攻击 | B防御 | B命中 | B反命中 | BVB真命中 |
1 | 300 | 2500 | 100 | 100 | 100% | 5% | 95% | 52.63 | 90% | 90% | 78.13 | 118.23 | 3000 | 80 | 134.39 | 95% | 10% | 85% |
2 | 600 | 5000 | 200 | 200 | 105% | 10% | 95% | 52.63 | 90% | 90% | 78.13 | 118.23 | 6000 | 160 | 268.78 | 100% | 15% | 85% |
3 | 900 | 7500 | 300 | 300 | 110% | 15% | 95% | 52.63 | 90% | 90% | 78.13 | 118.23 | 9000 | 240 | 403.17 | 105% | 20% | 85% |
4 | 1200 | 10000 | 400 | 400 | 115% | 20% | 95% | 52.63 | 90% | 90% | 78.13 | 118.23 | 12000 | 320 | 537.56 | 110% | 25% | 85% |
5 | 1500 | 12500 | 500 | 500 | 120% | 25% | 95% | 52.63 | 90% | 90% | 78.13 | 118.23 | 15000 | 400 | 671.95 | 115% | 30% | 85% |
6 | 1800 | 15000 | 600 | 600 | 125% | 30% | 95% | 52.63 | 90% | 90% | 78.13 | 118.23 | 18000 | 480 | 806.34 | 120% | 35% | 85% |
7 | 2100 | 17500 | 700 | 700 | 130% | 35% | 95% | 52.63 | 90% | 90% | 78.13 | 118.23 | 21000 | 560 | 940.73 | 125% | 40% | 85% |
8 | 2400 | 20000 | 800 | 800 | 135% | 40% | 95% | 52.63 | 90% | 90% | 78.13 | 118.23 | 24000 | 640 | 1075.12 | 130% | 45% | 85% |
9 | 2700 | 22500 | 900 | 900 | 140% | 45% | 95% | 52.63 | 90% | 90% | 78.13 | 118.23 | 27000 | 720 | 1209.51 | 135% | 50% | 85% |
10 | 3000 | 25000 | 1000 | 1000 | 145% | 50% | 95% | 52.63 | 90% | 90% | 78.13 | 118.23 | 30000 | 800 | 1343.9 | 140% | 55% | 85% |
11 | 3300 | 27500 | 1100 | 1100 | 150% | 55% | 95% | 52.63 | 90% | 90% | 78.12 | 118.21 | 33000 | 880 | 1477.96 | 145% | 60% | 85% |
12 | 3600 | 30000 | 1200 | 1200 | 155% | 60% | 95% | 52.63 | 90% | 90% | 78.12 | 118.21 | 36000 | 960 | 1612.32 | 150% | 65% | 85% |
13 | 3900 | 32500 | 1300 | 1300 | 160% | 65% | 95% | 52.63 | 90% | 90% | 78.12 | 118.21 | 39000 | 1040 | 1746.68 | 155% | 70% | 85% |
14 | 4200 | 35000 | 1400 | 1400 | 165% | 70% | 95% | 52.63 | 90% | 90% | 78.12 | 118.21 | 42000 | 1120 | 1881.04 | 160% | 75% | 85% |
15 | 4500 | 37500 | 1500 | 1500 | 170% | 75% | 95% | 52.63 | 90% | 90% | 78.12 | 118.21 | 45000 | 1200 | 2015.4 | 165% | 80% | 85% |
16 | 4800 | 40000 | 1600 | 1600 | 175% | 80% | 95% | 52.63 | 90% | 90% | 78.12 | 118.21 | 48000 | 1280 | 2149.76 | 170% | 85% | 85% |
17 | 5100 | 42500 | 1700 | 1700 | 180% | 85% | 95% | 52.63 | 90% | 90% | 78.12 | 118.21 | 51000 | 1360 | 2284.12 | 175% | 90% | 85% |
18 | 5400 | 45000 | 1800 | 1800 | 185% | 90% | 95% | 52.63 | 90% | 90% | 78.12 | 118.21 | 54000 | 1440 | 2418.48 | 180% | 95% | 85% |
19 | 5700 | 47500 | 1900 | 1900 | 190% | 95% | 95% | 52.63 | 90% | 90% | 78.12 | 118.21 | 57000 | 1520 | 2552.84 | 185% | 100% | 85% |
20 | 6000 | 50000 | 2000 | 2000 | 195% | 100% | 95% | 52.63 | 90% | 90% | 78.12 | 118.21 | 60000 | 1600 | 2687.2 | 190% | 105% | 85% |
我们同上文去定义不同职业,命中反馈在战斗力中的系数即可。
顺便提一句,我们完全可以制作一套命中等级数值。他和三维一样是一个绝对值数。通过复杂的公式换算成一个命中率。然后参与战斗计算。操作性很好,玩家也可以理解。计算方法同上:
根据不同职业的命中等级换算命中等级战斗力公式。
方法大同小异,就不做表了。
2.4.1. 加值的好处与问题
战斗力为什么是加值?即:
先说好处:非常容易理解。毕竟战斗力是给玩家参考的数值。越容易理解,玩家越容易接受。
例如:某个装备提供了各种属性。我们可以根据上文公式计算出这个件装备的战斗力。当我佩戴这件装备时,我的总战斗力提高的值等于装备战斗力。相反,其它公式会导致误差,增加玩家的理解成本。
说说问题:这个公式成立的条件是,战斗节奏不变的前提下。如果战斗节奏发生变化,这个公式将会崩溃。例如:A玩家将100的战斗力,全部投放在生命。B玩家将100的战斗力,全部投放在攻击。两个玩家收益是不等价的。
但是,我并不担心这个问题。就目前市场情况看,养成系统多而广。我们只需要准确的做属性投放,就可以完美规避这个问题。
所以,最后我还是选择了这个公式,并且把它推荐给大家。
2.4.2. WOW的战斗力
他的诸多能力值都可以准确的反馈在公式中。推导过程上文已经聊过了,请见2.2.1简单聊聊防御相关内容。
但是它有一个致命缺点,战斗力反馈在UI上不好理解。因为需要综合角色全身属性才能得到真实战斗力,而单件装备上仅有的战斗力无法计算。这样在目前市场上,玩家需要利用战斗力评判装备好坏的作用就荡然无存了。
既然战斗力变的无效,那么何必还要计算。所以不推荐这样的算法。虽然我不得不承认它很精确。
放弃谁都可以,千万不要放弃自己!
在本章节的最后,我们讨论一下是否有必要在一款游戏中区分职业属性。
卡牌游戏应该是有这样的考虑的。但是我们没有必要那么复杂的去计算战斗平衡。目前来看,卡牌游戏中单职业平衡不存在。我们最多是可以以战斗力作为依据,计算经济方便。并且也没必要费尽心思去为每一张卡牌制作战斗力计算公式。
单职业养成就更加困惑了。我们虽然已经完美的制作了PVP的平衡。但是PVE上是不平衡的。因为单看属性,攻击是保证PVE速度的唯一标准。那么只要存在职业区分,就无法制作PVE平衡。
唯一的变通是可以让防高职业更多的使用群攻技能。或更加讲究多职业间的配合打怪。
3.1.战斗力算法
最后,聊聊技能吧。技能要不要算入战斗力?
算是可以算的。我们可以根据技能CD,技能动作长度,以及普通攻击动作长度计算技能效率。然后把这个效率乘进战斗公式。或者将效率对攻击力提升的值,转换成攻击力的提升,加在战斗力中。
那么,我们是不是要考虑这个技能击中多少个目标?或者空放?或者被打断?冲锋类位移技能的价值怎么算?控制类技能的价值怎么算?最后我们只会得到一个非常不准确的值。
我的建议是技能不算入战斗力。或者,技能在属性战斗力之外,根据技能等级额外制定一套规则。并保证不同职业,对应等级的技能之间价值平衡。
3.2.技能的作用
承上文,我们聊到要制作不同职业之间技能价值的平衡。先聊聊技能的作用。
没错,区分职业,区分玩法,丰富关卡性。回归游戏雏形可以没有技能这个东西。放眼现在的作品,技能就是战斗的玩点。利用此,给玩家带来选择性,差异性。
技能在数值策划手中,是干什么的呢?是最后一步,调平衡用的。
同样是分模块化研发,我们假定已经完成了属性计算。现在开始做技能。当我们发现某职业过强时,调整它的属性是一个非常庞大的工作量。并且会因此影响其他职业,养成平衡等等。那么,我们就来调它的技能,这样一个相对单纯的模块。
可以说,技能是我做平衡的保底。包括我们可以利用技能体系制作等级压制等效果。
罗里吧嗦说了一堆,也不敢说什么高盐阔论,只是工作中的一些心得。给大家抛砖,欢迎一起讨论。
近期热文