【详解】刷怪塔的设计原理及技巧

1L喂熊,求大家别X

楼主 defanive2  发布于 2012-09-19 05:45:00 +0800 CST  
本帖子从理论的方向分析刷怪塔的设计原理和技巧
意在给予想自己设计刷怪塔的玩家一些指引
不会给出具体的设计和建造指南,还需大家灵活运用,设计出高效的刷怪塔

楼主 defanive2  发布于 2012-09-19 05:47:00 +0800 CST  
刷怪塔,在本帖里面特指通过大面积的人工建筑,将自然循环中刷出的怪物集中处理的装置
刷怪笼、刷动物的塔等不在本帖的讨论范围

楼主 defanive2  发布于 2012-09-19 05:49:00 +0800 CST  
刷怪循环

刷怪循环是MC里面的一个概念,一次刷怪循环就会做一次刷怪尝试
在每一个game tick中(1/20秒)都会进行,也就是1秒会进行20次刷怪循环
刷怪塔的最基本的原理就是利用刷怪循环,建造人工建筑,将刷出的怪进行处理

楼主 defanive2  发布于 2012-09-19 05:52:00 +0800 CST  
刷怪循环过程

一个刷怪循环进行的过程比较复杂,在这里只讨论怪物的刷怪情况:
判断怪物数量是否达到怪物总数封顶,如果达到封顶则取消本次循环
选择一种刷出的怪物,进行一组怪物的刷怪尝试
从主角为中心的15x15个chunk(一个chunk是16x16x256大小)中随机选取一个可用的位置,作为这组怪物的刷怪中心
一个可用位置的判断是:这个位置必须是非实体方块和非液体方块;下方必须是实体方块;上方必须是非实体方块;怪物不会被其他方块窒息;主角空间距离24格之外
如果位置符合,这一组进行12次刷怪尝试,最多刷出4只怪物
每次刷怪尝试,从41x41x1的空间内选择一个可用的位置
然后进行亮度判断,根据亮度不同会随机选择是否否决本次刷怪,亮度从0到7否决率增加,7以上否决率100%;如果收到天顶亮光(阳光或者是月光),否决率再增加50%
史莱姆和小黑增加90%的否决率
如果一切都符合并且未被否决,那么在这个位置刷出一个怪物

楼主 defanive2  发布于 2012-09-19 06:05:00 +0800 CST  
主角距离与怪物行为



根据怪物与主角的空间距离,怪物会有不同的行为
注意这里是空间距离,也就是说是以主角为中心的球体范围
16以内:刷怪笼刷怪
24以外:刷怪循环刷怪
32以外:怪物不运动,随机消失
128以外:怪物立即消失
关于32格以外时的随机消失,在每个game tick中怪物有1/800的机会消失
平均来说一个怪物离开主角32格之后只能存活40秒
精确的来说,半衰期是27.73秒

楼主 defanive2  发布于 2012-09-19 06:12:00 +0800 CST  
刷怪塔构造

虽然刷怪塔设计各有不同,但是基本构造都很接近
暗室,作为怪物生成的地方
收集系统,将暗室中刷出的怪物收集到一个出口
屠杀系统,将怪物杀死或杀半死,直接给予玩家资源或者让玩家刷经验

楼主 defanive2  发布于 2012-09-19 06:15:00 +0800 CST  
有效与无效面积

引入两个概念,有效面积和无效面积
有效面积,由刷怪塔设计本身决定,指怪物可以刷出而且能被刷怪塔收集系统收集的面积
无效面积,由周围环境及主角位置决定,指怪物可以刷出的但是不能被刷怪塔收集系统收集的面积

根据刷怪循环,每次刷怪循环都会从全部面积中抽取一个位置进行刷怪
抽中有效面积的几率就为 有效/(有效+无效)
由于1秒能进行的刷怪循环为20次,如果抽中有效面积的几率高的话,也就意味着刷怪塔的效率高

从几率公式可以看出提高效率的2种方法:提高有效面积,和减少无效面积

提高有效面积是很常用的方法,玩家只需要不断扩建刷怪塔即可
但是扩建也有瓶颈,例如受空间限制和设计限制等等
将抽中有效面积的几率公式变形,可以得到 1-无效/(有效+无效)
这是一个反比例函数,也就是说,其斜率变化随着有效面积增加而减缓
也就是说,一开始扩大有效面积效果将会非常显著(极端的来说,从0到1,造成了刷怪塔不刷怪和刷怪的区别)
而越往后扩大有效面积效果将会越来越不明显

