帝国3吧 关注:76,075贴子:2,193,413

【兵种基础研究】帝国3范围攻击原理详解

只看楼主收藏回复


炮兵的战斗力始终是困扰大家的一个主题,作为帝国3的爱好者却不知道手里的炮有何用处这可真是难办的事呀….因此本文也就产生了,然而本文虽然起始于炮兵的研究但并非只是对炮兵的研究,事实上本文解决了范围攻击伤害的全部计算问题。
我写本文的初衷是由于近日吧中有了这么一个贴,内容是由吧友转自日本的帝国3论坛,并翻译过来的。主要内容是研究鹰炮和管炮的区别,然而其中结论和推导过程有许多问题。
上文提到的翻译贴地址如下
http://tieba.baidu.com/p/1413620765
本文分为3个部分
颠覆篇 对上面所述之转载的内容提出质疑并将其推倒
问道篇 揭示了笔者对真理探求的过程以及对范围攻击进行实践性的研究和思考
解惑篇 揭露范围攻击的本质,对各种炮兵以及近战步兵骑兵的范围攻击的合理猜想与解疑


IP属地:北京1楼2012-02-19 04:47回复

    颠覆篇
    要说为什么会先对这篇文章提出质疑呢?因为这篇文章从结构上就匪夷所思,这位日本玩家首先提出了自己的实验结果,然而这个实验居然是炮兵针对自己的天敌轻型骑兵的….
    接着又莫名其妙地做了一些多炮的实验,不过幸好,最后还总结了一下结论,不然我真的没明白他做那实验的目的是什么。
    这一贴的第一次总结:
    管炮因为对目标额外伤害低,让攻击更有效率,
    这使得它可以比鹰炮更能对骑兵造成较大伤害。
    (意思就是造成的总伤害不变,但是管炮对目标的伤害是0,
    因此目标的额外伤害全都转嫁到范围内的其他单位,让管炮杀敌更有效率)
    而之后的续集又将近战兵种摆进来讨论并最终得出了第二次总结:
    炮兵与近战兵种两者共同的特征
    原攻击加上范围攻击的总伤害不会超过原攻击力的3倍
    如果在对方密集排列的情况下,攻击范围也许可以超过3
    炮兵(除管炮以外)的特征
    对于直接攻击的目标会确实造成伤害
    范围攻击的部分,即使对方是密集排列的情况也只会造成10~20%不到的范围伤害
    管炮,近战兵的特征
    对方是在密集排列的情况下,不会对攻击目标造成伤害(这是他自己眼花了,嗯嗯)
    范围攻击伤害与被攻击对象队伍密集程度相关,对方单位在紧贴目标的情况下对其造成的伤害甚至可接近100%。
    当对方单位处于密集排列的状态时,不论攻击范围多大,都只能造成三个单位的伤害,但对方若分散至一定程度的话,就能造成多一些单位的伤害。
    如上所述就是这个日本人的全部观点了。因此我很有理由提出以下的质疑:
    其一,文章中并无太多实验数据,甚至只有单次数据,那个多个炮轰炸的数据就根本没法看了,完全是无聊。而且对管炮做的分析是以多次结果而不是以单次攻击结果来说的,因此从归纳法和统计学上来说,这样的粗糙论据不足以信服。还有所谓的“管炮对目标不造成伤害而是将伤害转嫁到范围中的其他单位因此造成了更多的伤害“这种语言更是不知所云。
    其二,前一篇说2种炮,而后一篇说骑兵…这…这并无关联的2类兵种使得我似乎被蒙蔽了…但仔细一想,这种手法不是自我催眠吗?这就像因为主观认为对,所以只说了有利自己的证据,而并没有把全局搞清楚。因此我完全可以肯定这篇文章的结论不是窥一豹而见全身,而是盲人摸象。


    IP属地:北京2楼2012-02-19 04:47
    回复

      问道篇
      站在一个心中早已拨云见日的人的立场上来讲,实际上本文并非是针对这位日本玩家,也并非只是对炮兵伤害的研究,而是对所有范围攻击模式基于计算的反向原理性推导过程,当然更重要的是,这是在对远距炮兵进行4000多次样本采集,对近战范围单位进行了1000多次样本采集后并且综合其结果进行深入思考所得到的结论。
      炮兵对人群攻击的伤害表现实验:
      本实验分为
      实验1对密集人群进行攻击
      实验2对分散人群进行攻击
      实验3对大规模部队进行攻击
      实验4对指定组合目标进行攻击
      实验全部样本数:
      实验1 ,2000例
      实验2 ,1877例
      实验3 ,350例
      实验4, ,100例
      实验结果:
      火箭炮:
      2人受到100%伤害,无任何误伤
      1人受到100%伤害,多人误伤伤害约为全伤的20%左右,
      奥斯曼巨炮:
      2人受到100%伤害,无任何其他伤害
      2人受到100%伤害,有3人受到20%左右伤害
      1人受到100%伤害,1人受到50%伤害,多人误伤约在全伤的20%左右
      易洛魁轻炮
      2人受到100%伤害,无任何其他伤害
      2人受到100%伤害,有多人受到20%左右伤害
      1人受到100%伤害,多人误伤约在全伤的1/6左右
      管炮
      1人受到100%伤害,2人受到50%-80%伤害
      1人受到100%伤害,2人受到50%伤害,3人受到15%伤害
      象炮
      3人受到100%伤害,其余3人受到20%-32.5%伤害
      最过分的一次样本,全目标受到如下伤害:
      165/200,173/200,156/200,155/200,159/200,158/200
      …..
      因为在受测的13种常规火炮中其他样本与上面的结果基本是一致的,因此不再加以篇幅。但请大家要明白,本文是由大量的前期工作所推导和总结出的结论。
      无论受测火炮如何改变,最后主要分为3种结果:
      1,有2人受到全打击,其余安然无恙(这类情况在测试火箭炮,神火飞鸦时非常常见)
      2,有1人受到全打击,其余受到少量伤害(这类情况有较大比例,尤其在目标不密集时)
      3,和1差不多,但其余的单位有些受到零星伤害。
      我们先来看看象炮这种特殊的火炮,以攻击力40计算,这次极致的攻击造成了238点伤害,若按象炮的伤害上限来看,该炮种具有500%范围伤害能力,也就是说当攻击力40时,一次攻击的极限打击力为六倍,即240点伤害。虽然这门炮只有1个攻击范围,却几乎达到了伤害极限,相比来说其他许多炮兵即便是对抗极为密集的目标也难以达到甚至接近极限。并且在普通情况下象炮都能够造成至少3倍以上的伤害。不过造成这一范围伤害的原因是所有单位的间距都相对比较近,若是较远处的单位则伤害就相当小了。然而无论多么密集,火力范围多么大,从未有一种炮可以造成如此大比例的伤害(将近500%)因此我们几乎可以断定这就是由于象炮本身伤害上限决定的。注意,是几乎。
      再来我们看一看火箭炮和神火飞鸦,这2种炮的共同点是没有炮弹弹道弹射的二次伤害,而它们在上面实验中主要造成2种结果:
      其一,有2个目标承受全额伤害,而其余目标丝毫未损。
      其二,有1个目标承受全额伤害,其余目标受到10%-30%的伤害
      由于不存在二次弹射伤害,这样的结果似乎是其区别于象炮以及其他弹道二次伤害炮兵的炮种的一个特点。因为具有二次伤害的炮兵很少会有2个目标承受全额伤害而其余目标丝毫未损的情况。真是很少很少。
      之后则是管炮了,这种炮有个特别的地方,那就是在对密集的目标开火时,根本不会造成2个目标全额伤害,也就是非瞄准的目标似乎不会获得全额范围伤害。并且在对足够密集的目标开火时经常性地只有3个目标受到伤害。
      另外我们了解一下伤害上限在200%而不是像象炮一样是500%的炮兵。其代表的就是鹰炮,重加农炮,土耳其巨炮等常见炮。这类炮在试验中往往会造成2个结果:
      其一,有2个目标承受全额伤害,而其余目标略有损伤。
      其二,有1个目标承受全额伤害,其余目标受到10%-30%的伤害
      注意,这类炮与神火飞鸦以及火箭炮的情况略微有所不同,难道是弹道二次伤害造成的吗?


      IP属地:北京3楼2012-02-19 04:48
      回复

        解惑篇
        既然是解惑,那么我就开门见山地先说出我的结论:
        综合了本人对近战兵种的实验采样,结果表明帝国3中只有“一”种统一的范围伤害算法和“三”种范围伤害模型。
        ·理论讲解前的准备:
        既然结论已经给出,我就先从这“一”种统一的范围伤害算法来说。首先有三点共识是大家不能否认的,那就是:
        1, 受到直接攻击的单位不会受到范围攻击,
        2, 受到范围伤害的单位其承受的伤害不会超过受到直接攻击的单位。
        3, 在范围伤害范围内受到伤害的具体值与该单位和受到直接攻击的单位的距离有关,并成反比例趋势。也就是说,离直接命中的那个单位越远,受到伤害越小。
        前2点应该很好理解,针对第三点,我们列出一个受到伤害随距离增加而渐渐减小的数列,我管这个表述方式叫做,“范围伤害效果分布图”:
        A 100% 100% C100% 90% 80% D70% 60% 50% B40% 30% 20% 10%
        在下面的文章中我将以此效果图的形式讲解和例举许多范围伤害模型。因此请务必先理解我这种粗糙的表达方式。
        上面这行数据中,单位A被直接命中,我们假设每个数字中间的间隔是1个单位距离,那么距离直接命中单位为1或2个距离的那个单位将同样受到100%的伤害,而距离为3的单位受到90%,距离为8的单位受到40%的伤害。例如这里的例子中C受到100%范围伤害,D受到80%-70%之间的范围伤害,B受到50%-40%之间的范围伤害。另外请注意此图中受到100%伤害的范围很大,这是一个理解本人算法理论的关键点。
        本人所设想的理论中虽然有3类模型,但算法只有一种,因此这很符合奥卡姆剃刀理论对于简单真理的追寻,这表明至少在经验主义下我是占据优势的。请大家注意的是,例如量子物理学中的“测不准原则”这类高深的理论也仅仅是在经验主义下占有优势就已经被世人所接受和承认了。
        叉烧要配米线的范围伤害理论算法模型:
        在帝国3中范围攻击的算法是一种链式算法,即每个在伤害范围内的目标单位将依次受到伤害,而受到伤害的具体值与和直接命中的单位的距离有关,并且受到伤害的单位顺序也和距离有关。范围伤害总是会找上距离最近的那个单位。另外要注意的是攻击链中出现的单位不会再次进入同一次攻击的攻击链。
        在这种算法中我们首先要作出一个假设,若一门火炮的范围攻击伤害为200%,那么其意义是,这门火炮的范围伤害上限小于攻击力的200%,注意,我用的不是小于等于,而是小于。这是本理论算法的关键所在。以公式可以表示为:
        造成的范围伤害 < 范围伤害上限
        本理论的“三”种范围伤害模型:
        ·其一是以火箭炮,神火飞鸦以及各种近战步兵,骑兵为代表的单次范围伤害模型;
        假设一门火箭炮对A进行攻击,火箭炮的攻击力是300,范围伤害是600,是典型的范围伤害200%火炮。
        A 100%B C100% 100% 90% 80% D70% 60% 50% 40% 30% 20% 10%
        各个单位的相对距离如上面所示。则链式攻击过程如下:
        第一次直接攻击造成A受到300伤害
        第二次范围攻击造成B受到300伤害
        第三次范围攻击造成C受到300伤害
        然而事实上C将不受到伤害,这是因为该3次攻击伤害总和已经不符合
        “造成的范围伤害 < 范围伤害上限”这一条件。因此这次攻击只能对A造成300伤害,B造成300伤害,其余各个单位不受伤害。
        这次伤害的伤害链可表示为: A(300)--B(300)--C(0)
        这一结果符合实验中提到的“2人受到100%伤害,无任何误伤”这种情况。
        另外这一过程中并不是首先对C造成伤害,而是在对B进行伤害后就计算对C伤害的可能性,当进行到对C攻击时若这次链攻击只剩下100%的范围伤害上限,则将使这次攻击值为0。
        因此我们可以得到这次攻击链中算法的过程图


        IP属地:北京4楼2012-02-19 04:50
        回复



          IP属地:北京5楼2012-02-19 04:50
          回复

            因此我们看到当范围伤害为攻击力的200%时,只要直接目标之后的第一个范围伤害目标(这里指B)受到了100%伤害,整个攻击链就将不再继续产生伤害。这是因为剩下的100%攻击伤害在让C承受时有超过范围伤害上限的风险。注意,这一流程中并不判断C所在的位置所产生的伤害比例是否真的会承受100%伤害,只要剩下的伤害上限少于或等于攻击力的100%时,就将只能对下一单位造成0的伤害并在之后停止攻击链。由于攻击链停止,因此不会再有人受到范围伤害。
            那么如果第一个范围伤害目标(这里指B)并没有受到100%伤害,假设B受到80%伤害,那么剩余范围伤害上限为120%,则C将继续受到其与A距离之差所得的伤害。我们假设C若受到15%伤害,那么剩余范围伤害上限依然超过100%,为105%,会判定下一次攻击不会超过伤害上限,因此攻击范围内若还有其他目标则将继续受到伤害,直到剩余范围伤害上限下降并低于100%时,下一个目标无论距离如何将只受到0的伤害。
            至此我们应当已经了解了无二次弹射的范围伤害上限为200%的火炮所造成的伤害会如何了。事实上即便范围伤害上限高于200%我们也能算出来了。
            P.S.我们如果用日本武士或双手剑士做同样的目标密集型攻击实验则很容易造成对2个目标造成100%伤害而却没有其他目标受到任何伤害的结果,这点说明此类火炮与近战伤害是完全相同的计算系统,因此也会出现200%伤害范围共有的这个问题。另外如果用伤害为20,范围上限为68的骷髅武士时则结果就完全不同了,在密集目标实验中,他能轻松斩到4个目标因为68的范围伤害上限早已超过300%,不会存在100%的“判定危机”。而在斩到4个目标并造成100%伤害后,除去本体攻击外,范围伤害上限也消耗了300%,已经小于100%,因此这次攻击的攻击链中第5个目标就只受到0点伤害了。
            另外在近战实验中,约有1/300的几率,一个日本武士能砍出25+25+25的伤害,但这并不意味着日本武士能够逃离本人的法则。在实战中,有经验的玩家会记得经常会发现0生命值却没有倒下的单位,这是因为该单位生命值在0.5与0之间,尽管四舍五入表示为0,但仍然算是生存。因此当这名武士给直接目标造成100%伤害,而第一次范围攻击对第二目标造成99%攻击时,剩余范围伤害上限则是101%,因此第三目标依然能够受到符合其距离的伤害,如果第三目标十分接近直接目标的话,则仍然可以受到接近全额伤害的打击。而其显示值则很有可能是你的范围伤害到达了上限。但实际上在小数点后面的位数上仍未达到上限。而这一样本发生几率极小则更加证明了推理的准确。
            在往下看本文的同时要注意的是,在上表中第一次B受到100%范围伤害时,C受到了0伤害并”进入攻击链”。这对理解下一个模型(二次弹道火炮模型)有帮助。
            ·其二是以鹰炮,土耳其巨炮,重加农炮,长炮等为代表的弹道二次伤害模型;
            这类与第一类的区别在攻击链结尾。第一类模型中,当上述流程进行到C受到了0伤害时,攻击链结束。而在第二类中,攻击链并不会结束,此时攻击链将进入到二次弹射伤害环节:
            比如在单位密度较密集时就会产生下面这样的攻击链


            IP属地:北京6楼2012-02-19 04:51
            回复



              IP属地:北京7楼2012-02-19 04:51
              回复

                在此图中,ABC密集排列,DEF略分开一点
                因此攻击链前三位将会使ABC,若此时以火箭炮或神火飞鸦攻击A,B,C中的一个,那么将会造成100%--100%--0%的情况。也就是说A,B,C中将阵亡2人,但第三个人将以100%的几率存活,绝无第二种情况出现。由此完全可以证明了200%范围伤害火炮在这种情况下于攻击链的终结判定时将给予0伤害的这个事实。并由此证明了攻击链以及攻击链末端判定皆为事实。而由此证明了本人的理论成立。


                IP属地:北京9楼2012-02-19 04:56
                回复
                  当然,若使用其他的大型火炮也同样可以证明,因为A,B,C中未受到伤害的那个单位绝不会被第二次弹射误伤,原因是该单位已经在第一次攻击中进入了攻击链,并受到0伤害,将免疫第二次弹射带来的伤害,但周围的3个单位则将可能受到二次弹射伤害,而使用神火飞鸦和火箭炮则周边的几个单位也将不会受到任何伤害,因为这2个单位在没有二次弹射设定,在A,B,C中的2人受到伤害,第三人受到0伤害后攻击链就终结了。


                  IP属地:北京10楼2012-02-19 05:00
                  回复
                    另外我要指出的是,帝国3中范围伤害的结果是极为精密的,距离不同伤害不同这点甚至精确到小数点后3位。NND,写着写着就写到5点了


                    IP属地:北京11楼2012-02-19 05:05
                    回复
                      另外本文并没有完结一切的意思,而只是作为一个开端,希望更多更优秀的研究报告出炉


                      IP属地:北京12楼2012-02-19 05:08
                      回复
                        看完了,经典大作啊,叉烧哥是专家啊


                        IP属地:河南来自掌上百度13楼2012-02-19 05:59
                        回复
                          叉烧叔威武~~先顶再看.


                          15楼2012-02-19 06:24
                          回复
                            你看我说叉烧叔不会钓鱼的~~~~顶~!!!


                            IP属地:美国16楼2012-02-19 07:36
                            回复