RAT红警社区

查看: 263|回复: 6

[其他内容] 【搬运】论RA3塔防地图的难度计算

[复制链接]

538

积分

383

好评

127

帖子

鹰击长空

Rank: 4

积分
538
发表于 2017-11-12 19:48:00 | 显示全部楼层 |阅读模式
本帖最后由 KTA-S 于 2017-11-12 19:51 编辑
论RA3塔防地图的难度计算
作者:Allies.Shimada与
Ngen(关键数据和一些重要思路的提供者,许多观念的引入者,改进者
1 前言
在开始之前,先对Ngen前辈致以最诚挚的感谢。如果没有他的需求和许多关键的指导,我现在不可能写下这篇介绍导论。
根据Ngen前辈的指导,要考虑的因素主要可以划分为四个主要板块:
I 防御板块
这一板块包括:
敌对单位的移速、生命值、类型和防御塔造成伤害的修正比(以及在某些特殊类别中需要考虑敌对单位的攻击);
敌对单位的波数,每波间隔,每波敌对单位的数量;
防御塔的单次输出、攻击速度、建造时间、攻击范围及伤害范围(以及允许玩家建设的防御塔的种类)。
II 经济及产能板块
这一板块包括:
玩家所能获得的初始资金和后续收入;
防御塔的建造资金修正。
III 地图板块
这一板块包括:
地图的总面积;
游戏的总时间;
敌对单位的行进路径与转向次数;
允许的最大玩家个数。
IV 社会学板块
这一板块实际上是最麻烦的,因为不同玩家的考虑不同,阵营偏好不同,心理承受能力不同,操作水平不同,这使得这一部分成为了最大的,难以控制的变量。这一板块包括:
防御塔的种类分布及摆放;
地图本身可能对阵营选择造成的导向性;
波数的多少,游戏时间以及其他可能导致玩家过度焦虑或者采取不恰当操作的因素。
本文会依次对上述问题进行讨论,且尽量对问题进行理想化处理。
2 防御板块
2.1敌对单位
根据前面已经提到过的,这里将会讨论的有:敌对单位的移速、生命值、类型和防御塔造成伤害的修正比(以及在某些特殊类别中需要考虑敌对单位的攻击)。
2.1.1 敌对单位的移速与类型
敌对单位的移速对玩家的反应时间和防御塔的最大有效输出有明显的影响。同时,地图制作者可能会对敌对单位的移动速度做一定的修改。
容易看出的,敌对单位的移速与塔防地图的难度成正相关关系。
据此,可以引出第一个函数来表示单位的移速:
f1=3d/(vwA+vwL+vwO)
在这之中,d表示地图上敌对单位所需要经过的总路程,其单位为像素。vwA,vwL,vwO分别代表空中单位、地面单位和海上单位的移动速度的加权平均数,其单位应是像素/秒,但在这里人为规定其单位是像素。如此,输出的f1会是一个无量纲指数。
关于上述加权平均数的计算,这里给出举例说明:
如计算vwA。其计算方式应该是:
vwA=(n1v1+n2v2+...+nnvn)/n
在这之中,举例而言,n1代表一种单位的总个数,v1代表这种单位的移动速率,单位是像素/秒。n是总的单位个数。
这是地图制作者没有修改单位的移速的情况。然而,地图制作者可能根据地图制作的实际需要对单位的移动速率做一些修改。这时候就需要引入一个新的函数来表示这些变量。
f2=vR/vO
这之中,vR是所有单位实际移动速率的简单算数总和。vO是按游戏原设定所有单位移动速率的简单算数总和。在没有修改移动速率的情况下,明显的,f2=1。
于是我们可以得出2.1.1部分的总结函数:
V=f1f2
这里运用乘法的主要目的是将f1和f2的影响互相结合。本文后面运用乘法将主要出于相同理由,届时将不再作解释。
2.1.2 敌对单位的生命值
敌对单位的生命值明显与地图难度成正相关。敌对单位的生命值越高,就越难以消耗。
据此,引出这一部分的第一个函数:
f3=ltAltLltO
这其中的ltA表示所有空中单位生命值的加权平均数,ltL为所有水面单位生命值的加权平均数,ltO为所有地面单位生命值的加权平均数。关于这三个部分的具体计算方法,其方法与已经提到过的vwA的计算方法类似,在这里不再举例。
类似的,地图制作者也可能对单位生命值进行修改。相应地,可以建立类似的函数关系:
f4=lR/lO
这之中,lR表示所有单位生命值的简单算数和。lO表示按游戏原设定所有单位生命值的简单算数和。明显的,在没有改动的情况下,f4=1。
于是我们可以得出2.1.2部分的总结函数:
L=f3f4
2.1.3 敌对单位的类型
敌对单位不同的类型在不同程度上会对地图的难度产生影响。举例而言,在空军单位数量大的情况之下,留给玩家的反应时间会相对比较少,这样游戏难度就可能上升。
由此我们可以引出一个函数进行衡量:
T=f5=(Ak1/N)+(Ok2/N)+(Lk3/N)
(注:本文中小型函数会按照出现的顺序以数字标识。这里f5就是此部分的总结函数。)
这其中,A表示空中单位的总数,O表示水面单位的总数,L表示地面单位的总数,N表示单位总量。k1,k2,k3均为引入的无量纲常量。这里使用加法的原因是空中、水面、地面三个部分相对独立。
k1,k2,k3分别用于衡量空中单位,水面单位和地面单位数量对地图难度的总影响。一般而言,数量对游戏难度值的影响比较相近。然而实际上,空中单位一般而言移动速度较快而血量较低,地面单位一般移动速度较低而血量相对高,水面单位两者都相对适中。这里给出一些数值(暂定,欢迎讨论):
k1=0.55
k2=0.5
k3=0.45
2.1.4 伤害修正比
根据Ngen前辈的指导,“伤害修正比”是指防御塔对不同类型的单位所产生的实际伤害和防御塔设定伤害的比值。即(这里用“C”表示伤害修正比):
C=HR/HO
    这其中,HR表示对某类型单位造成的实际伤害,HO表示防御塔原有的设定伤害。容易看出地,当防御塔攻击某种单位有加成,C大于1;当防御塔攻击某种单位有减成,C介于0和1之间(恒大于0);当没有任何特殊效果的情况下,C等于1。
明显的,在针对某一种特定单位修正比越高的情况下,地图对玩家越有利,难度值越低。由此,可知修正比与游戏难度成反相关。
这里可以引出相应的函数表示这一关系:
Q=f6=(A/C1‘N)+(O/C2’N)+(L/C3‘N)+(I/C4’N)
在这之中,A是空中单位总量,O是水面单位总量,L是载具单位总量,I是步兵单位总量,N是总单位量。C1‘,C2’,C3‘,C4’分别是对空输出,对海输出,对陆输出,对步兵输出的总修正比的加权平均数。
关于C1‘,C2’,C3‘,C4’的具体计算,这里进行举例说明:
如C1‘的计算,其方法如下:
C1‘=(C1+C2+...+Cn)/n
这其中,C1,C2等代表的是所有允许玩家建造的可以提供对空输出的防御塔的修正比的具体值。n是这些防御塔的总共的种类数。
2.1.5 敌对单位的攻击(选读)
在目前常见的塔防之中,敌对单位是没有攻击能力的。然而在一些特殊的地图中,则需要计算这一指数。明显的,这一指数越高,地图难度系数越高。
这里给出用于度量的函数:
A=f7=(a1n1+a2n2+...+annn)/n或A=f7=1
在这之中,an代表某一种敌对单位给定的输出值,nn代表这种单位的数量,n代表单位总量。
当敌对单位不存在攻击能力时,f7=1。
于是我们终于可以给出2.1部分的总结函数:
E=VLTQA
2.2 波数
这一部分将会对如下内容进行讨论:
敌对单位的波数与总的应对时间;每波间隔;每波敌对单位的数量。
2.1 敌对单位的波数与总的应对时间
明显的,敌对单位的波数和总的应对时间与游戏难度成正相关。由此给出函数:
W=f8=nTV/TT
这之中,n指的是波数,TV指的是整个游戏时间中所需要应对敌对单位进攻的时间,TT是游戏总时间。
2.2 每波间隔
明显的,每波之间的间隔时间越长,玩家的准备时间就越充足。因此,每波间隔与地图难度成反相关。
因此可以给出相关函数:
I=f9=1/f10
f10=(t1+t2+...+tn)/n
这其中,tn代表的是每一次间隔的具体时间,单位为秒。n代表的是总的间隔次数。
2.3 每波敌对单位的数量
每波敌对单位的数量越多,地图的难度越高。因此,这个量与地图的难度成正相关。
因此可以给出相关函数:
R=f11=(r1+r2+...+rn)/n
这其中,rn代表的是每一波具体出现的单位数量,n是总的波数。
于是我们可以给出2.2部分的总结函数:
N=WIR
2.3 防御塔
这里将会讨论的有:防御塔的单次输出、攻击速度、攻击范围及伤害范围、允许玩家建设的防御塔的种类,以及建造时间。
2.3.1 防御塔的单次输出
防御塔的单次输出越高,玩家的防守效率就也越高,因此防御塔的单次输出与地图难度成反相关。由此可以给出计算函数:
O=f12=1/f13
f13=((aR1/aO1)+(aR2/aO2)+...+(aRn/aOn))/n
在这之中,aRn为某种防御塔的实际输出(按地图作者设定),aOn为这种防御塔的原设定输出,n为总的防御塔种类数。
2.3.2 攻击速度
防御塔的攻击速度越高,玩家的防守效率相应也越高。因此防御塔的攻击速度与地图难度成反相关。由此可以给出计算函数:
S=1/f15
f15=((sR1/sO1)+(sR2/sO2)+...+(sRn/sOn))/n
在这之中,sRn为某种防御塔每分钟实际的输出次数(按地图作者设定),sOn为这种防御塔原设定每分钟实际的输出次数,n为总的防御塔种类数。
2.3.3 攻击范围及伤害范围
防御塔的攻击范围越高,玩家的防守效率也越高。因此防御塔的攻击范围与地图难度成反相关。由此可以给出用于计算的函数:
P=f16=1/f17
f17=((gR1/gO1)+(gR2/gO2)+...+(gRn/gOn))/n
在这之中,gRn为某种防御塔实际的攻击范围(按地图作者设定),其单位为像素。gOn为这种防御塔原设定的攻击范围,其单位为像素。n为总的防御塔种类数。
2.3.4 防御塔种类
玩家能使用的防御塔种类越多,能够进行的防御塔有效组合也就越多,地图的难度就越简单,因此这一变量与地图的难度成反相关。由此可以给出函数:
G=f18=1/f19
f19=(a/A)+(o/O)+(l/L)
这其中,A,O,L分别表示总的可以提供对空输出、对海输出、对陆输出的防御塔种类数,a,o,l分别表示地图作者允许玩家使用的可以提供对空输出、对海输出、对陆输出的防御塔种类数。
2.3.5 建造时间
建造时间越短,对玩家越有利。
由此可以得出函数:
X=f20=trt/tot
这其中,trt表示总的防御塔实际建造时间,tOt表示总的防御塔设定建造时间。
于是我们可以给出2.3部分的总结函数:
V=OSPGX
由是我们可以给出防御板块的总结函数:
D=ENV
(注:D代表“defence”)
3 经济及产能板块
在这一部分,我们将会讨论:
玩家所能获得的初始资金和后续收入;
防御塔的建造资金修正。
3.1 初始资金
明显的,玩家的初始资金越充足,所能同时建立的生产线的数量就越多,防守也就越简单。因此初始资金与地图的难度成反相关。
于是可以给出相关的函数:
M=f21=1/f22
f22=e/10000
这之中e表示玩家的初始资金。在f21中分母为10000的目的是为了小型化数据。
3.2 后续收入
玩家能获得的后续收入越高,防守也会越简单。因此后续收入与地图难易程度成反相关。
由此可以给出相关的函数:
I=f23=1/(m+0.5r)
这之中,m表示的是玩家可以开采的矿脉总量,r表示的是玩家可以占有的油井的总量。
3.3 防御塔的建造资金修正
有的地图中,作者会修改防御塔的建造金额。建造金额越低,对玩家越有利。
由此给出函数:
F=f24=fRt/fOt
这之中,fRt表示的是实际的总建设资金(所有建筑和单位的建设资金的算数和),fOt表示的是原设定的总建设资金(所有建筑和单位的建设资金的算数和)。
由是我们可以给出经济板块的总结函数:
E=MIF或E=kMIF,0.1<=k<=0.3
(这里E代表“economy”。由于许多地图作者制作时使经济的影响很难体现出来,在这种情况下可以使用带k的式子。k值可以由作者本人在范围内酌情决定以减少E在总结果中的影响。)
4 地图板块
在这一部分我们将会讨论:
地图的总面积,敌对单位的行进路径与转向次数;
游戏的总时间;
允许的最大玩家个数。
4.1 地图的总面积,敌对单位的行进路径与转向次数
明显的,行进路径越长,对玩家越有利。然而,路径过宽会导致玩家放置的防御塔效率下降。
同时,转弯越多,难度越低。这是因为敌对部队在转弯处容易慢下来,且玩家在转弯处部署防御塔更有效率。
由此,可以给出函数:
f25=1/(SR/ST)
f26=1/n
f27=w/10
R=f25f26f27
在这之中,SR表示路径的总占地面积,ST表示地图的总面积,n表示拐弯处的数量,w表示道路的平均宽度(单位:格)。
以盟军的多功能步兵炮塔为例,其射程为10格左右。因此在f27中使用(w/10)来度量道路造成的难易程度。
4.2 游戏的总时间
一般而言,游戏的时间越长,玩家准备的越充分。因此给出函数:
T=f28=1/t
t表示预期的游戏总时间。
4.3 玩家数量
一般而言,玩家的数量越多,在地图上的分工就越详细,地图难度相应越低。
因此有函数:
P=f29=1/p
其中p代表地图最大能够支持的玩家数量。
因此可以给出地图部分的总结函数:
M=RTP
(这里M代表“map”。)
5 社会学板块
这一部分我们将会对玩家面对地图时的心理进行揣测。这一部分也是最难以数量化的。主要要讨论的具体内容包括以下几点:
防御塔的种类分布及摆放;
地图本身可能对阵营选择造成的导向性;
波数的多少,游戏时间以及其他可能导致玩家过度焦虑或者采取不恰当操作的因素。
5.1 防御塔
再次感谢Ngen前辈。根据Ngen前辈提出的“极端分析法”的思想,可以采取最有效的和最无效的两种防御塔摆放方式,然后取中间值。
最有效的摆放方式即最为贴合地图作者给出敌方单位类型和数量的防御方式。其内容可以用下列函数进行描述:
f30=a+o+l, a=(A/N)e, o=(O/N)e, l=(L/N)e
这其中,A为空中单位总数,O为水面单位总数,L为地面单位总数,N为总单位数,a为提供防空输出的防御塔,o为提供对水面输出的防御塔,l为提供对地输出的防御塔,e为地图上可以放置防御塔且能起到有效作用的方格个数。
而最无效的摆放方式可以用类似的表示方式进行描述:(字母所代表的含义不变)
f31=a’+o’+l’, a’=(L/N)e, o’=(O/N)e, l’=(A/N)e
这样我们就有了最无效的排列方式。
由是,玩家平均效率可以表示为:
f32=(((a’+a)/a)+((o’+o)/o)+((l’+l)/l))/3
然而,玩家效率升高,地图难度会下降。于是有下列总结函数:
D=f33=1/f32
5.2 地图对阵营选择的导向性
一般的,当地图陆地越大,玩家越倾向选择苏联;当地图水面越大,玩家越倾向选择帝国,而盟军在塔防中一般较少被使用,所以暂不考虑。一般性的,苏联和帝国的塔防效率类似而略高于盟军,而苏联又高于帝国(因为核心的移动需求)。
地图的阵营导向性可以如此表示:
f34=(k1L/S)+(k2O/S)
这其中,L是地图的总陆地面积,O是地图的总水域面积,S是地图的总面积(以上三个量采用相同单位),k1(苏联),k2(帝国)是被引入用于表示阵营效率的常量。
这里给出k的值(暂定,欢迎讨论):
k1=0.6,
k2=0.55。
相应的,对游戏的难易度表示为:
C=f35=1/f34
5.3 波数的多少,游戏时间以及其他可能导致玩家过度焦虑或者采取不恰当操作的因素
一般而言,波数越多,游戏时间越长,每一波敌对单位数量出现的不寻常波动都容易使玩家焦虑、紧张而导致玩家效率下降。玩家效率越低,地图相对难度越高。
对于这一部分可以用如下的函数描述:
f36=tw
f37=σ2
这其中,t是游戏总时间,w是总波数,σ2是所有波中敌对单位数量的总的方差。
由是有总结函数:
W=f36f37
于是有这一板块的总结性函数:
S=DCW
(这里S代表”society”。)
6 结论
由上面所有的推论,我们终于可以得出本篇导论的结论:
(难度系数以η表示):
η=DEMS
这其中,η越大,地图的难度越高。
这个结论看起来是相对美观的。
当然,为了防止数字过大,也可以使用下面的体系:
η=(DEMS)1/2
这样可以有效地缩小数字。但应只使用一种指数体系以防止混淆。
7 结语
    这篇关于难度值计算的导论就到此结束了。再一次衷心地感谢Ngen前辈的指导。这些公式的可操作性可能比较低,如有可能,我个人希望开发某一特定的程序使用这些函数进行计算,这样可以省去很多时间。

本文已经获得原作者转载许可,未经许可不准搬运
好的又是我,我是来自于RAT传媒组的岛田爱里寿

今天我又给大家一个全新的搬运,不过这次是由两个人共同完成的呢!

两位都是在RA数字化论里面造诣很深的大触啊!

希望下次能够继续看到两位如此精彩的分析!


传送门:

那么这次的搬运就到此结束了!希望各位能够多多支持RAT社区!如果对社区的发展有什么更好的建议,欢迎来此
贴进行回复,(传送门我会在下面放出)将你的建议告诉我们,亦或是加入RAT社区 交流群(群号:575951564 )一起参与社区的讨论!
你的意见是社区发展最好的动力!


那我们后会有期!


本次研究内容也同步了PDF版本
论RA3塔防地图的难度计算.pdf (298.71 KB, 下载次数: 38)

评分

参与人数 5好评 +10 贡献 +2 收起 理由
伊吹風 + 2 nb得可以通神
洪敬233 + 2 看不懂。。。
油漆智障小BB + 2 很给力!
zyb123 + 2 很给力!
jkjuuu + 2 + 2 看不懂......

查看全部评分

458

积分

364

好评

258

帖子

钢铁洪流

Rank: 3Rank: 3

积分
458
QQ
发表于 2017-11-12 20:15:19 | 显示全部楼层
看不懂,但貌似很认真,厉害!
我本可以忍受黑暗,如果我不曾见过太阳;然而阳光已使我的荒凉,成为更新的荒凉。
回复 支持 反对

使用道具 举报

1130

积分

845

好评

860

帖子

决胜千里

哪怕头上顶点绿

Rank: 6Rank: 6

积分
1130
发表于 2017-11-12 20:23:57 | 显示全部楼层
擦 你们这个也太牛逼了啊
B站地址:http://space.bilibili.com/38797056/#!/
DuckBBB
回复 支持 反对

使用道具 举报

1016

积分

919

好评

265

帖子

版主

积分
1016
QQ
发表于 2017-11-12 23:09:19 | 显示全部楼层
我不是,我没有,千万别说是我啊!我完全不能接受这样的分析
混乱中立
回复 支持 反对

使用道具 举报

386

积分

322

好评

105

帖子

钢铁洪流

Rank: 3Rank: 3

积分
386
发表于 2017-11-12 23:15:37 | 显示全部楼层
nbnbnb 必须顶
这年头
回复 支持 反对

使用道具 举报

317

积分

290

好评

147

帖子

钢铁洪流

Rank: 3Rank: 3

积分
317
QQ
发表于 2017-11-12 23:36:00 | 显示全部楼层
牛逼,rat可以改名raXiv了
钠。
回复 支持 反对

使用道具 举报

66

积分

64

好评

8

帖子

游骑先锋

Rank: 2

积分
66
发表于 2017-11-13 09:50:17 | 显示全部楼层
为什么要让我这个学文的看这个..
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表