redstone_machine...吧 关注:3,610贴子:60,858
  • 20回复贴,共1

【Confidential】BUD档案

只看楼主收藏回复

——BUD档案的来历
BUD档案最初于2013年12月由本人nenn(@正正正正正好 )以及magnus(@霸王别搅基 )开始整理,收录了许多经典的BUD现象以及BUD方案。出于种种原因,该档案未得到完全的发布。一方面,已经发布的内容(【半教程向】Magnus的BUD研究笔记 http://tieba.baidu.com/p/2819632775;【探究向】关于TEUD的研究和应用 http://tieba.baidu.com/p/2833010597)为了便于理解,部分经过了仔细斟酌,使用了比较通俗易懂的表达,因此专业性和系统性不尽良好;另一方面,由于彼时认知水平有限,故一直未有能力整理并发布一篇系统权威的关于BUD的全面资料。目前已是发布BUD档案的绝佳时机,考虑到本人对于BUD的认知已经有了较大的提升,故在此可以对1.8以前的红石系统进行系统的整理作为参考,这便是本BUD档案的来历。
本帖基于Minecraft1.7.9原版。Forge、mod、bukkit以及插件等等可能会影响红石系统的表现,故这里着重强调以免造成不必要的麻烦。


IP属地:上海1楼2014-11-15 07:59回复
    ——狭义和广义上的BUD
    ——BUD传感器、BUD现象和BUD态
    BUD(Block Update Detector)即方块更新感应器。名副其实,作为一种可以检测方块更新的传感器,其能够将方块的更新转化为红石电路中信号的变化。BUD也因为与一些现象联系紧密,故其本身的概念也得到了引申。观察不同种类的BUD,不难发现他们都有一个显著的共同特征:所有的BUD中都存在有处于亚稳态的方块。这里所谓的亚稳态,是指方块处于这样一种状态:虽本身无任何变化,但却极易受到外界的干扰从而造成自身的改变。因此,BUD有时也被用来指代方块处于这种亚稳态的现象;这种亚稳态,有时也被称作BUD态。
    所以,狭义上的BUD是指可以检测方块的更新变化并将这个变化以某种形式输入红石系统的传感器,而广义上的BUD则是指方块处于亚稳态,可以对方块更新做出某种反应的现象。
    综上,我们平时常说的BUD可能会有如下几种不同的意思:
    1)传感器。可以检测方块更新,并将方块的更新变化输入红石系统。
    2)现象。方块处于亚稳态,可以对方块更新做出某种反应的现象。
    3)亚稳态。虽本身无任何变化,但却极易受到外界的干扰从而造成自身改变的一种状态。外界的干扰从而造成自身改变的一种状态。


    IP属地:上海2楼2014-11-15 08:01
    回复
      bud是我的弱项(之一),等待更新中。
         --楼主我问你,这是新的水经验技巧吗?


      IP属地:广东来自Android客户端9楼2014-11-17 01:13
      回复
        ——BUD态的判断
        根据亚稳态的定义,判断一个方块是否处于BUD态就是判断其是否处于易受方块更新干扰的亚稳态。如果在待判断方块毗邻的6个位置提供某种形式的方块更新,而这个更新会造成待判断方块状态的变化,那么待判断方块原来就处于BUD态。需要注意的是,这是根据定义得到的判断方法,因此该判断方法总是正确的。
        当然,判断BUD还有其他辅助的手段,一般最常用的就是观察法了。如果有方块处于违反常理的状态(比如镇楼图中所示的中继器和红石火把),那么一般该方块就处于BUD态。但需要强调的是,使用该方法去判断BUD态并非完全正确。个别情况下,简单地通过观察法来判断方块是否处于BUD态将会造成错误。例如下图的几种情况:
        1)贴图错误

        2)特殊的供电方式

        3)已被触发的BUD

        因此, 对于BUD的判断和认知,仅仅观察方案的特点是远远不够的。我们必须要知道BUD最根本的辨别方法:也就是根据BUD的定义。这是这里特意强调的一个重要概念。


        IP属地:上海10楼2014-11-20 07:37
        收起回复
          ——BUD态的形成方式
          BUD形成的基本条件依赖于游戏机制。除了少数红石元件能够对毗邻的6个位置以外的方块进行更新,其他方块只能给毗邻的方块提供方块更新。正是由于这个游戏机制的存在,BUD态方才有存在的可能。需要注意,实体不能提供方块更新,但却能够提供实体附加值的更新,关于这一点我们之后会提到。
          BUD态必须借助于一些非常规的手段来得到,这是一种误解。例如下图的情况,敲掉熔炉以后,活塞就达到了BUD态。这个过程不依赖任何的bug或者第三方软件等等。

          但是不得不承认,相当多的BUD与bug有联系。实际上,有些bug不仅简化了BUD态的形成,还使得另一些原本正常情况下不可能达到BUD态的方块达到了BUD态。导线指向BUD是根据导线指向bug来命名的,其并非指某个具体的方块处于BUD态,而是指一类制作BUD态的通法。令人惊奇的是,导线指向bug使得几乎所有的机械元件和红石元件能够达到BUD态。除了镇楼图中的中继器BUD和活塞BUD,我们还可以制作诸如红石灯BUD、TNT BUD、门BUD、动力铁轨BUD,等等。列举根本毫无意义。

          因此,虽然BUD态的形成不一定需要借助于一些bug,但是某些bug对BUD态的形成有着相当大的影响。虽说是bug,但实际上,这些bug已经稳定存在于多个版本,其中一些在正式版中已经悄无声息地存在了至少2年,部分bug甚至需要追溯到正式版以前。
          按照某些观点,BUD态本身也可以被认定为一种bug。因此具体如何看待游戏bug的问题,仁者见仁智者见智。个人主张不过分强调其为bug,而是将其当作游戏特性看待和利用。基于这种共识,继续探讨BUD的相关内容才有意义。
          常见的能够形成BUD态的方式有:(不包括插件、MOD、第三方软件、指令或者命令方块等作弊方法)
          1)Minecraft地图生成器自然生成,例如处于BUD态的甘蔗和水源。
          2)通过特殊的供电方式从而形成BUD,例如BUD态的活塞、投掷器和发射器。
          3)改变环境却无法给某些方块提供方块更新,例如BUD态的活塞和水源。
          4)通过导线指向bug来形成导线指向BUD,这项列举没有意义,几乎适用于所有的机械元件和红石元件。


          IP属地:上海13楼2014-11-20 13:30
          回复
            ——BUD的分类
            虽说BUD的种类10个手指已经数不过来,但他们共享着上述的基本的原理。照理说,BUD的分类应该会比较简单。但实际情况却并非如此,BUD各有各的不同。
            从触发条件上来说,BUD可以分为常规BUD、TEUD、Y-BUD和门BUD这四种。他们有着各自不同的特点。
            【常规BUD】能够响应一般的方块更新。无需赘述。
            【TEUD】即Tile Entity Update Detector,也称CUD(Comparator Update Detector)或者DUD(Data Update Detector)。顾名思义,其不仅能像常规BUD一样可以响应一般的方块更新,而且还能响应实体附加值的更新。关于TEUD的详细资料,可以参考本人今年一月份关于TEUD的讲解:【探究向】关于TEUD的研究和应用(正正正正正好 http://tieba.baidu.com/p/2833010597?pid=44978446608&cid=0#44978446608)。但考虑到该帖内容不完整以及略有错误,因此准备在这里重述。
            【Y-BUD】可以检测相同X和Z处任意Y值的方块更新。Y-BUD上镜率不高,但TEUD一样,也属于较早被发现的BUD。根据火黑搬运的帖子:【分享】【红石小部件】Y-BUD Switch(感应Y轴的方块更新)(火黑_213275070 http://tieba.baidu.com/p/2496934045),至少于2013.07之前,Y-BUD的规律就已经被发现。值得一提,因为Y-BUD基于光线感应器的BUD态,所以其只能在白天工作。
            【门BUD】指铁门、木门、活板门以及栅栏门这四种门的BUD。门BUD之所以特殊是因为这四种门的某些BUD态必须使用红石类元件触发,而不能响应普通的方块更新。门BUD作为更加冷门的BUD,估计几乎不为人知晓。但门BUD也并非新发现的BUD,从帖子【LQY系列】红石线钥匙门——铁门特殊BUD(godisnothing http://www.mcbbs.net/forum.php?mod=viewthread&tid=145339)来看,门BUD至少早于2013.07已被发现和研究。
            从稳定特性上来说,BUD可以分为单稳态BUD、双稳态BUD和不稳类BUD这三种。
            【单稳态BUD】指处于BUD态的方块只能稳定处于某一种BUD态的一类BUD。
            【双稳态BUD】指处于BUD态的方块能稳定处于两种不同BUD态的一类BUD。
            【不稳类BUD】指红石火把BUD以及拌线钩与门方块的组合等不稳类的BUD。经过一段时间以后,不需要外界特意提供更新,其就可以自动从BUD态回归稳定态。
            从生成条件来说,BUD可以分为天然BUD和人造BUD两类。
            【天然BUD】指地图生成器生成的BUD。如远离水源的甘蔗、不流向低处的水源等。
            【人造BUD】指人为搭建的BUD。如活塞BUD、中继器BUD等。
            从可持续性来说,BUD可以分为自复位BUD、手动复位BUD和一次性BUD三大类。
            【自复位BUD】指可自动复位重置进行多次检测的BUD。
            【手动复位BUD】指需要手动复位才能进行下一次检测的BUD。
            【一次性BUD】指需要重新搭建才能进行下一次检测的BUD。


            IP属地:上海15楼2014-11-20 19:33
            收起回复
              ——BUD的应用和预防
              BUD对红石电路的影响可以说是不可替代的。难以想象没有BUD的红石系统将会是多么单调。BUD等价于一类特殊的元件,其与其他机械元件(比如活塞等)一起可以实现Minecraft物理世界中任何方块(不论透明还是非透明)与红石电路的双向交互。
              BUD的用途非常广泛。除了作为用作隐藏开关以外,BUD作为一种检测手段还能被应用于一些半自动或者全自动电路。比如全自动甘蔗机、全自动瓜机、造石机、刷冰机和高速树场等等。BUD还能被当作一种特殊的驱动方式,为一些复杂的机械提供更简单的驱动方案,有些情况甚至是非BUD不可(比如DIco和Sidney实现的内吸无痕9x9),以活塞门为代表的一类机械电路就是如此。另外,在组合逻辑以及时序逻辑的实现中,BUD类的RS触发器、D触发器、ABBA切换器等等凭借其体积优势,成功应用于一些高度压缩的机械电路。
              特殊类的BUD,比如TEUD,也有着其他应用。可以看到,区块加载检测器CLD(Chunk Loading Detector)(maple_in_thu http://tieba.baidu.com/p/3093467040 以及 http://tieba.baidu.com/p/3150708310)中的TEUD是不可替换成为其他BUD的。此外,音符盒(maple_in_thu 5130楼 http://tieba.baidu.com/p/3145679961?see_lz=1&pn=130)开关中也必须使用TEUD从而实现这种人性化的开关方式。
              但我们也需要在一些场合防止BUD带来的副作用。比如大型电路中,活塞BUD很容易导致布线干扰,从而带来线路搭建中不必要的麻烦。活塞BUD也限制了一些机械的大小。比如1.8之前,Hipster Door的高度极限为2(较简单,已被多次实现),Hemi-Hipster Door的高度极限为3(无限宽的方案由Dico和Sidney基于活塞虫实现)。
              总体看来,BUD对于红石电路的搭建利大于弊,这也是BUD作为一种黑科技却能够被更多人所接受的原因之一。毫无疑问,这一点保证了本档案公布的意义。


              IP属地:上海20楼2014-11-22 06:13
              回复
                【Confidential】BUD档案 之 活塞BUD
                http://tieba.baidu.com/p/3434325149




                IP属地:上海21楼2014-11-27 13:38
                收起回复
                  【Confidential】BUD档案 之 TEUD(CUD、DUD)
                  http://tieba.baidu.com/p/3469832540







                  IP属地:上海23楼2014-12-16 00:00
                  收起回复
                    lz太赞了


                    来自Android客户端24楼2015-02-17 18:12
                    回复
                      15楼中楼挖坟狗,建议永封


                      IP属地:上海来自Android客户端25楼2017-08-06 16:41
                      回复