FAQ / Документация / Известные проблемы и их решения.
Можно найти в вики по ссылке вверху
Возможности:
Chunk Pregenerator имеет множество функций, делающих его очень удобным для пользователей, таких как:
Полная документация каждой команды,
Автодополнение/подсказки для аргументов команд по мере необходимости,
Улучшенное логирование с цветовой кодировкой и структурированное отображение происходящего,
Опциональные элементы UI, которые проще в использовании, чем обычный текст.
Многопоточная генерация мира:
Chunk Pregenerator использует несколько ядер для генерации измерения.
Это достигается за счет грамотного управления внутриигровым фоновым генератором мира, который поддерживает многопоточную генерацию, но не включает её самостоятельно.
Это может значительно ускорить генерацию мира, так как этапы генерации обрабатываются независимо друг от друга.
Генерация нескольких миров:
Chunk Pregenerator больше не генерирует чанки на серверном потоке, он только управляет тем, какие чанки и где генерировать, на серверном потоке.
Это позволяет одновременно генерировать несколько измерений, не влияя на скорость генерации друг друга, при условии, что на сервере достаточно потоков.
Возможность игры во время предгенерации:
Chunk Pregenerator спроектирован для работы во время игры.
Генерация мира — задача, интенсивно использующая процессор, но благодаря работе в фоновом режиме её можно выполнять незаметно.
Однако это применимо только при наличии достаточных ресурсов, в противном случае это может повлиять на игровой процесс.
Улучшенные проверки генерации чанков:
Chunk Pregenerator использует гораздо более оптимизированный способ проверки чанков.
Эта проверка выполняется намного быстрее обычной, но менее точна из-за ограниченного объема предоставляемой информации.
Кроме того, более медленные проверки выполняются в фоновом режиме, чтобы не влиять на игровой процесс, и могут быть выполнены на лету и прерваны.
Очень эффективное управление памятью:
Chunk Pregenerator не генерирует чанки вслепую.
Он также управляет собственным использованием памяти, отслеживает утечки памяти и при необходимости очищает их после Minecraft.
Это не идеально и не может учитывать другие моды, но позволяет держать под контролем известные утечки памяти Minecraft, не вызывая проблем.
Кроме того, задачи предгенерации оптимизированы до такой степени, что занимают так мало ресурсов, что любая разумная генерация останется незамеченной.
Ретрогенерация:
Chunk Pregenerator теперь является одним из немногих модов, поддерживающих ретрогенерацию в версиях 1.14 и новее.
Это достигается путем воссоздания самого этапа генерации мира.
Он частично работает на основном потоке, так как чанки уже полностью интегрированы в мир, поэтому это повлияет на производительность сервера, но в гораздо меньшей степени, чем обычная генерация.
Встроенный профайлер (1.12 или старше):
Chunk Pregenerator имеет встроенный профайлер с UI, позволяющий видеть статистику в реальном времени о том, что происходит в вашем мире.
Он также предоставляет информацию о таких вещах, как обновления блоков, тики блоков, активные TileEntity/Entity, а также о том, какие из них тикают, а какие нет.
Это также выполняется только в сетевом потоке, что позволяет получать информацию, не зависая, если сам сервер завис.
Управление измерениями (1.16 или новее):
Chunk Pregenerator позволяет отключать или включать измерения даже во время работы игры.
Это может быть полезно, так как измерения больше не могут выгружаться самостоятельно и могут потреблять небольшое количество ресурсов.
Обычно это не проблема, но если моды добавляют множество измерений, которые используются лишь несколько раз, а затем игнорируются, это может создать дополнительную ненужную нагрузку.
Сиды для конкретных измерений (1.19 или новее):
Chunk Pregenerator позволяет устанавливать сиды для каждого измерения, включая модифицированные.
Это можно настроить в файле "pregen_seeds.json" в папке конфигурации сервера.
Предупреждения о массовой генерации мира (+400 чанков в радиусе):
Этот раздел предназначен для любых версий Minecraft. Если что-то специфично для версии, это будет отмечено.
Поскольку меня много раз спрашивали о массовой генерации мира, и я повторяю одни и те же предупреждения, я решил их записать.
Эти предупреждения относятся только к ванильной версии; моды значительно усугубят эти проблемы, поэтому, если вы это читаете, подумайте о том, сколько моды добавляют. (Моды на структуры — особая проблема)
Итак, вы хотите сгенерировать область больше 250 чанков / 4000 блоков в радиусе. Скажем, 1500 чанков в радиусе или больше. Есть несколько вещей, о которых вам, как игроку или владельцу сервера, необходимо позаботиться, чтобы не получить поврежденный мир или мир, использующий столько оперативной памяти, что играть станет невозможно. К сожалению, в каждой версии Minecraft есть утечки памяти.
Первое, что нужно знать: Массовая генерация мира требует времени.
Если вы генерируете мир радиусом 1000 чанков в ванильной версии, будьте уверены, что это займет 24-48 часов. Если вы увеличите радиус до 2000 чанков, время увеличится как минимум в 4 раза. Но обычно оно увеличивается в 8 раз из-за объема данных. Таким образом, радиус в 2000 чанков, скорее всего, займет неделю. В зависимости от модпака время может увеличиться в 10, 50 или только в 1.2 раза.
Если вы выберете максимальный радиус (25 000 чанков), это займет ГОД. И это не с настройками по умолчанию. Я имею в виду полный год при самых оптимизированных настройках. И это рассчитано для процессора I5-7500.
Это не самый лучший процессор, но он уже довольно быстр по сравнению с серверными процессорами.
Следующее: Имейте достаточно места для хранения.
У меня есть небольшой мир в версии 1.16.5 (радиус 150 чанков в обычном мире и 100 в Нижнем мире), и он уже занимает 700 МБ в слегка модифицированном мире (только генерация). Pregen даже не заметил моды.
Так что если вы удвоите это, вы уже получите 2.8 ГБ при радиусе 300 и 200 чанков. При радиусе 1000 чанков использование дискового пространства, скорее всего, достигнет трехзначных значений в ГБ только для мира. (Моды сделают это еще хуже)
Убедитесь, что вы готовы к этому. Если вы планируете массовую генерацию, имейте как минимум 1 ТБ свободного места, если вы заходите достаточно далеко. Это всего лишь предложение; если вы знаете лучше, вы знаете, что делать.
Следующее: Не начинайте с финального мира.
Если вы планируете массовую генерацию, не начинайте с финального мира, в котором хотите играть. Начните с меньшего тестового мира (с тем же сидом) и посмотрите, как все работает. Например, сделайте генерацию радиусом 300 чанков и посмотрите, какие проблемы возникнут. Если проблема возникнет в середине генерации на 75% и мир повредится, вы потеряете гораздо больше времени, чем просто 24-часовая генерация. И самое замечательное, что Chunk Pregenerator также поддерживает расширение. Таким образом, при поэтапной генерации вы сможете видеть проблемы и исправлять их. Это более медленный процесс, но вам нужно понять, что нужно вашей игре для стабильности.
Вы можете рискнуть и просто начать, надеясь, что все пройдет хорошо, но обычно в таких масштабах это не работает. Радиус до 300 чанков безопасен, даже если некоторые эффекты использования оперативной памяти проявятся, они останутся достаточно малыми, чтобы не вызвать проблем при 4-5 ГБ ОЗУ.
Следующее: Следите за файлами структур, особенно шахт (только 1.12)
В версии 1.12 или старше структуры хранятся глобально. Это означает, что они всегда загружены. Обычно это не проблема, если их не очень много (меньше 100). Проблема в том, что шахты появляются ВЕЗДЕ, и их ОЧЕНЬ МНОГО.
Почему это проблема, если "файл шахты весит всего 500 КБ" (пример)? Видите ли, Minecraft хранит их не только глобально, но и глобально в 2 экземплярах. Да, дважды. Один раз в пригодной для игры форме, а второй раз в несжатом NBT-формате для ускорения записи. И это проблема, потому что фактические файлы чрезвычайно сжаты. Так что эти 500 КБ могут уже означать 1.5-3 ГБ использования оперативной памяти. Такое сильное сжатие. Все файлы в папке "data" сжаты именно так. Так что если вы видите выбросы, это может быть причиной высокого использования ОЗУ. Потому что они хранятся глобально в оперативной памяти. (Но моды обычно хранят их только в 1 экземпляре, в отличие от структур, которые хранятся в 2)
Так какое же решение? Для ванильных структур вы можете просто удалить файлы, убедившись, что сервер не запущен. Единственное, что перестанет работать, это команда "locate", потому что она использует эти файлы. И вам нужно удалять только чрезмерно большие файлы. Все, что меньше 3 цифр в КБ, можно оставить. Если вы беспокоитесь, что что-то сломается, просто переименуйте их для теста.
Но для ванильных структур следите за файлом шахт. О, и для модов, добавляющих структуры. В зависимости от реализации, эта проблема существует и для них. Reconcurrent Complex, например, хранит все свои структуры в одном файле, и он обычно быстро становится большим.
Последнее: Вам нужно обслуживать свою предгенерацию.
Да, вы не можете просто запустить её и ждать завершения; вам нужно следить за ней. Например, держать сообщения чата открытыми в любое время, пока вы не спите.
Потому что если возникнет проблема, вы должны о ней знать. В версии 1.12 у Chunk Pregenerator есть предохранители, которые завершат игру, чтобы сохранить файл сохранения в безопасности. В версиях +1.14 их почти нет, потому что проблемы, которые были в 1.12, настолько децентрализованы, что больше не могут повлиять на основную игру.
Но в целом, если вы не следите за своей предгенерацией и что-то повредится из-за того, что вы не проверили, это, скорее всего, приведет к перезапуску с нуля.
Этот список — наиболее часто повторяющиеся проблемы при массовой генерации (+300 чанков в радиусе (10 000 блоков в диаметре)), о которых я предупреждал.
Надеюсь, это поможет вам подготовиться и учесть все это.
