#ЯдроСервера • 12 ноября 2026 • Автор: Root_XMC

Оптимизация DAB и асинхронного трекинга сущностей в Pufferfish / Purpur 1.21.4

1. Почему на классических серверах Анархии падает TPS

При 250+ игроках на одной ноде Anarchy Grief 1.21.4 в загруженных чанках одновременно присутствуют десятки тысяч сущностей: мобы в фермах опыта, рамки, стойки брони, выбрасываемые предметы и воронки. В стандартном Paper обсчёт AI (`PathfinderGoal`) для моба в 48 блоках от игрока тратит ровно столько же процессорного времени, сколько и для моба прямо перед игроком.

2. Динамическая активация по расстоянию (Distance-based Activation)

Ядро Pufferfish / Purpur 1.21.4 применяет нелинейное снижение частоты тиков AI в зависимости от квадрата расстояния до ближайшего игрока. Если скелет находится на расстоянии 40 блоков, его интеллект обновляется не 20 раз в секунду, а 4–5 раз в секунду, при этом физика падения и получение урона обрабатываются без искажений.

Важно для ферм: все сущности в радиусе 12 блоков от игрока (включая кристаллы Энда, стрелы и игроков в PvP) всегда тикают со 100% частотой 20 Гц, поэтому PvP-механики остаются на 100% ванильными.

3. Производственная конфигурация `pufferfish.yml`

Конфигурация node-anarchy/pufferfish.yml
dab:
  enabled: true
  start-distance: 12
  max-tick-freq: 20
  activation-dist-mod: 7
  blacklisted-entities:
    - minecraft:villager
    - minecraft:ender_crystal
entity-timeouts:
  enable-async-mob-spawning: true
  allow-async-entity-tracker: true

В сочетании с асинхронным трекингом видимости сущностей (`allow-async-entity-tracker`) это снизило нагрузку на главный поток ноды Анархии с 28.5 мс до 12.1 мс MSPT.


Читайте также: