Minecraft Wiki

除另有声明,转载时均必须注明出处若簡繁轉換出錯,請以遊戲內為準请勇于扩充与修正内容有兴趣逛逛我们的微博沟通交流,欢迎到社区专页需要协助,请在告示板留言

了解更多

Minecraft Wiki
Advertisement

幾乎所有的遊戲(包括Minecraft)都是由一個大循環程式執行的。相稱地,循環程式的一個週期被稱之為一「刻(tick)」

遊戲刻

Minecraft的循環程式是以每秒20週期的固定速度執行的,即TPS(每秒刻數)為20.0。因此每遊戲刻為0.05秒。每過去一遊戲刻,遊戲的各方面都會更新:移動的實體位置會發生變化,生物會檢查周圍環境並更新自身的行為,玩家的生命值和飢餓值會根據玩家的處境發生變化,等等。遊戲中的一天正好為24000遊戲刻,相當於現實中的20分鐘。遊戲中的絕大多數功能都是以遊戲刻而不是現實時間作為時間基準。

但是這個速率也不是完全固定的:如果發生卡頓以至於電腦的效能不足以跟上這個速度,一個遊戲刻的執行時間就延長,每秒中遊戲刻就會變少。和每秒刻數(TPS)相關的一個單位是每刻毫秒數(MSPT),即伺服器實際上用來計算一刻所需的時間。只有在MSPT不超過50時,TPS才可以達到20。

以下的遊戲機制比較消耗資源,容易導致伺服器端卡頓:

  • 漏斗收集上方物品。可以透過在漏斗上加入容器方塊防止這一行為發生。也可以直接換成吞吐量更大的水流運輸
  • 紅石電路更新。應該在時鐘等線路上增加開關,以避免不必要的狀態改變。另外紅石造成的亮度更新也會造成卡頓,可以透過儘量減少空氣空間避免。[1]
  • 生物AI。可以使用照明控制怪物的產生,並使用更高效的技術養殖家畜
  • 有些Mods可以最佳化或簡化遊戲邏輯。由於Mods是第三方內容,本wiki不會特別聲稱其適用性。

但遊戲的FPS(FPS)不影響TPS,電腦的圖形效能不會影響到遊戲機制。

遊戲流程

Information icon
此特性為Java版獨有。

Java版中,在每個遊戲刻以下行為依次處理:[2][3]

  • 執行帶tickload標籤的函數
  • 主世界地獄終界的順序對每個維度進行如下進程:
    • 同步用戶端時間
    • 世界邊界更新
    • 天氣邏輯
    • 玩家睡覺邏輯
    • 若維度為主世界:
      • 更新gametime以及daytime
      • 計劃的函數執行
    • 計劃刻被處理
      • 方塊計劃刻
      • 液體計劃刻
    • 突襲邏輯
    • 對每個載入的區塊:
      • 向用戶端發送區塊資訊
      • 區塊刻邏輯
    • 夜魅窳民殭屍圍城嘗試生成
    • 向玩家發送實體更新
    • 區塊卸載
    • 流浪商人嘗試生成
    • 方塊事件被處理
    • 運算實體
      • 方塊實體運算
  • 玩家實體被處理
  • 6000遊戲刻一次的自動儲存
  • 來自用戶端的包被處理

區塊刻

Information icon
此特性為Java版獨有。

Java版中區塊刻的行為在基岩版中由隨機刻執行。

Java版中,作為遊戲刻的一部分,每個遊戲刻都會對特定的區塊執行區塊刻。在每個遊戲刻中,載入等級在31級或以下、區塊中心與最近的玩家的水平距離小於128的區塊會執行區塊刻。

區塊刻有許多影響:

  • 生物自然生成
  • 暴風雨天氣下,閃電可能在區塊內某處生成(1100000的機率)。
  • 每一縱向上的最頂端方塊有116的機率檢查天氣更新:
    • 在寒冷的生態域中,如果條件合適,會結成冰。
    • 如果在下雪,並且條件合適,一片可能被放置。
    • 如果在下雨,鍋釜可能被填充並最終填滿。
  • 區塊內方塊會接受到隨機刻更新。

隨機刻

Java版中,隨機刻作為區塊刻的一部分執行。

基岩版中,在每個遊戲刻中,所有載入的區塊都會執行隨機刻。

每個區塊被劃分為16個區段,每個區段包含16×16×16=4096個方塊。

Java版中,在每個遊戲刻,執行區塊刻的區塊中,每個區段預設會被隨機選出3個方塊(可以重複)給予一個「隨機刻」。大部分方塊不會有影響,除了如下這些[需要在基岩版上驗證]

基岩版中,隨機刻執行Java版中區塊刻的行為,且每個遊戲刻每個區段預設會隨機選出1個方塊給予一個方塊刻,方塊刻起Java版中隨機刻的作用。

可以透過使用指令/gamerule randomTickSpeed <數量>來改變每個區段給予隨機刻[僅Java版]或方塊刻[僅基岩版]的方塊數。

因為隨機刻是被隨機賦予的,無法預測某個方塊何時會接收到隨機刻。

Java版中,隨機刻的間隔的中位數為47.35秒,即有50%機率不超過47.35秒,也有50%機率超過47.35秒,也有可能需要極短或極長的時間:例如,有1.5%的機率間隔時間小於1秒,也有1%的機率超過5分鐘。隨機刻的間隔的平均值為68.27秒。對上述資料的計算原理,參見維基百科幾何分布

方塊刻

Information icon
此特性為基岩版獨有。

每個遊戲刻每個區段預設會隨機選出1個方塊給予一個方塊刻。方塊刻起Java版中隨機刻的作用,還會加入計劃刻,可能使熄滅或傳播。

計劃刻

一些方塊可能會請求在將來的某一個遊戲刻更新方塊,這種更新方塊的方式被稱為計劃刻。在一段時間後必定發生並且行為可以預測的變化,往往使用這種「計劃刻」——比如,偵測器會計劃2遊戲刻之後來改變它的狀態。

作為遊戲刻的一部分,之前請求的計劃刻如果已到達指定時間,如果區塊的載入等級小於33(不包括33)[僅Java版]或區塊已載入[僅基岩版],計劃刻就會被執行。否則推遲執行,直到區塊被載入。

Java版中,計劃刻有兩種:方塊計劃刻和液體計劃刻。[4]

執行時刻相同的方塊計劃刻的執行順序首先取決於優先級,優先級相同則取決於建立順序。優先級的較小的執行時間較早。
  • 若紅石中繼器指向紅石二極管,且紅石二極管的朝向非反向,中繼器的計劃刻將有-3的優先級。若中繼器準備熄滅,則優先級為-2。否則中繼器將有-1的優先級。
  • 若紅石比較器指向紅石二極管,且紅石二極管的朝向非反向,比較器將有-1的優先級。
  • 其他的所有方塊計劃刻優先級都為0。
方塊計劃刻執行完後,將執行液體計劃刻。液體計劃刻沒有優先級,僅根據建立順序依次執行。

Java版中,每個遊戲刻內所能執行的最大計劃刻數是65536個。在基岩版中,每個遊戲刻內每個區塊所能執行最大計劃刻數量為100個。

紅石刻

一個紅石刻代表著兩個遊戲刻。在紅石的語境中,「刻」常指紅石刻。

基岩版中,每兩遊戲刻有一個紅石刻。在Java版中,紅石刻僅是時間單位。

參考

Advertisement