Генерация новых чанков в реальном времени — главный источник лагов, падения TPS и «зависания в воздухе» на многопользовательских серверах Minecraft. Когда игроки надевают элитры, садятся на лодки или просто исследуют незнакомые территории, серверный поток вынужден одновременно выполнять шум Перлина для рельефа, рассчитывать 3D-пещеры, расставлять структуры и просчитывать освещение. Решением проблемы является предварительная генерация (прегенерация) мира с помощью плагина Chunky.
В этой статье рассматривается установка плагина Chunky на серверы Paper и Purpur, расчёт границ мира, мониторинг процесса прегенерации и оптимизация ресурсов сервера.
Почему генерация чанков на лету вызывает просадки TPS#
Начиная с обновления «Пещеры и скалы», высота мира в Minecraft была увеличена до 384 блоков (от Y=-64 до Y=320). Увеличенный объём блоков и сложная геометрия биомов требуют в разы больше процессорных циклов на генерацию каждого чанка 16×16 блоков.
Когда новый чанк запрашивается игроком:
- Сервер запускает многопоточную генерацию рельефа и структур.
- Основной поток сервера вынужден синхронизировать завершённые чанки перед отправкой клиенту.
- Если генерация затягивается, основной тик сервера превышает 50 миллисекунд (MSPT > 50), из-за чего показатель TPS падает с 20.0 до 8–12.
- Игроки сталкиваются с телепортацией назад (rubberbanding) и невидимыми границами мира.
Прегенерация сохраняет сгенерированные чанки в файлы регионов .mca на диске. При исследовании предзагруженного мира серверу остаётся лишь прочитать готовые бинарные данные, что снижает нагрузку на центральный процессор почти до нуля.
Установка плагина Chunky и подготовка границы мира#
Chunky — современный асинхронный плагин прегенерации, совместимый с Paper, Purpur, Spigot и Fabric. Скачайте актуальный релиз плагина и поместите его в каталог plugins/:
cd /opt/minecraft/plugins
wget https://github.com/pop4959/Chunky/releases/latest/download/Chunky.jar
Перезапустите сервер или выполните загрузку плагина:
sudo systemctl restart minecraft
sudo journalctl -u minecraft -n 30 --no-pager | grep -i "chunky"
Перед запуском генерации обязательно установите границу мира (worldborder). Это предотвратит случайный выход игроков за пределы прегенерированной зоны:
/worldborder center 0 0
/worldborder set 10000
Команда устанавливает границу мира размером 10 000 на 10 000 блоков (радиус 5000 блоков от координат X:0, Z:0).
Запуск и мониторинг процесса прегенерации#
Подключитесь к консоли сервера (или используйте RCON) и задайте параметры генерации плагину Chunky:
/chunky world world
/chunky shape square
/chunky center 0 0
/chunky radius 5000
Проверьте выбранные параметры перед стартом:
/chunky quiet 10
/chunky start
Параметр quiet 10 ограничивает частоту вывода статуса в консоль до одного сообщения каждые 10 секунд, что снижает замусоривание системных журналов.
Для проверки текущего прогресса используйте команду:
/chunky progress
Вывод покажет общее число сгенерированных чанков, процент выполнения, текущую скорость (чанков/сек) и оставшееся время (ETA).
Если сервер испытывает чрезмерную нагрузку во время прайм-тайма, процесс можно временно приостановить:
/chunky pause
/chunky continue
При использовании панели управления серверами мониторинг использования процессора и дискового пространства отображается в реальном времени, что позволяет безопасно контролировать выполнение длительных фоновых задач.
Расчёт дискового пространства для сгенерированных регионов#
Прегенерация требует достаточного объёма дискового пространства на NVMe-накопителе. Чанки Minecraft упаковываются в файлы регионов по 32×32 чанка (512×512 блоков) в каталоге world/region/:
- Радиус 5000 блоков формирует квадратную площадь 10 000 × 10 000 блоков.
- Площадь содержит приблизительно 390 625 чанков (или около 400 файлов
.mca). - В среднем один файл региона современного мира занимает от 15 до 30 МБ в зависимости от плотности пещер и структур.
- Общий объём диска для зоны радиусом 5000 блоков составляет около 8–12 ГБ для обычного мира, плюс 3–5 ГБ для Нижнего мира (Nether) и Края (End).
Убедитесь в наличии свободного места на диске перед запуском задачи:
df -h /opt/minecraft
Прегенерация дополнительных измерений#
Для полного исключения лагов необходимо прегенерировать Нижний мир и Энд. Переключите мир в Chunky и скорректируйте радиус с учётом масштаба координат:
/chunky world world_nether
/chunky center 0 0
/chunky radius 1250
/chunky start
Поскольку 1 блок в Незере равен 8 блокам в обычном мире, радиус 1250 блоков полностью покрывает зону радиуса 10 000 блоков верхнего мира.
После завершения всех задач плагин выведет сообщение:
[Chunky] Task finished for world!Ваш сервер полностью защищён от лагов, связанных с генерацией чанков.




