方舟生存进化吧 关注:389,725贴子:6,160,245
  • 14回复贴,共1

底层变异机制-详解

取消只看楼主收藏回复

变异本身毫无技术含量,相信各位早已学会。
相比变异本身,难度更大的是如何让变异过程简化,批量化,方便管理,以及可持续。但是这不在本帖的讨论范围之类
本帖仅将剖析变异底层游戏机制,以便有需要的朋友进行参考学习
注:本帖对象为有一定基础知识的玩家,新手看不懂建议先去学习更基础的内容
SD羽毛南巨镇楼,并没有什么特别的含义


IP属地:湖北来自Android客户端1楼2023-09-08 14:37回复
    简单来说,变异就是一种,在后代繁育过程中,属性点点数相比遗传所得属性增长的现象。变异只可能增长属性点,不可能降低。


    IP属地:湖北来自Android客户端2楼2023-09-08 14:41
    回复
      首先,你要清楚一点,那就是遗传和变异的顺序。遗传是在变异之前的,也就是说,当一个生物遗传自父母的属性确定下来之后,才会进行变异的程序


      IP属地:湖北来自Android客户端3楼2023-09-08 14:44
      回复
        遗传的内容就不说了。这里稍微提一嘴,遗传来自父母属性时,较高的属性有55%的概率选中,而较低属性有45%概率选中,而不是50%的概率


        IP属地:湖北来自Android客户端4楼2023-09-08 14:48
        收起回复
          接下来介绍变异机制
          一个子代恐龙,变异的判定流程会重复进行三轮
          判定的流程如下
          1.选择将要变异的属性点。不能升级的属性点是不会被选中的(比如非解飞下飞行龙的移速点,标准海洋龙的氧气点)
          2.选择父方或者母方作为变异的来源(详细的在后面讲)
          3.概率判定。概率2.5%,进行下一步,否则本轮变异判定失败,进行下一轮变异判定,若是最后一轮判定,则结束判定
          4.施加变异和颜色变异
          然后进行下一轮判定或者结束判定


          IP属地:湖北来自Android客户端5楼2023-09-08 15:01
          回复
            等等,这里有一点问题,我稍微去考证一下


            IP属地:湖北来自Android客户端11楼2023-09-08 15:31
            回复
              // Mutation is tied to one parent (there is a 55/45 chance for it to be the parent with the best stat)
              var chanceForParent = this.NumberOfLevelUpPointsApplied[randomStatIndex] <= withMate.NumberOfLevelUpPointsApplied[randomStatIndex]
              ? 0.55000001f : 0.44999999f;
              var randomParentRoll = NewRandom();
              var randomMutationIsFromMate = randomParentRoll <= chanceForParent;


              IP属地:湖北来自Android客户端12楼2023-09-08 15:48
              回复
                也就是说,wiki上的描述是错误的,较高的一方才有更大概率被选中


                IP属地:湖北来自Android客户端13楼2023-09-08 15:50
                回复
                  于是这里对7楼进行订正修改
                  下面将对上面一些内容进行补充说明
                  2.选择父方或者母方作为变异的来源。
                  注意!这个和属性点遗传自父方还是母方无关!属性点遗传在变异判定之前就已经完成!他是一个独立的判定!
                  选择父母中的一个作为突变的来源,其中属性点较低的一方有45%的概率被选中,而属性点较高的一方有55%的概率被选中。
                  这里会进行一个判定。如果被选择为“变异的来源”的龙,他的变异计数器达到了20点的上限,那么这一轮的变异判定失败,将进行下一轮变异或者结束判定


                  IP属地:湖北来自Android客户端14楼2023-09-08 15:52
                  回复
                    只有这样,才能推导出第10楼的结论
                    而这个第二步,也是变异计数器限制变异的根本原理。我们能够很容易地从中推导出以下结论
                    1.只要父母双方的变异计数器都小于20,则变异概率不会有任何影响
                    2.如果父母双方中,只有一方的变异计数器大于等于20,而另一方小于20,有两种情况
                    (仅针对单一属性)
                    -当属性点较高的一方变异计数器到达限制时,变异的概率降低55%
                    -当属性点较低的一方变异计数器到达限制时,变异的概率降低45%
                    3.当父母双方的变异计数器都大于20,则没有变异的可能


                    IP属地:湖北来自Android客户端15楼2023-09-08 15:53
                    回复
                      第四步就是在一系列判定成功之后,实施变异的步骤
                      1.属性点增加。有一个判定,就是属性点必须小于255,如果小于255,则会增加2个属性点 2.并在选中的“变异来源”增加1点变异计数器点数
                      3.进行一次颜色变异,随机进行一次颜色变异。90%概率变异出正常颜色,10%变异出染料颜色。所有颜色都有被选中的可能。变异颜色的位置是随机,有可能变异到生物没有的位置上


                      IP属地:湖北来自Android客户端16楼2023-09-08 16:04
                      回复
                        像这样的判定,会进行三轮
                        也就是说,在父母双方变异计数器都小于20的情况下
                        发生变异的概率是7.314%
                        至少发生两次变异的概率是0.1844%
                        发生三次变异的概率是0.0015625%,即6.4万分之一的概率
                        四变异从机制上就不存在,你看到谁说自己四变异,给他两巴掌


                        IP属地:湖北来自Android客户端17楼2023-09-08 16:14
                        收起回复
                          机制介绍完毕,接下来稍微提几句
                          如果是屁股0变,公种不断累积变异点数的话,在公种变异计数器抵达20之前,概率不会受到影响。而在抵达/突破20后,概率会降低55%,以前网传的是“大幅降低变异概率”,这个说法实际上很模糊。实际上,降低55%的概率,并没有特别离谱,翻倍龙房的规模就基本上可以弥补。对于某些动辄上千头龙的龙房,其实这个影响并不算特别大


                          IP属地:湖北来自Android客户端18楼2023-09-08 16:22
                          回复
                            负数变异核心就是让龙的变异计数器小于20,没啥特殊的
                            变异计数器上限为2 147 483 647,超过这个数字就会变为负数
                            利用负数变异可以让龙始终保持最大的变异概率,而公种超计数器变异比它的变异概率低55%,可以根据自身情况进行选择,不见得负数变异就是更好的


                            IP属地:湖北来自Android客户端19楼2023-09-08 16:26
                            回复
                              一个龙的变异计数器,等于父母双方的变异计数器之和+变异增加的计数器
                              注意,你在族谱里面看到的父系,母系变异点数,那是跟他们父母有关的。而这个帖子中说的计数器点数,都是龙的计数器点数,是他们自身的点数。我估计还有人不清楚,但是我也不想再强调了


                              IP属地:湖北来自Android客户端20楼2023-09-08 16:31
                              收起回复