Przejdź do treści
CraftRadar
Redakcja serwisu

TPS i system ticków w Minecrafcie — jak to działa

20 ticków na sekundę — fundament symulacji świata Minecrafta. Wyjaśniamy, czym są ticki, czym TPS, MSPT i dlaczego optymalizacja serwera tak naprawdę zaczyna się od ich zrozumienia.

TPS, ticki, MSPT — pojęcia, których nie rozumiesz, dopóki nie zaczniesz administrować serwerem Minecraft. Wtedy okazuje się, że są fundamentem wszystkiego: wydajności, gameplayu, mechaniki świata. Bez zrozumienia ticków nie da się sensownie optymalizować serwera.

TPS i system ticków w Minecrafcie – wydarzenie społeczności Minecraft na serwerze Minecraft

Czym jest tick?

Tick to pojedyncza klatka symulacji świata Minecrafta. W każdym ticku gra:

  • aktualizuje pozycje i AI mobów,
  • aktualizuje redstone,
  • sprawdza wzrost roślin,
  • oblicza pogodę,
  • przelicza fizykę bloków (lawa, woda, piasek),
  • sprawdza spawning mobów,
  • aktualizuje pozycje graczy,
  • obsługuje akcje graczy (stawianie, niszczenie).

Cała mechanika gry dzieje się dyskretnie, w tickach. Świat „skacze" 20 razy na sekundę.

TPS — Ticks Per Second

Idealny TPS w Minecrafcie to 20. Każdy tick trwa dokładnie 50 ms. Jeśli serwer wykonuje wszystkie obliczenia tickowe w mniej niż 50 ms, ma 20 TPS — gra jest płynna.

Gdy obliczenia trwają dłużej (np. 80 ms), kolejne ticki się opóźniają. Po przekroczeniu progu serwer zaczyna wyświetlać niższy TPS — np. 12.5 (zamiast 20).

Skutki niskiego TPS:

  • moby zamierają (nie chodzą, nie atakują),
  • redstone działa wolniej,
  • plony rosną wolniej,
  • walka PvP jest niegrywalna,
  • klienci dostają desyncs (rubber-banding).

MSPT — Milliseconds Per Tick

MSPT to średni czas wykonania jednego ticka w milisekundach. Komplementarny do TPS.

  • MSPT < 50 ms = 20 TPS (zdrowo).
  • MSPT 50–100 ms = TPS spada do 10–20.
  • MSPT 100+ ms = serious lagi.

Komenda /mspt w Paperze pokazuje wartość. /spark health ma więcej szczegółów (min, max, p95, p99).

Dlaczego TPS spada?

Każdy tick to praca CPU. Jeśli pracy jest za dużo dla jednego rdzenia:

  • za dużo entity do zaktualizowania,
  • za dużo hopperów,
  • skomplikowany redstone,
  • plugin wykonujący dużo obliczeń synchronicznie,
  • generowanie nowych chunków przy eksploracji,
  • zatrzymanie GC na sekundę zatrzymuje wszystkie ticki.

Minecraft używa głównie 1 wątku CPU dla logiki świata. Mocniejszy procesor (wyższy single-thread) zawsze pomaga.

Komendy diagnostyczne

/tps                   # bieżący TPS (1 min, 5 min, 15 min)
/mspt                  # MSPT
/spark health          # pełne info: GC, RAM, entity, chunki
/spark profiler --timeout 60   # 60-sekundowe profilowanie CPU

Bez sparka nie sposób trafnie zoptymalizować serwera. Ten plugin ma więcej znaczenia niż większość innych.

TPS i system ticków w Minecrafcie – nowa wersja Minecrafta na serwerze Minecraft

Główny wątek vs async

Większość operacji Minecrafta wykonuje się w głównym wątku serwera. To synchronizuje świat (wszystkie zmiany są spójne), ale ogranicza do mocy 1 rdzenia.

Niektóre operacje są asynchroniczne:

  • ładowanie chunków (Paper async chunk loader),
  • operacje I/O (zapisy, sieć),
  • obliczenia per-player mob spawn,
  • wybrane API pluginów (event'y AsyncPlayerChat).

Folia (eksperymentalny fork Papera) idzie dalej — symuluje rożne regiony świata na różnych rdzeniach. Skalowanie do 500+ graczy.

Ustawienia ticks-per

Wiele operacji Minecrafta nie musi się dziać co tick. Można je rozrzedzić w paper.yml/spigot.yml:

ticks-per:
  hopper-transfer: 8        # zamiast 1
  hopper-check: 8
  mob-spawner: 2            # zamiast 1
  animal-spawns: 400
  monster-spawns: 1
  water-spawns: 1

Hoppery sprawdzają co 8 ticków zamiast 1 — 8× mniej pracy. Spawnery mobów co 2 ticki — 50% mniej. Cena: lekko wolniejsze działanie tych mechanik. Większość graczy nie zauważy.

Watchdog

Paper monitoruje główny wątek. Jeśli tick trwa dłużej niż timeout-time sekund (domyślnie 60), watchdog uznaje serwer za zawieszony i zabija go. Zapobiega to spirali zawieszenia.

# spigot.yml
settings:
  timeout-time: 60
  restart-on-crash: true

Czy zawsze 20 TPS?

Nie zawsze konieczne. Niewielkie spadki (19.5–20) są w pełni akceptowalne. Problem zaczyna się przy:

  • średnich spadkach do 15–18 (zauważalne),
  • nagłych skokach MSPT (jitter, pauzy GC),
  • długotrwałych spadkach poniżej 15.

Cel: średni TPS > 19, MSPT p99 < 100 ms. To w praktyce „żelazna płynność".

Podsumowanie

20 ticków na sekundę to fundament symulacji Minecrafta. TPS pokazuje, ile z nich serwer wykonuje. MSPT — ile czasu zajmuje średni tick. Bez tych metryk nie można sensownie administrować serwerem.

spark + /tps + /mspt dają pełen obraz. Ze zrozumieniem ticków optymalizacja staje się logiczna: znajdź, co zajmuje najwięcej czasu w ticku, i to wyeliminuj.

Dodaj serwer

Wpisz adres serwera Minecraft, aby dodać go do listy. Dodanie jest darmowe.

Nie masz jeszcze serwera? Zobacz, jak go założyć.