如果可以,请尽量从游戏运行原理上解释为什么卡/不卡(eg.执行方块随机刻占用的资源没有实体的多?)
不会。通过gamerule randomTickSpeed 更改的是游戏的方块刻发生频率,每个区块被划分为16个区段,每个区段包含 16×16×16 个方块。在每个游戏刻,纳入游戏刻计算的区块的每个区段会被随机选出3个方块给予一个“随机刻”。大部分的方块都是不会受这个方块刻影响的,只有下列才会受到影响:
植物的生长,枯萎;
耕地的湿润程度;
发光红石矿石的熄灭;
熔岩是周围方块着火;
下界传送门周围出现下界的生物;
岩浆块让水蒸发。
这些不会明显的消耗服务器的运算,真正消耗运算的是生物AI和红石
更何况游戏的默认randomTickSpeed就是最大值3,所以更改不会炸服
植物的生长,枯萎;
耕地的湿润程度;
发光红石矿石的熄灭;
熔岩是周围方块着火;
下界传送门周围出现下界的生物;
岩浆块让水蒸发。
这些不会明显的消耗服务器的运算,真正消耗运算的是生物AI和红石
更何况游戏的默认randomTickSpeed就是最大值3,所以更改不会炸服
摘自wiki
也就是说,随机刻是在游戏中随机赋予的。随机刻发生的频率越高,每刻要产生的随机刻越多。
然后我在游戏中做了下测试。
首先尝试调高游戏刻(最高的一次调到了10000000)。在没有会被随机刻影响的方块存在时,调高随机刻时,我没有感觉到对游戏性能有什么显著影响。然后我尝试开了一块9*9农田,瞬间感觉卡得不得了,降到了10000之后才感觉比较流畅。
所以我的结论是
随机刻确实会对游戏性能产生一定影响,但是在随机刻较低时,这个影响几乎可以忽略不计
在每一个游戏刻中,所有处在渲染距离内的区块都被纳入游戏刻计算范围。在1.9中,只有处在渲染距离内并且距离玩家128个方块内的区块被纳入计算。
每个区块被划分为16个区段,每个区段包含 16×16×16 个方块。在每个游戏刻,纳入游戏刻计算的区块的每个区段会被随机选出3个方块给予一个“随机刻”。
也就是说,随机刻是在游戏中随机赋予的。随机刻发生的频率越高,每刻要产生的随机刻越多。
然后我在游戏中做了下测试。
首先尝试调高游戏刻(最高的一次调到了10000000)。在没有会被随机刻影响的方块存在时,调高随机刻时,我没有感觉到对游戏性能有什么显著影响。然后我尝试开了一块9*9农田,瞬间感觉卡得不得了,降到了10000之后才感觉比较流畅。
所以我的结论是
随机刻确实会对游戏性能产生一定影响,但是在随机刻较低时,这个影响几乎可以忽略不计
开不了MC……可以帮忙测试一下正常地形下randomTickSpeed调到30、300、3000的效果吗
本帖最后由 CHElover_C60 于 2019-8-21 07:53 编辑
以下是我在测试时的数值,可能结果因配置不同而有差异
测试版本1.14.4
30时非常流畅,加载1刻需要10ms
300时也很流畅,加载1刻需要16ms
3000时我能感到明显卡顿,加载1刻需要80ms,此时已导致tps下降,为12.5左右
然后对比一下默认值3吧,加载1刻需要8ms
我这么说没有问题了吧
aa0307bb 发表于 2019-8-20 00:02
开不了MC……可以帮忙测试一下正常地形下randomTickSpeed调到30、300、3000的效果吗 ...
以下是我在测试时的数值,可能结果因配置不同而有差异
测试版本1.14.4
30时非常流畅,加载1刻需要10ms
300时也很流畅,加载1刻需要16ms
3000时我能感到明显卡顿,加载1刻需要80ms,此时已导致tps下降,为12.5左右
然后对比一下默认值3吧,加载1刻需要8ms
我这么说没有问题了吧
本帖最后由 aa0307bb 于 2019-8-20 23:03 编辑
评分用光了
是tps(tick per second,正常值是20)不是fps(frame per second 每秒帧数)
该不会只有服务器有tps这个概念吧
莫非单机tps恒为20?
CHElover_C60 发表于 2019-8-20 09:04
以下是我在测试时的数值,可能结果因配置不同而有差异
测试版本1.14.4
是tps(tick per second,正常值是20)不是fps(frame per second 每秒帧数)
本帖最后由 CHElover_C60 于 2019-8-21 07:59 编辑
我知道tps和fps的区别。不过我好像明白了,我对tps有误解,我以为tps也像fps那样可以一直加。实际上tps不能超过20,是这样吗?
那我这么说,在随机刻为3时,加载1刻需要8ms,随机刻为30时,加载1刻需要10ms,随机刻为300时,加载1刻需要16ms,随机刻为3000时,加载一刻需要80ms(此时已导致tps下降)。
这样没错了吧
而且调高随机刻不影响fps吧
单机也有tps的说法,cb做优化就是为了它。
aa0307bb 发表于 2019-8-20 23:02
评分用光了
是tps(tick per second,正常值是20)不是fps(frame per second 每秒帧数)[:Strong_ ...
我知道tps和fps的区别。不过我好像明白了,我对tps有误解,我以为tps也像fps那样可以一直加。实际上tps不能超过20,是这样吗?
那我这么说,在随机刻为3时,加载1刻需要8ms,随机刻为30时,加载1刻需要10ms,随机刻为300时,加载1刻需要16ms,随机刻为3000时,加载一刻需要80ms(此时已导致tps下降)。
这样没错了吧
而且调高随机刻不影响fps吧
单机也有tps的说法,cb做优化就是为了它。