减少无效面积,玩家可以点亮周围15x15个chunk中的地表和洞穴,或者将洞穴填满
极限的来说,如果玩家可以把无效面积降到0,那么全部怪物都可以刷在有效面积内,若一切条件符合,1秒内可以刷出40只怪物
但是这个方法的缺点也是很明显,由于普通生存世界中无效面积非常大,要降低就十分耗时
如果不考虑洞穴,仅地表无效面积就有15x15x16x16=57600

楼主 defanive2  发布于 2012-09-19 06:29:00 +0800 CST  
刷怪封顶

刷怪循环中,首先进行的是刷怪封顶的判断
如果周围怪物数量达到了刷怪封顶数量,那么刷怪循环就被退出
刷怪封顶的计算公式是 Cm x Chunks / 16
Cm是根据刷怪的种类相关的一个常数,怪物最高,动物其次,水生物最低(再次我们只考虑怪物)
Chunks是周围17x17个chunk中可刷怪的chunk的总数
注意,虽然刷怪范围是15x15个chunk,但是计算刷怪封顶的时候是用的17x17的范围
计算的结果是当周围17x17个chunk都可以刷怪的时候,怪物封顶是79个
也就是说,当到达了79个怪物之后,就不再进行刷怪了,直到怪物数量降低到79以下

因此引出了以下结论:
1、杀怪越快,刷怪越快
2、要保证周围17x17个chunk中没有无效面积,但是又要保证至少每个chunk都有面积可以刷怪

1主要体现在刷怪塔设计上,收集系统和杀怪系统速度越快越好
根据刷怪几率可以算出刷怪塔设计的刷怪速度,如果说收集和杀怪系统无法达到这个速度的话,那么收集系统和杀怪系统的速度就是刷怪塔的最终速度,就算刷怪速度再快也没用
2一般在生存模式中不需要考虑,由于生存模式的地图大部分包含大量的地下洞穴,保证了周围17x17个chunk都可以刷怪,也就是保证了刷怪封顶是79个
但是如果玩家决定要清理17x17个chunk中的全部无效面积的话,请保证在每个chunk中至少有一个方块符合刷怪条件,并且把这个方块点亮
这样的话,能保证刷怪封顶仍然是79,但是那一格不会刷出怪物影响效率

楼主 defanive2  发布于 2012-09-19 06:42:00 +0800 CST  
刷怪塔的选址

刷怪循环和怪物行为,以及1.0以后导致的世界高度增加到256,对刷怪塔设计有很大的影响
由于世界高度增加到256了,但是怪物仍然保持128格外的消失范围,让提高刷怪塔效率简单很多
一般选择将刷怪塔建在海上,周围15x15个chunk都被海洋覆盖
这样无效面积直接降低了很多
而主角的等待位置位于海床的128格以上
这样在无效面积内刷出的怪会马上消失,不会堆积到刷怪封顶,让刷怪循环一直继续
而所有有效面积都应该分布在主角的24格空间距离以外,这样有效面积才可以真正的刷怪

楼主 defanive2  发布于 2012-09-19 07:15:00 +0800 CST  
结论

以下是一些提高刷怪塔效率的方法
适合于目标高效率的刷怪塔
1、无效面积全部位于玩家128格以外
2、有效面积全部位于玩家32格以外,128格以内
3、保证周围17x17个chunk每个至少有一格可以刷怪
4、增大刷怪塔有效面积
5、减小无效面积(点亮洞穴、填埋洞穴)
6、加快收集和杀怪系统速度

楼主 defanive2  发布于 2012-09-19 07:19:00 +0800 CST  
关于怪物游荡进水流的刷怪塔的说明

这种刷怪塔估计是大部分玩家第一次会造的刷怪塔了
成本非常低,制造难度也低
但是由于设计本身的缺陷导致了这种刷怪塔速度不快
其中最主要影响效率的因素是,怪物行为与主角距离的关系
怪物只在24格以外刷出,而到了32格以外就不会运动了
所以说,实际上可以做刷怪层的空间十分有限
由于有效面积低,自然速度就慢了
其次怪物游荡进水流本身也是一个缓慢的过程
怪物从刷出到被杀死经历的时间太长,已经达到了刷怪封顶,因此限制了进一步的刷怪

