刻¶
刻(Tick)是Minecraft基岩版中的基本时间单位,代表游戏逻辑更新的一个周期。游戏中几乎所有的行为和物理模拟都以刻为单位推进。
概述¶
Minecraft的游戏逻辑运行在一个游戏循环(Game Loop)中,每经过一个固定的时间间隔便执行一次更新,这次更新即为一刻。在理想状态下,基岩版的游戏循环以每秒20刻的速率运行,即每刻间隔50毫秒。当服务端或客户端因为计算量过大而无法在50毫秒内完成一刻的更新时,就会产生卡顿(Lag),导致游戏循环速率下降。
刻是游戏中计量时间的基本方式。1秒等于20刻,1分钟等于1200刻,1个游戏日(包括白天和夜晚)等于24000刻。
游戏刻¶
游戏刻(Game Tick)是每一刻中执行的全部游戏逻辑更新的总称。在每个游戏刻中,游戏引擎会依次处理以下内容(不完全列举):
- 更新世界时间和天气。
- 处理玩家输入和移动。
- 更新所有已加载区块中的方块和实体。
- 处理红石电路逻辑。
- 执行命令方块和函数中的命令。
- 执行脚本API注册的滴答回调。
- 处理网络数据包的收发。
随机刻¶
随机刻(Random Tick)是一种特殊的刻更新机制,用于驱动世界中方块的随机行为,例如农作物的生长、树叶的腐烂、草方块的蔓延等。
在每个游戏刻中,游戏会在每个已加载的子区块中随机选取若干个方块执行随机刻更新。被选中的方块会执行其注册的随机刻处理逻辑。这种随机性使得同类方块的更新并不同步,从而产生更自然的表现效果。
随机刻的速率可以通过游戏规则randomTickSpeed进行调整。默认值为1,设置为0可完全禁用随机刻,设置为更大的值则会加快随机行为的频率。
计划刻¶
计划刻(Pending Tick),也称为排程刻(Scheduled Tick),是一种延迟执行的刻更新。方块或游戏逻辑可以将一个更新操作排入计划队列,指定在若干刻后执行。到达指定时间后,该操作会被执行。
计划刻常用于需要延迟反应的方块行为,例如红石中继器的延迟传输、液体的流动更新、落沙的下落等。计划刻数据以NBT格式存储在存档数据库中。
常加载区域¶
默认情况下,只有玩家周围一定范围内的区块会被加载和更新。不在这个范围内的区块不会执行任何刻更新。常加载区域(Ticking Area)是一种机制,允许指定世界中的某些区域始终保持加载状态并正常执行刻更新,即便该区域附近没有玩家。
常加载区域可以通过/tickingarea命令创建和管理。每个维度最多可以同时存在10个常加载区域。常加载区域对于需要持续运行的红石装置、农场或命令方块系统尤为重要。
刻与命令¶
在命令系统中,刻作为时间度量被广泛使用: