本篇教程由作者设定使用 CC BY-NC-SA 协议。

对于在无法避免的情况下,使用红石时减少卡顿的方法

玩游戏想流畅,就得减少不必要的运算过程。而在mc里则需要减少方块更新、光照度更新、实体计算等等。

此文只对游戏卡顿影响较大的红石类方块进行简单介绍。


首先我们要知道游戏运行时间的计量单位:

游戏刻 (Game Tick):         每现实中一秒等于二十游戏刻。简写单位 gt    (科技mod中机器效率、功耗 **/t 就是这个游戏刻)

红石刻 (Redstone tick):    每现实中一秒等于十红石刻。   简写单位 t

1s=10gt=20t

上面介绍的红石刻是红石主要的时间计量单位,游戏刻为特殊红石需要用的。比如0t脉冲。(超级超级卡)

 

以下是一些大佬查看游戏源码得出的结论(这些属于底层特性,适用有红石的游戏版本)

红石粉每次改变信号会造成42次方块更新,因此一个红石粉能量强度从0到15会更新15次,能量强度15到0会更新方块15*42=630次。
充能铁轨的信号改变会提供12次方块更新而中继器会提供24次,这些数量相对红石粉来说是很小的

对于能用充能铁轨代替红石粉进行信号传输的尽量用充能铁轨
上面的运算是在服务端上进行的,因此对客户端不会造成很大的卡顿
对于漏斗,由于它是个每个gt(一秒十次)都会进行运算并检测掉落物的方块,是会持久性地增加服务端的负载。

对此的解决方法是在漏斗上面放容器(投掷器/堆肥桶最佳)来禁止漏斗检测掉落物。原则上是容器的格子越少越好,因为漏斗会检测每个格子。

如果在不使用漏斗时把它激活锁住,那漏斗几乎不会造成额外的负载——discord

视频解说:https://www.bilibili.com/video/av56371484?from=search&seid=18243591539981132815

 一个漏斗矿车造成的卡顿为16个普通漏斗运行时的卡顿(尽量避免漏斗矿车)——ilmanguo


如图一的经典高频红石火把,造成卡顿的有两种原因。

其中的方块更新(红色玻璃代替)是需要cpu(处理器)的运算。放一百个这样的高频,i3 4560 cpu都无压力。(我就是i3的)

造成原版红石卡顿的大致原因(含优化原理)-第1张图片

但是!还有一种是红石火把光照度更新(黄黑色玻璃代替)

下图中我画了个横截面让你们容易看,实际上红石火把的光照度更新是一个3d的立体菱形,图中的数字是光照强度,弱的光照会被强的覆盖。它更新时包含的方块数量为:462

造成原版红石卡顿的大致原因(含优化原理)-第2张图片

所幸现在大部分都是低u高显的配置,感觉没什么。但是红石火把只是7,还有红石灯的15以及其他mod物品64或者更高的!变态mod

 而上面我们所说的经典高频脉冲就是因为以前电脑配置不好(可能还没有显卡?)然后不知道就怎么流传出”红石卡“这个梗了,一秒高频更新光照度,如果你没有加独立显卡,那么cpu(核显)就可以烧烤了。 


最后的红石小技巧

半砖用于支撑可以减少方块更新。

如图。黑色玻璃表示直接更新、黄色表示被动更新(bud)、红石箭头的铁块也要算在更新方块里面。

造成原版红石卡顿的大致原因(含优化原理)-第3张图片

上面说到红石粉每次更改信号都会更新42次,而能量等级高的红石线(多个红石粉连一起)会有链式反应。

而助推铁轨、激活铁轨每次只更新12次,且没有能量等级。需要比较长的信号传输建议用铁轨加侦测器加半砖(较少更新),但是要注意信号会被侦测器延迟了。


其他的红石原件并不卡,如果脉冲信号太快会无反应,如发射器、投掷器、红石灯等(但大范围红石灯更新会非常卡)

其他的元件除非0t脉冲才会有一点卡顿,例如超高速树厂(B站大尸兄),但这些是专门挑战世界纪录的,一般玩家碰不到。

且与一般的mod配合也不会用到0t这么极端的脉冲,除非故意卡服。

综述:只要减少方块的更新以及大范围的照明更新(普通速度更新一点感觉都没有,不用怕)就能有效降低红石物品带来的卡顿,能更好的体验红石的乐趣。

————完结————