楼主 defanive2  发布于 2012-09-19 07:23:00 +0800 CST  
关于收集系统

最常见的收集系统就是水流系统
通过水流的推动将怪物收集到一个地方
建造成本低而且非常实用
但是对于高效率的刷怪塔来说并不是最好的解决方案
当传输距离较长的时候,水流速度就跟不上刷怪速度了,往往会导致怪物没有被尽快运输到杀怪系统,导致卡住了刷怪封顶
相对速度比较快的是活塞系统,通过活塞电感推动将全部怪物集中到一个区域,速度非常快
耗资当然相对就较高

楼主 defanive2  发布于 2012-09-19 07:27:00 +0800 CST  
关于杀怪系统

杀怪系统有 岩浆、重力、水淹、活塞窒息、仙人掌、火焰等
这些杀怪系统中应该优先选择重力陷阱
原因很简单,杀怪速度是最快的,能跟上刷怪速度即可
而其次推荐的是岩浆陷阱,速度也比较快,但是不适用于蜘蛛
水淹、活塞窒息、仙人掌等都是不推荐的系统,速度慢
火焰不常用

楼主 defanive2  发布于 2012-09-19 07:32:00 +0800 CST  
总结一下刷怪塔的设计目标

刷怪塔的最终刷怪速度,由于有刷怪封顶,因此可适用水桶原理
也就是速度是由刷怪速度、收集+杀怪速度这2部份中最慢的速度决定的
如果收集+杀怪速度无法跟上刷怪速度,那么由于到达了刷怪封顶,就不会有新怪物产生
反之,刷怪速度则成了刷怪塔的限制因素
因此一个好的刷怪塔,要2部份设计都要能达到十分高的速度
一些简单的计算是需要的
从 有效面积/(有效+无效面积) 可以得到刷怪几率P
每秒刷出的怪物个数S就是20x2xPxT,T表示刷怪成功率
然后通过刷怪封顶C除以S就可以得到达到刷怪封顶所需的时间
这个时间就是收集+杀怪系统处理一只怪物的最大耗时,这样才能保证一直全速刷怪进行

从理论上,最大的刷怪速度是每秒20x2=40只,在没有无效面积,有效面积至少为40,刷怪封顶为79的时候可以达到
但是这个速度就要求刷怪塔的收集+杀怪装置要在1秒内将刷出的怪物处置,从设计上基本是不可能的
一个好的刷怪塔设计,即使没有花费大量时间点亮地底洞穴,也是可以达到每秒1只怪物的速度
每秒1只的速度是挺不错的速度,用水流收集+重力陷阱可以跟得上刷怪速度

楼主 defanive2  发布于 2012-09-19 07:45:00 +0800 CST  
目标怪物

尽管一个能处理全部怪物的刷怪塔是很完美的产物,但是也需要适当考虑取舍
要做到刷小黑就要保证设计无水,而且刷怪空间必须有3格
这样就影响了有效面积的编排,特别是对于多层的设计,可容纳的层数少了50%
而要做到刷蜘蛛,就要对一些处理进行改变,例如水流收集系统要进行大量修改
否则蜘蛛一直爬在墙上不进入杀怪系统,就有可能导致达到刷怪封顶,降低刷怪速度
适当取舍可以提高刷怪塔的速度
但是要注意的是,不处理一种怪物不等于无视,如果这个怪物无法被处理而一直滞留在有效面积内,那么就等于浪费面积而且大量累计可以导致到达刷怪封顶不再刷怪
建议的方法是不处理就要限制这种怪物不生成
例如蜘蛛不要给有效面积内有任何2x2的空间,而小黑就不要给任何3格高的空间

楼主 defanive2  发布于 2012-09-19 07:51:00 +0800 CST  

这个是我造的一个高效率刷怪塔的视频
原帖在http://tieba.baidu.com/p/1830440817
里面有一些这个刷怪塔的数据
效率是每秒2.35个物品
可见一个设计的好的刷怪塔是非常有意义的

楼主 defanive2  发布于 2012-09-19 07:59:00 +0800 CST  

楼主:defanive2

字数:3928

发表时间:2012-09-19 13:45:00 +0800 CST

更新时间:2016-03-15 11:21:24 +0800 CST

评论数:359条评论

帖子来源:百度贴吧  访问原帖

 

热门帖子

随机列表

大家在看