minecraft吧 关注:2,567,362贴子:32,068,346

来介绍一下我的轮椅向存储模组发布后更新了什么,性能怎么样了

只看楼主收藏回复

一楼先放几张图,顺便给没看过上一个帖子的吧友们介绍一下,我的模组叫“超越维度”,是一个提供存储和实用工具的模组。存储不依赖其他物品和方块,但是可以绑定给一个或多个玩家使用,也可以绑定到物品或者方块让其他模组读取其中的内容。
它可以存储的资源种类也十分丰富,目前已经支持物品、流体、FE能量、mek的化学品,预计后续还会添加原版的经验、新生魔艺的魔源、植物魔法的mana支持。
总的来说,这是一个既可以在冒险包当随身背包又可以在科技包作为外部存储的模组。




IP属地:河南1楼2025-08-05 15:20回复
    首先是性能优化
    从第一个版本到现在,为了保证即使大家把这个mod当成物品垃圾桶也不会有卡顿,我把底层的存储结构改了至少2遍,不过相信大家对实现细节也没什么兴趣,这里直接放最新版测试场景和spark截图,图中是在已经存储了1319个物品的情况下,一半利用模组自带的网络接口对mek管道输出泥土,再从网络通道回到存储;另一半是利用mek管道从网络通道中主动抽取物品,再送到网络接口,由网络接口送回存储。

    这里介绍一下这两个方块,以便大家理解。
    网络接口是一个类似AE中me接口的方块,可以标记物品等资源,从存储中直接提取到对应槽位,同时将未标记槽位的物品送回存储。它与AE的me接口唯一区别就是添加了一个设置,允许网络接口主动对外弹出标记的资源。
    网络通道则是类似原版箱子的方块,不过这个“箱子”本身不存储任何东西,当有管道或者存储总线等方块想要和它交互时,它作为一个媒介让它们直接与绑定的存储进行交互。
    这种结构可以很好的测试存储的输出输出性能,此时再打开存储的UI以测试UI同步性能,利用spark记录性能消耗。tps稳定在20,而mspt的中位数为3.67ms,95%位数为4.86ms,完全称得上稳定高效。具体的spark记录文件会放在网盘,感兴趣的可以自行下载。


    IP属地:河南2楼2025-08-05 15:25
    收起回复
      2025-12-24 00:05:08
      广告
      不感兴趣
      开通SVIP免广告
      然后是nbt物品处理
      对于nbt物品的担忧,我查看了mc在1.20.1和1.21.1的代码,仅有在网络传输时传递单个nbt超过2MB或者nbt本身嵌套超过512层才会导致游戏出现错误崩溃,这本质上是mojang代码中的一种防御机制。
      而在实际游戏来分别讨论这两种情况:
      对于nbt嵌套超过512层的情况,这相当于把潜影盒扔进另一个潜影盒,层层套娃套了512层(原版中潜影盒不能嵌套,这里仅用它来举个例子)。当这种操作完成的一瞬间,操作者就会因为下一tick的网络同步直接掉线,这个区块也会变成克苏鲁区块(不可直视~感知到就会掉线)因此根本没有机会将嵌套后的物品放入存储。
      对于存储物品过多后整个存储的网络同步问题,我在代码中对存储的网络传输进行了处理,当单个数据包过大时进行分包处理,无论存储内有多少物品都能正常运行。唯一的例外是单个物品本身超过900KB(我设置的分包阈值),而这种情况在正常游戏中也不可能发生,900KB的容量虽然看起来没有一张图片大,但是在mc中足以存储超过万种不同的无nbt物品


      IP属地:河南3楼2025-08-05 15:29
      回复
        贴吧怎么把我的换行给吞了,文字挤在一起看着我都难受


        IP属地:河南4楼2025-08-05 15:30
        收起回复
          再就是UI的改进
          不得不承认,模组第一个版本的UI非常简陋,几乎没有做任何性能优化,当存储物变多时就会极其卡顿,好在这个问题已经随着多次更新解决了。这是一张874种物品情况下操作UI界面的gif图。

          除了性能改进以外,比起初版UI,还有许多功能上的改进:
          你可以通过一个按钮打开和关闭合成槽

          你可以自定义显示的行数

          你可以用鼠标右键直接在UI中操作容器




          UI自带的搜索功能比起初版也有了巨大提升,只需要输入文本或者是对应的拼音,立刻就能匹配到名称、提示框内容或模组id中有任一匹配的物品,而输入#则能强制要求提示框必须包含某些内容,输入@则强制要求模组id必须包含某些内容。模组自带拼音搜索能力,但不如通用拼音搜索的完善,因此当你安装通用拼音搜索时,模组会自动调用它的接口。


          IP属地:河南5楼2025-08-05 15:35
          收起回复
            这么酷,期待一下后面各种包的运用了


            IP属地:重庆来自Android客户端6楼2025-08-05 15:36
            收起回复
              与AE的深度兼容
              作为一个用于大规模存储的模组,与自动化系统的集成可谓势在必行。除了本身自带几个简单的自动化方块,超越维度对AE进行了高度兼容,对于大部分外部存储而言,无论是抽屉还是mek的qio,只要是通过存储总线连接,必然会导致高额的性能消耗,这是forge接口定义导致的必然现象,毕竟它本身只是为箱子这种容器而生的,并不适合大量不同的物品存储。
              因此,超越维度添加了一个叫做维度ME磁盘的物品,绑定后放入ae驱动器中,ae就能高效的读取并操作超越维度的存储内容
              我也为二者做了一个性能对比。如图,当1319种物品时,进行输入输出及UI同步测试,仅用超越维度作为存储的mspt中位数为2.97ms,而使用AE原生存储为2.7ms。性能差距极小,spark文件可以从网盘下载。

              如果使用存储总线,则差不多需要消耗10倍左右的性能(存储总线的性能是几个月前测试的,相关的spark文件丢了)。


              IP属地:河南7楼2025-08-05 15:39
              收起回复
                对kjs的魔改支持顺便为发展流程做铺垫
                由于当前版本的超越维度仍然是一做出来就无限容量,在大部分场景下都显得过于超模,而超越维度的其他大饼还未完全实现,导致添加一个适当的发展流程始终是新建文件夹的状态
                为了缓解这种情况,也为了让后续制作发展流程更顺畅,我添加了kubejs的支持,整合包作者可以通过kubejs自行定义获取存储空间的方法、修改存储空间的初始容量、决定什么时候为存储增加容量、甚至可以直接修改存储的内容,所有方法都有简单易用的接口,以及完整的中文注释。不在此赘述了,欢迎大家前往github查看


                IP属地:河南8楼2025-08-05 15:41
                回复
                  2025-12-23 23:59:08
                  广告
                  不感兴趣
                  开通SVIP免广告
                  添加了一些实用工具
                  吸收了一些吧友和其他玩家的意见,我也尝试向模组中添加了一些实用工具。
                  网络泵:可以主动抽取周围容器的内容(包括物品、流体、fe、化学品),并收入存储空间,支持红石控制和黑白名单;
                  网络漏斗:可以吸收附近的掉落物和流体(是的,你可以把它当海绵用,甚至吸岩浆),其工作范围可以调整,从2格半径到整个区块,范围越大,单次工作用时越长,支持红石控制和黑白名单;
                  网络磁铁:基本就是网络漏斗的物品版本,可以放入curios饰品栏,也可以直接放在背包,提供了专门的快捷键用于快速开关,当然,也能直接打开UI进行开关;
                  网络熔炉:可以标记原料和燃料,从存储中自动取出进行冶炼,成品可以弹出、可以从管道抽走、也可以自动收回存储。
                  网络喂食器:可以标记一些食物,当饥饿值小于设定阈值时,自动从存储中消耗对应的食物来补充,不会让永恒牛排或者无限火腿消失!还有一个有意思的小功能,生存模式下,你可以对一个方块按鼠标中键就能像创造模式一样直接从存储取出一组对应方块到手上,shift+中键则能直接放回,这个快捷键也是可以更改的。


                  IP属地:河南9楼2025-08-05 15:42
                  回复
                    有点太狠了,不过我喜欢


                    IP属地:新疆来自Android客户端12楼2025-08-05 16:01
                    回复
                      百度一直吞楼,放弃发图了


                      IP属地:河南来自iPhone客户端19楼2025-08-05 16:17
                      收起回复
                        超标,但是我就喜欢超标的


                        IP属地:河南来自Android客户端21楼2025-08-05 16:30
                        回复
                          别的都好,就是感觉美术需要优化一下,比如说方块贴图,还有ui


                          IP属地:河南来自Android客户端22楼2025-08-05 16:39
                          收起回复
                            可以自动显示可合成物品吗?,mod太多我没事想看看可以合成什么乱七八糟的


                            IP属地:江西来自Android客户端23楼2025-08-05 16:40
                            收起回复
                              2025-12-23 23:53:08
                              广告
                              不感兴趣
                              开通SVIP免广告
                              好厉害那么在哪里可以玩到,我最讨厌整理物品和翻箱子了


                              IP属地:河南来自iPhone客户端24楼2025-08-05 16:41
                              收起回复