数值角度搭建COC
发表于2015-08-06
一、概述 | ||||||||
类COC游戏或会增加,数值设计方面会遇到不少问题。 | ||||||||
最难迈出的,或是第一步。 | ||||||||
本段文字,提供一个COC模型搭建的第一步思路。仅作参考。 | ||||||||
二、详细描述 | ||||||||
1、先定下基础数值线 | ||||||||
取COC的黄毛数据。 | ||||||||
野蛮人 | ||||||||
优先攻击 | 攻击类型 | 占据人口 | 训练时间 | 移动 | 攻击 | 所需兵营 | 攻击距离 | |
无 | 近战 | 1 | 20s | 16 | 1s | 1 | 0.4 格 | |
等级 | 每秒伤害 | 生命 | 建造 | 升级 | 试验室 | 大本营 | 升级时间 | |
1 | 8 | 45 | 25 | N/A | N/A | N/A | N/A | |
2 | 11 | 54 | 40 | 50000 | 1 | 1 | 6 hours | |
3 | 14 | 65 | 60 | 150000 | 3 | 5 | 1 day | |
4 | 18 | 78 | 80 | 500000 | 5 | 7 | 3 days | |
5 | 23 | 95 | 100 | 1500000 | 6 | 8 | 5 days | |
6 | 26 | 110 | 150 | 4500000 | 7 | 9 | 10 days | |
观察得知,黄毛的生命是有规律可循,伤害无规律可循。 | ||||||||
则先定义一个黄毛的 生命 与 伤害的基础公式。 | ||||||||
再定义1-2本基础建筑的生命、攻击。 | ||||||||
建筑的生命,与黄毛的攻击对应,取一个近似公式。 | ||||||||
建筑的攻击,定义为黄毛血量的一半,并与总空间挂钩。 | ||||||||
注释:升本时候,兵力总空间会上升。 | ||||||||
其后,用黄毛进行模拟,略微调整 黄毛攻击力,建筑的血量。 | ||||||||
这一步,我们会得到COC最初状态。 | ||||||||
2、定义T与远程兵。 | ||||||||
在黄毛的基础上,观察弓手与胖子的数据: | ||||||||
弓箭 | ||||||||
攻击类型 | 占据人口 | 训练时间 | 移动 | 攻速 | 兵营 | 攻击距离 | ||
远程 | 1 | 25秒 | 24 | 1秒 | 2 | 3.5 格 | ||
等级 | 每秒伤害 | 生命 | 建造 | 升级 | 试验室 | 大本营 | 升级时间 | |
1 | 7 | 20 | 50 | N/A | N/A | N/A | N/A | |
2 | 9 | 23 | 80 | 50000 | 1 | 1 | 12 hours | |
3 | 12 | 28 | 120 | 250000 | 3 | 5 | 2 days | |
4 | 16 | 33 | 160 | 750000 | 5 | 7 | 3 days | |
5 | 20 | 40 | 200 | 2250000 | 6 | 8 | 5 days | |
6 | 22 | 44 | 300 | 7500000 | 7 | 9 | 14 days | |
巨人 | ||||||||
攻击目标 | 攻击类型 | 占据人口 | 训练时间 | 移动 | 攻速 | 兵营 | 攻击距离 | |
防御类 | 近战 | 5 | 2分钟 | 12 | 2秒 | 4 | 1 格 | |
等级 | 每秒伤害 | 每下伤害 | 生命 | 建造 | 升级 | 试验室 | 大本营 | |
1 | 11 | 22 | 300 | 500 | N/A | N/A | N/A | |
2 | 14 | 28 | 360 | 1000 | 100000 | 2 | 4 | |
3 | 19 | 38 | 430 | 1500 | 250000 | 4 | 6 | |
4 | 24 | 48 | 520 | 2000 | 750000 | 5 | 7 | |
5 | 31 | 62 | 670 | 2500 | 2250000 | 6 | 8 | |
6 | 43 | 86 | 940 | 3000 | 6000000 | 7 | 9 | |
转换两个兵种的数据为(DPS/人口*HP/人口) | ||||||||
注释:这里需要理解兰切斯特方程。网传的DPS*HP/人口,是仅针对远程兵对抗有效。 | ||||||||
DPS/人口*HP/人口 数据对比 | ||||||||
黄毛 | 弓箭 | 巨人 | 黄毛/弓手 | |||||
1 | 18.9737 | 11.8322 | 11.4891 | 1.60357 | ||||
2 | 24.3721 | 14.3875 | 14.1986 | 1.69398 | ||||
3 | 30.1662 | 18.3303 | 18.0776 | 1.6457 | ||||
4 | 37.47 | 22.9783 | 22.3428 | 1.63067 | ||||
5 | 46.744 | 28.2843 | 28.8236 | 1.65265 | ||||
6 | 53.479 | 31.1127 | 40.2095 | 1.71888 | ||||
对比发现,我们可取黄毛的数据,除以1.632得到弓箭与巨人的数据,再加以美化。 | ||||||||
定义巨人的单位为5。 | ||||||||
调节弓手生命与攻击比例,使得弓手生命略微低于黄毛生命。 | ||||||||
调节巨人生命与攻击比例,使得巨人攻击略微比黄毛高。 | ||||||||
这样,我们得到基础远程兵种,与基础肉盾兵种。 | ||||||||
3、定义规则,最后进行规则对抗。 | ||||||||
我们得到了3个基础兵种。是时候推出溅射防御的单位。 | ||||||||
即迫击炮(溅射,群伤)。 | ||||||||
这时候将对抗的平衡重新拉了过来。 | ||||||||
迫击炮的攻击设置为弓箭手生命的一半,逐渐提升至满值。 | ||||||||
4、在以上基础上,推出其他规则。 | ||||||||
以上为基础模型。 | ||||||||
但缺少了空中单位。 | ||||||||
则陆续推出空中打击单位。 | ||||||||
继而退出空中防御单位。 | ||||||||
至此,雏形已然搭建完毕。 | ||||||||
但我们这时候会发现防御建筑的攻击已经很高,我们不能加大攻击单位的生命。 | ||||||||
我们需要治疗。则出现天使。 | ||||||||
5、在以上基础上陆续衍化,完善。 | ||||||||
并针对不同版本测试,调整。 | ||||||||
三、关于兰切斯特方程的解释 | ||||||||
兰切斯特线性率: | ||||||||
X=A的单个伤害能力*A的数量 | ||||||||
Y=B的单个伤害能力*B的数量 | ||||||||
比较X与Y大小,谁大谁赢。 | ||||||||
线性率适用于远程对远程兵种。 | ||||||||
兰切斯特平方率: | ||||||||
X=A的单个伤害能力*A的数量的平方 | ||||||||
Y=B的单个伤害能力*B的数量的平方 | ||||||||
比较X与Y大小,谁大谁赢。 | ||||||||
平方率适用于近战兵种对近战兵种。 | ||||||||
或远程兵种被近战兵种接近。 | ||||||||
这里的伤害能力指我方攻击敌方一次会伤害多少百分比血量。 | ||||||||
转换公式可把A、B攻击,A、B血量带入。 | ||||||||
举例说明: | ||||||||
假定A的单位战斗力是B的一半,但是数量是B的三倍。假定B有1000人,A有3000人。如果是面对面的战斗,A方损失264人即可消灭掉B方的1000人。现在A需要先接近B再进行面对面的战斗,按兰切斯特线性律,A付出1000人的代价歼灭B500人以后接近,在2000对500的近战中,付出187人的代价歼灭B方500人,总损失1187人对1000人。兰切斯特方程没有考虑战场上的许多要素,并不完全,对局部的战役有参考价值,对整个战争的结局无能为力。兰切斯特方程在战争摸拟的时候会被经常使用,恩格尔曾经使用兰切斯特方程摸拟硫磺岛战役,计算结果与事实非常接近。 ——百度百科摘录 | ||||||||
在类COC游戏中,我们可以把A、B分别看成进攻方与防御方,从而进行粗略计算。 | ||||||||
四、关于战斗对抗的解释 | ||||||||
单对单: | ||||||||
已知信息 | ||||||||
定义战斗回合。 | ||||||||
定义敌方损我方血量百分比。 | ||||||||
我方 | 怪物 | |||||||
攻击 | ATT1 | 攻击 | ATT2 | |||||
血量 | HP1 | 血量 | HP2 | |||||
战斗节奏设为 X | ||||||||
我方损血百分比设为 Y | ||||||||
求解怪物血量与攻击 | ||||||||
怪物血量 HP2= X*ATT1 | ||||||||
怪物攻击 ATT2= HP1*Y/x | ||||||||
多对多(类似COC): | ||||||||
已知信息 | ||||||||
攻击方 | 防御方 | |||||||
攻击 | ATT1 | 攻击 | ATT2 | |||||
血量 | HP1 | 血量 | HP2 | |||||
单位空间 | M | 守卫数量 | X | |||||
总空间 | N | |||||||
借助公式 | ||||||||
ATT1*HP1*N²/M² = ATT2*HP2*X² | ||||||||
求解防御方血量 | ||||||||
先预先设计防御方攻击力,或与攻击方血量HP1挂钩。 | ||||||||
多对多(近战): | ||||||||
已知信息 | ||||||||
兵种1 | 兵种2 | |||||||
攻击 | ATT1 | 攻击 | ATT2 | |||||
血量 | HP1 | 血量 | HP2 | |||||
单位空间 | M1 | 单位空间 | M2 | |||||
总空间 | N | |||||||
借助公式 | ||||||||
ATT1*HP1*N²/M1² = ATT2*HP2*N²/M2² | ||||||||
灯下黑 | ||||||||
2015/7/22 |