octopuscraft吧 关注:2,140贴子:44,165

回复:【Confidential】FTF档案

只看楼主收藏回复

前面我们已经讲了原木的生成以及最初的原木上推过程,也分析了FTF选择三发射器方案的原因。下面我们就变需要将生成的原木推离泥土上方,这样才能够再次种植。那么我们应该如何在保证树木能够正常生长的情况下提高刷木速度呢?相信不难理解:
1)更简单的活塞结构
2)电路有更快的响应速度
因此设计原木推送系统需要首先熟悉树木的生长条件。我们来看看MC中所有种类的树木。

首先我们需要明确FTF的目的。FTF不是为了生产最多树木种类的树场,而仅仅是为了获得原木而已,且不论种类。因此,在考虑FTF生产原木种类的时候,我们需要首先考虑树木处理的便捷程度。所以显然,我们首先将所有树干截面2x2的树木以及不规则性状树干的树木排除。因此接下去的树木将在这些树木中选择:树干截面1x1的橡木、桦木、云杉和从林木。

我们选择针对FTF的特点选择其生产的树木。考虑到的因素其重要性由高到低排序,有下几点:
1)树苗回收率尽量大
2)树木生长条件宽裕
3)可较方便地限制生长方式
关于1)这里无需做过多解释。而2)和3)的考虑最后决定了我们选择使用白桦木作为FTF的工作树木。
根据经验所得,除了从林木,其他三种树木都可以有较大的树苗回收率。而关于树木生长条件,实际上除了云杉木需要截面5x5空间内无任何非树叶的其他方块,其他几种树木都允许在截面5x5的空间内可以有原木或者泥土方块。综合上面两点,我们的选择范围仅仅只有橡木和桦木了。照理说,这两种树木都应该可以作为FTF的工作树木种类,但橡木很可惜会有较小的几率生长成树干不规则的大树,因此在最后的这场角逐中,桦木脱颖而出最后成为了FTF的工作树木种类。
顺带提一下,在1.7以前,桦木有着和云杉一样苛刻的生长条件。但1.7更多生物群系的更新以后,白桦木的生长条件变得不在苛刻,而是像橡木一样。因此FTF在1.7以前的版本是无法运行的。
既然我们选择了白桦木作为工作树木,也清楚了其生长条件,那么下面我们就可以考虑如何在保证树木正常生长的情况下,尽可能地简化机械结构提高树场的效率。
最初的想法大概就是这样了。简单,高速。但实际上,你需要考虑到石英块标注的范围内如果有非树叶、非原木或者非泥土的其他方块,那么树苗将无法生长成树木。这样的方案显然会令树场失去意义。

所以接下去,当暂时没有考虑可行性的时候,我们很有可能会想到这样的方案。虽然使用了伪三级递归,但是显然树苗可以正常生长了。而且理论上,一旦这个结构运行起来,推动原木也是没有问题的。但是这个方案有着不少问题。

主要的就是驱动方式的问题。不难想到,最前面的活塞我们该如何让他伸长呢?当然,肯定是有办法的。

可以看到,这样的方案从架构上讲的确毫无问题。但是显然使用了伪3级递归活塞以及一个2级递归活塞怎么样也会增加树场的时序步骤。这背离了我们追求生产效率的目标。

因此,考虑到追求产木效率的目标并借鉴了德芙V3的设计方案以后,我们还是选用了下图中的方案。

伪2级递归的时序部分非常简单,仅仅一个ABBA切换器就能够实现时序。关于ABBA切换器的分析和理解,我们可以参考这里的讲解:7楼 Super Compact 4x4x4 Piston Door [10x6x13=780](http://tieba.baidu.com/p/3398534946)。当然下图中的仅仅是一个展示用电路,实际电路考虑到体积和布线相关,并不会设计成这样。


IP属地:上海34楼2014-11-13 01:40
回复
    一旦有了思路,那么具体方案的展开将会变得非常顺利。关于驱动线路以及活塞架构的布置,我们可以参考下面的几张图片。


    从图中可以看到,虽然实际上我们只需要2根原木柱子,但FTF中为了保证对称以凸显庄重的气质,最后我们还是选择了3根原木的柱子。
    通过下图的电路搭建,我们肯容易完成原木推送部分。



    可以看到这个结构可以完全正常工作。

    实际上,这个结构仍然有提速的余地。在早期的FTF版本中,FTF中使用的就是本方案。之后虽然经过多人的各种改动,但都没有实质上的提速,包括标题党NFTF。
    在不使用黑科技而是完全遵守着红石系统的“宏观规律”时,FTF即到达了这种架构下原木推送结构的速度极限。因此早期该核心技术的研制成功很大程度上对高速树场的发展有着巨大的意义。其不仅奠定了高速树场的基本架构,而且通过其对多种因素的考虑以及细节的优化,当时FTF能够获得原木生产效率上的巨大进步。这种方案下的FTF刷木部分,每分钟平均刷出约65棵树,也就是相当于每小时产木量可达到约23000。这也使得FTF模式得到极大的注意,并很好地为下一代高速树场奠定了理论基础和实践经验。


    IP属地:上海35楼2014-11-13 02:22
    收起回复
      我想到CCS弃坑的树场教程……
      好吧,请问1.8对FTF的影响如何解决?


      IP属地:浙江37楼2014-11-13 17:30
      收起回复
        求更QAQ


        IP属地:中国香港38楼2014-11-13 19:37
        回复
          终于更了QAQ


          IP属地:湖南来自Android客户端39楼2014-11-13 21:59
          回复
            没记错的话nftf在1.8可以用吧…


            来自iPhone客户端40楼2014-11-14 12:23
            收起回复
              但随着无延时技术在树场领域的广泛使用,FTF也已经不再是高速树场上的”第一梯队“了。经@duoduo_123dong 改进的FTF,成功利用了无延时技术将FTF刷木部分的延时减小了1t。改造后的FTF每分钟可以刷木72棵,其改动如下。


              可以看到为了提高树场的反应速度,这里使用了一个边沿无延时的中继器,也就是那个阻断红石导线的活塞。这成功地将原本活塞伸长到位才能供给能量的1t延时给减成了0t。通过原版ftf一分钟平均65棵树来计算,理论上运行周期少去1t之后,该优化的ftf理应一分钟产木60/(60/65-0.1)=72.897棵。实际测试结果为平均一分钟72棵(@duoduo_123dong 数据),测试结果与估算结果相吻合。
              当然,实际上其实其他的利用无延时黑科技,可以进一步减小二级活塞递推的运行时间。ftf中二级递推耗时2t,而实际上,对这个环节进行优化的ntf(发明者:@凤合草酸泥煤 @duoduo_123dong )可以让整个过程的运行时间减少到0。于是,树场的瓶颈成功从二级活塞组转移到了上推树干的部分,也实在是令人措手不及。当然,这些都是ntf的主要内容,这里我们便不展开讨论了。
              讲完了骨粉催熟以及原木推送部分,下面我们就自然而然进行到了树叶清理部分。这部分内容相对简单,因此这里我们不会做太多的分析。
              我们将粘性活塞与普通活塞如图放置。因为树叶只会生成在截面5x5的范围,因此只需要在这些地方放置活塞即可。


              用原木搭上你喜欢的图案。记得用原木或者泥土,原因在前面提及的树木生长条件。

              然后铺上线。记得中继器2t延时,另一侧也一样。

              放上粘性活塞和非透明方块,这里用的是蓝色羊毛,然后如此连线即可。

              注意这个缝隙同样会有树叶生成。因此活塞推动以后,也会掉落树苗。为了防止树苗乱飞以及有效地回收树苗,我们需要用方块将这个缝隙围起来。

              然后在下方布置漏斗。


              这样,就能够实现树叶的清理以及部分树苗的回收了。
              至此,【原木生成系统】就已经展现给大家了。下面为了思维的通顺和连贯,我们并不急于进入【原木重组系统】,而是先从【原木破坏系统】开始讲起。


              IP属地:上海41楼2014-11-17 04:09
              收起回复
                感觉你们都好喜欢树场


                IP属地:湖南来自Android客户端42楼2014-11-17 21:49
                回复
                  吹下┻━━━━━┻(


                  43楼2014-11-21 21:08
                  回复
                    【原木破坏系统】
                    Minecraft中破坏碰撞箱完整的非重力方块只有非常有限的方式,经过整理我们可以看见如下几种方块破坏的方法:
                    1)玩家破坏。不适用于破坏基岩和末地传送门框架。
                    2)Creeper爆炸。同样不适用于破坏基岩和末地传送门框架。
                    3)TNT爆炸。同样不适用于破坏基岩和末地传送门框架。
                    4)恶魂的火球。只能破坏个别抗爆炸系数较低的方块,如地狱岩、玻璃等等。
                    5)凋灵的黑色之首。只能破坏个别抗爆炸系数较低的方块,如地狱岩、玻璃等等。
                    6)凋灵的蓝色之首。不适用于破坏基岩和末地传送门框架。
                    7)凋灵的啃食。不适用于破坏基岩和末地传送门框架。
                    但因为考虑到需要破坏易燃的原木,因此恶魂的方案首先被排除。而Creeper和TNT的方案在破坏的方块时会造成损耗,部分方块不会掉落为物品。此外,Creeper难以快速大量获得,TNT则需要消耗大量沙子,因此这两个实在不是可以接收的方案。目前整理下来,也只有玩家破坏或者凋灵的三种破坏方式可供选择。

                    (图:简单模式下困住凋灵的简易方法)
                    凋灵是一种效用性生物,虽然灵魂沙比较廉价,但凋灵头颅并不易获得。虽然简单的生存模式下,困住凋灵并不困难。但普通和困难模式下,凋灵极具破坏性,因此想要保证对凋灵的控制,看似是一件根本不可能的事情。因此,最早的树场刷出的原木都使用手动破坏的方案,这也是过去的树场为人所诟病的原因。木头刷起来的确快,但是刷完以后呢?还不是自己砍么?因此实际效率一直无法提高。
                    虽然我们已经得到结论,貌似可操作的方案只有手动破坏这一种。但新技术往往需要打破常规,质疑得到结论所用到的前提条件,我们才能得到更多的可能性。在树场的背景之下,这个令人感觉后背一凉的转折点就是:凋灵并非完全不可控制。这个貌似剑走偏锋的凋灵的控制技术(下简称凋灵技术),正是FTF【原木破坏系统】的核心技术,其也被广泛应用于其他半自动或者全自动机械,带来了前所未有的技术革命——凋灵革命。除了树场,造石机、黑曜石机、大型蘑菇机等等极大提高生产效率的机械如雨后春笋般被应用于实际生产。
                    注:OctopusCraft为困难生存模式,下图中囚禁凋灵的方式与前一张图所示的并不相同。为了防止误解,特此说明。
                    (2014.02.21 OctopusCraft中的初代FTF实景 Screenshots from 正正正正正好)

                    (2014.04.26 OctopusCraft中的黑曜石机实景 Screenshots from 正正正正正好)

                    但是,依然有一个问题,哪里能够获得大量的凋灵头颅呢?凋灵头颅是凋灵骷髅的凋落物,只能通过斩杀下届要塞中的凋灵骷髅才能获得。而凋灵头颅的掉落率极低,因此要快速获得凋灵头颅貌似也是不操作的。但凋灵骷髅究其根本也是生物,所以,我们应该有办法控制凋灵骷髅的生成,并根据其原理制作出相应的刷怪塔。
                    Burst(915986386)和德芙(Defanive2)率先(很早,甚至早于Zipkrowd)发现并通过查询游戏源代码证实了地狱顶部基岩上方的下届要塞区域可以刷凋灵骷髅以后,据此发明设计的凋灵骷髅塔令凋零头颅的快速获得再也不只是空想。至此已经铲平了凋灵技术推广之路上的所有障碍。
                    (OctopusCraft中世界首个凋灵骷髅塔渲染图 Designed by 915986386 & Maple_in_thu)

                    (2014.06.06 OctopusCraft中新旧凋灵骷髅塔实景 Screenshots from 正正正正正好)




                    关于凋灵革命的更多细节,可以参考OctopusCraft的Server Tour #1(OctopusCraft http://tieba.baidu.com/p/3276650035)。强烈建议各位好好体会一下凋灵革命给OctopusCraft带来的巨大影响,Server Tour #1视频的主线就是凋灵技术的发展。
                    那么下面,我们就来看看,在困难的生存模式下,我们应该如何控制凋灵。


                    IP属地:上海45楼2014-11-23 14:39
                    收起回复
                      噗最后一张图简直233


                      来自iPhone客户端47楼2014-11-24 19:01
                      回复
                        经卖可乐大触的指导,我们对上一帖的内容稍加修改:

                        所以经过整理,实现对凋灵的控制有以下几个关键点:
                        1)凋灵可以相对稳定地处于某个位置
                        2)凋灵的对外界环境没有破坏
                        3)不能过于频繁地伤害凋灵
                        显然,对于1)我们可以简单地使用圆石墙和4高的空间来固定凋灵的位置,而3)也不是非常难以实现。因此所有的焦点都停留在了2)的实现上。
                        还需要提醒的地方就是,仅仅考虑凋灵能否被关住是不够的,还有一点很容易忽略的关键就是,我们能否在生存模式下在指定位置生成凋灵并使得其爆炸破坏不会损伤现有结构。虽然不是技术难点,一般来说凋灵头部一桶水或者使用黑曜石就足够解决所有问题。但是忽略考虑的话,有时会带来不必要的麻烦。实际上,也正是因为凋灵生成时行为模式的变化,1.8中的凋灵更加难以控制,这也间接导致了部分凋灵笼子方案的失效。
                        经过大触们长期的摸索、创造、实验和测试,困难生存模式下凋灵笼子的实现,不外乎这几类方案:
                        1)可自动补充墙面的活体凋灵笼(不能用于简单模式)
                        2)基于凋灵AI的凋灵笼
                        3)暴力式基岩凋灵笼(仅限1.7.9、1.7.10)
                        这几类笼子各有各的不同,下面我们就来看看每种笼子究竟是什么样的。
                        1)可自动补充墙面的活体凋灵笼(不能用于简单模式)
                        这也是最容易想到的一种方案之一了。凋灵在没有锁定目标时会四射蓝色之首,那为何不对这蓝色之首加以利用呢?如果我们制造刷石机不断补充被凋灵炸坏的石头,这样不就能够控制凋灵并为我们所用了么?我们只要收集掉落的圆石,就能够省去我们不少劳动力。
                        所以凋灵技术的先驱者首先使用的就是这种构思下的凋灵笼子。比如Mackler在凋灵技术早期设计的凋灵造石机(Maple_in_thu【直播】mackler的原版生存(单机&服务器) http://tieba.baidu.com/p/3145679961?see_lz=1&pn=113),通过顶部不断地补充石头来形成一个能够不断自我修复好像具有生命的凋灵笼子。该方案多次在OctopusCraft服务器中搭建,是生存初期有效的大规模石料来源。

                        图片来自 Maple_in_thu 4052楼【直播】mackler的原版生存(单机&服务器) (http://tieba.baidu.com/p/3145679961?see_lz=1&pn=113
                        顶部的8台造石机不断地将石头送至下方补充墙面,其控制的核心就是这个周期8t的时钟信号发生器。

                        图片来自 Maple_in_thu 3939楼【直播】mackler的原版生存(单机&服务器) (http://tieba.baidu.com/p/3145679961?see_lz=1&pn=113
                        底部的黑曜石能够有效防止生成过多的石头从而造成凋灵笼子对周围结构的破坏。

                        图片来自 Maple_in_thu 4022楼【直播】mackler的原版生存(单机&服务器) (http://tieba.baidu.com/p/3145679961?see_lz=1&pn=113
                        收集装置可以负责收集因凋灵破坏而掉落圆石。

                        图片来自 Maple_in_thu 3032楼【直播】mackler的原版生存(单机&服务器) (http://tieba.baidu.com/p/3145679961?see_lz=1&pn=113
                        为了能够防止凋灵生成时的爆炸,需要使用发射器来发出并收回水。

                        图片来自 Maple_in_thu 3977楼【直播】mackler的原版生存(单机&服务器) (http://tieba.baidu.com/p/3145679961?see_lz=1&pn=113
                        这种方案的凋灵笼子是凋灵技术最早期探索的成就。基于凋灵技术,这种造石机方案实现了全自动化生产。也就是说,不需要手工劳动,不需要挂机,不需要补充物资,不需要交易,仅仅在困难的生存模式下,只要这台机器所在的区块被加载着(比如将机器造在spawn chunk里或者使用chunk loader使其所在的区块active loaded),那么就会有源源不断的石料。实现一些原本认为不可能实现自动化,突破了思维常规,突破了当时对自动化机械的认知,肯定了凋灵技术的价值,就是这台机器的重要意义,也是至今我们依然对其高度评价的原因。
                        虽然这台机器有着跨时代的意义,但他的不足也是一只手数不过来的:效率低;事故率高;时钟信号不能停止;其凋灵笼子只能用于造石机;生成和杀死凋灵时不方便;不能用于简单模式;依赖于造石机的稳定性等等等等。所以最后这类方案并没有普及,也就是说,“堵”的办法并不是最好。


                        IP属地:上海49楼2014-12-04 05:12
                        收起回复
                          如果把铁傀儡换成女巫呢?会自己补血的?


                          IP属地:北京来自Android客户端51楼2014-12-04 15:24
                          收起回复


                            来自iPhone客户端52楼2014-12-08 09:49
                            回复