Небольшой путеводитель по оптимизации сервера Minecraft от Paper Chan! | Перевод (Not Finished)

Руководство Небольшой путеводитель по оптимизации сервера Minecraft от Paper Chan! | Перевод (Not Finished)

Поддерживаемые версии
  1. 1.18
Предупреждение:
Ресурс является переводом! *ОРИГИНАЛ*
Если у вас проблем нет, то читайте.
Если вы заметили не состыковки с моим недо-переводом,
Вы всегда сможете помочь мне улучшить этот перевод


Мои Ресурсы



Предпосылки.png

Инструменты и программное обеспечение для пользователей Windows:
Notepad++Блокнот, но лучше.
WinSCPSFTP-клиент для передачи файлов.
  1. Заменять таб, пробелом в NotePad++: «Опции» > «Настройка» > «Синтаксисы» > «Заменять пробелом».
  2. Принудительный двоичный режим в WinSCP: «Параметры» > «Установка» > «Передача» > «Двоичный»


Начало.png
  • Установка
  • Миграция с существующего сервера с ядром vanilla, bukkit или spigot.
    • Никаких лишних действий не требуется! Просто замените серверное ядро бумагой (Paper).
  • Установите ядро
  • Настройте корневую папку и примите лицензионное соглашение (EULA) (применимо только для первоначальному запуску)
    • Создайте корневую папку для сервера.
    • Создайте текстовый файл с именем eula.txt со строкой eula=true.
    • Если вы хостите в Windows, не размещайте корневую папку на рабочем столе или в любом другом месте, где включена синхронизация OneDrive. Волшебная вещь происходит, когда вы делаете это, и вам это не понравится.
  • Запустите сервер


Конфигурации & оптимизация.png

Прежде чем мы начнем…
Не существует единственного значения, которое будет работать для каждого сервера!
Вы должны прочитать и понять каждый доступный вариант конфигурации и настроить числа в соответствии с вашим сервером. Оптимальная конфигурация для вашего сервера будет зависеть от оборудования машины, среднего количества игроков и типа запущенного игрового режима. Любое значение, показанное ниже, используется в качестве примера, пожалуйста, проверьте и поэкспериментируйте, а затем придумайте свой собственный набор чисел.​

По мере того, как ваш мир стареет и игроки переходят в позднюю игру, рабочая нагрузка на сервер со временем будет постепенно увеличиваться, поэтому оптимизация сервера - это не разовая задача, а постоянная работа.

В современной версии Minecraft для работы с настройками по умолчанию (Vanilla) требуется достойные характеристики сервера, и это может оказаться невозможным для некоторых серверов с малыми и средними характеристиками, где ресурсы сервера очень ограничены. Помимо выбора хоста и подходящих характеристик, важное значение имеет оптимизация конфигураций и компромисс с игровым процессом Vanill'ы. Внимательно прочтите параметры конфигов, представленные ниже, и вы обеспечите бесперебойную работу!​
Предварительно прогрузите свою карту

Создание новых чанков требует значительного количества ресурсов, поэтому рекомендуется предварительно прогрузить карту, если вы запускаете новую карту/сервер.​
Если вы не планируете устанавливать границу мира, все же рекомендуется предварительно сгенерировать 5~10к от вашего спавна, поскольку это поможет снизить нагрузку на ваш сервер в день запуска. Не говоря уже о том, что он будет обнаруживать любые потенциальные не найденные ошибки при генерации чанков до дня запуска.​
  • Используйте Chunky и ChunkyBorder от pop4959
    • Chunky - это простейший плагин для прогрузки, который в сочетании с ChunkyBorder позволяет настраивать формы границ по Вашему вкусу.
    • Пожалуйста, будьте бдительны при выборе границы, размер файла будет расти в геометрической прогрессии, чем дальше вы установите границу, и это может вызвать проблемы с хранением и резервным копированием позже.
Выбираем оптимальные значения для
View Distance & Simulation Distance
simulation-distance определяет, насколько среда вокруг вас активна (тикает/ticks).​
view-distance определяет, сколько чанков (территории) видно игроку.​
simulation-distance оказывает огромное влияние на производительность!
Поэтому более низкое значение поможет поддерживать среду без задержек. Значение по умолчанию у Vanill'ы - 10, и большинство дизайнов ферм на YouTube созданы на основе этого значения. Понижение этого значения повлияет на те фермы, которые мы рассмотрим позже. Лично я не опускался бы ниже чем 5, поэтому игровой процесс будет приятен; Однако, если вы делаете мини-игры или Skyblock, вы можете пойти намного ниже.​
view-distance обеспечивает дальнейший обзор ландшафта и не такой тяжелый при большом значении, как simulation-distance, но кушает больше оперативной памяти; Увеличивайте значение постепенно, чтобы найти наилучшее значения для вашего сервера, если вы решите его увеличить.​
  • Кроме того, вы можете определить индивидуальное значение для каждого мира в spigot.yml и перезаписать в server.properties.
  • Paper, скорее всего, уберёт старую no-tick-view distance, из-за существующего simulation-distance, так что в будущем следите за обновлениями!
  • (Мы рассмотрим детали в основных настройках server.properties позже)
Сохранение количества объектов под контролем
Объектов (Entity) в современной версии Minecraft являются ресурсоёмкими , даже самый крутой процессор на текущем рынке все равно будет поставлен на колени, если вы не будете держать сущностей под контролем.​
  • В идеале вы хотите, чтобы ваше общее количество Entity Ticks было ниже 30%.
    (При условии, что есть игроки, а не просто пустой сервер)
  • Timings от Aikar — отличный инструмент для поиска источника лагов и сравнения результатов оптимизаций.
Помните о последствиях!

С каждым изменением вы идите на компромисс! Большинство ваших игроков просто копируют популярные конструкции фермы блок за блоком, не зная, как это работает на самом деле, поэтому как владелец сервера важно понимать влияние вашего изменения, чтобы вы могли лучше объяснить игроку. В следующем главе я попытаюсь объяснить влияние каждого изменения и способы борьбы с этим компромиссом.​


механика появления мобов.png

Ниже демонстрируется, как работает спавн мобов вокруг игрока. График и указанное значение построены на основе стандартных значений по умолчани
Без имени-3.png

Любое изменение вышеперечисленных настроек требует, чтобы вы соответственно изменили общий размер фермы (про блоки) и назначенную для нее точку AFK (там где находитесь вы).
5 вышеупомянутых параметров конфигурации тесно связаны друг с другом, и очень важно убедиться, что каждое значение настроено правильно.​
  • Simulation Distance определяет максимально возможный размер фермы.
    • Ферма не может превышать радиус (Simulation Distance - 1)x16 блоков .
    • Все за пределами simulation distance не будет отмечаться, поэтому любая ферма, превышающая это значение, не будет работать.
  • Mob Spawn Rangeопределяет максимальный размер сборной платформы фермы.
    • Диапазон появления мобов должен быть от (Simulation Distance - 1) до 3 минимум.
      • Если вы используете стандартный Simulation Distance по умолчанию, равное 10, вы можете оставить диапазон появления мобов на уровне 8 или ниже.
      • Моб может появляться не менее чем в 24 блоках от игроков, поэтому установите диапазон появления мобов ниже 3 настоятельно не рекомендуется, если только ваше расстояние симуляции не равно 3 или ниже.
    • У каждой фермы мобов есть назначенная платформа для сбора мобов, размер платформы определяется исключительно этим значением (частями).
  • Despawn Range (hard) или hard despawn-rangeэто самое дальнее расстояние, на котором моб может существовать без мгновенного исчезновения.
    • Значение hard despawn-range определяет идеальное место для афк фарма.
      • Это значение 128(блоки) для ванили по умолчанию.
        (Большинство фармилок устанавливают обозначенное место AFK лишь немного в пределах этого значения)
      • Уменьшение этого значения ниже ванильного значения по умолчанию означает, что точки AFK на фермах мобов также должны быть скорректированы в новом hard despawn-range поскольку ограничение диапазона применяется как по горизонтали, так и по вертикали.
        (Дополнительные важные примечания находятся в следующем разделе…)
    • В hard despawn-range всегда должен быть равен вашему (mob-spawn-range)x16 блоков и никогда не меньше.
      (Это не позволяет серверу выполнять дополнительную работу по созданию моба только для того, чтобы он мгновенно исчезал, потому что он выходит за пределы hard despawn range)
  • entity-activation-range следует изменить в последнюю очередь, так как это сильно повлияет на игровой процесс.
При устранении неполадок, почему ферма не работает, обязательно просмотрите все конфигурации, упомянутые выше, и внесите необходимые изменения в дизайн фермы. Не копируйте и не вставляйте из руководств YouTube блок за блоком, не принимая во внимание эту конфигурацию.​
Взгляните на Маленькое руководство Paper Chan по ремонту вашей фермы в Нижнем мире для примера пошагового руководства по общим шагам по устранению неполадок.​
mobcapss.png

Новое в версии 1.18. Почему моя ферма медленнее, чем в версии 1.17, когда ничего не изменилось?
Minecraft запускает проверку появления между самым низким блоком и самым высоким блоком (начиная от 0 к 265 в 1.17), чтобы проверить и посмотреть, подходит ли блок для попытки спавна сущности, тогда он имеет 24% изменение успеха, чтобы появиться в этой конкретной позиции Y.
Фермы спроектированы на основе этого правила, и их идеальное расположение выбирается соответственно.
  • Большой периметр. Создание большого периметра вокруг вашей фермы исключает все другие возможные места возрождения, кроме выделенного места на платформе фермы. (Это можно увидеть на сервере SciCraft и в большинстве руководств по фермам, в которых для демонстрации используется void flat-world)
  • Ферма Эндермана на 0- Ферму Эндермена рекомендуется строить на 0, так как это наиболее эффективное место.
  • Ферма Нижнего мира над Крышей. Ферма Нижнего мира обычно строится высоко над Крышей Пустоты, так как обычно сложно создать большой периметр из-за количества присутствующей лавы, и, поднимаясь выше в Крышу Пустоты, вы перемещаете свою сферу despawn высоко в небе, чтобы устранить все возможности появления моба где-нибудь за пределами вашей фермы.
При этом ваша ферма может быть менее эффективной сейчас в 1.18 из-за изменения высоты мира. Вместо того, чтобы проверять подходящую попытку возрождения из 0 к 265, теперь он проверяет от 64 к 320 чтобы найти самый низкий и самый высокий блок для запуска попыток появления. Ваша ферма из 1.17, расположенная на 0 теперь имеет еще 64 дополнительных блока под ним, что замедляет спавн мобов.
Как решить проблемы…

  • Перестройте свою ферму в самой низкой точке мира, которая сейчас 64.
    (Это самое идеальное решение, но и самое болезненное).
  • Выкопайте еще больший периметр и очистите все, что находится под фермой. 64 к 0 (без блоков).
  • Попытки появления мобов предпринимаются на всех прогруженных с определенным spawn-limits в bukkit.yml (или paper.yml).
    Примите и поймите, что спавн мобов изначально несовершенен на многопользовательском сервере.
    Подробное объяснение приведено на per-player-mob-spawns разделе ниже.
Кроме того, в 1.18 требуемый уровень освещенности для появления моба был изменен на 0 также.
Наиболее эффективное расположение фермы - на минимально возможном уровне Y без блоков наверху. Из-за изменения высоты мира в 1.18 ваша ферма больше не находится в самом идеальном месте.



server.properties.png

Основные конфигурации для server.properties
YAML:
view-distance=10
Этот параметр устанавливает расстояние просмотра (только местность или же территория) сервера, если не указано иное в spigot.yml
YAML:
simulation-distance=10
Это устанавливает simulation-distance (тик/ticking) сервера, если не указано иное в spigot.yml
Относится к выбору оптимального Simulation и View Distance для получения дополнительной информации выше.​
Подбор подходящего сочетания view-distance & simulation-distance чрезвычайно важно
  • Если вы решили снизить view-distance и simulation-distance
    Пожалуйста, обратитесь к разделу "Как работает механика спавна мобов" выше, чтобы убедиться, что все остальные конфигурации настроены соответствующим образом.
    • simulation-distance всегда должен быть равен или меньше, чем view-distance.
      (Если simulation-distance установлено выше view-distance, будет применяться только область до расстояния просмотра)
    • Настоятельно не рекомендуется уменьшать это значение ниже 3.
      • Если simulation-distance установлен на 0, всего будет отмечено 9 фрагментов вокруг игрока.
      • Если simulation-distance установлен на -1, будет отмечен только проигрыватель фрагментов.
      • Если simulation-distance установлен на -2, все галочки отключены.
        Вуаля — одна уникальная конфигурация для лучшего оптимизированного сервера!
  • Если вы хотите предоставить игрокам дополнительный обзор местности, обратите внимание, что с каждым дополнительным увеличением после 10 общее количество загруженных фрагментов вокруг игрока будет увеличиваться в геометрической прогрессии.
    • Формула для расчета общего фрагмента, загруженного одним игроком: [(View Distance +2)x2+1]^2/2+0.5
      • Если view-distance=10(ванильное значение по умолчанию), один игрок загрузит 313 чанков.
      • Если view-distance=5, один игрок загрузит 113 чанков.
      • Если view-distance=15, один игрок загрузит 613 чанков.
    • Несмотря на то что view-distance использует значительно меньше ресурсов по сравнению с simulation-distance, пожалуйста, по-прежнему помните о его влиянии на производительность, особенно на больших серверах, где экономия ресурсов помогает.
  • Кроме того, вам предоставляется возможность перезаписать/указать расстояние просмотра и расстояние симуляции для каждого мира в spigot.yml. Мы рассмотрим это в разделе конфигурации для каждого мира позже.
    • Например, вы можете выбрать более высокую view-distance в the_end измерении, которое сделало бы навигацию по пустоте с Elytra более приятной для ваших игроков.


YAML:
allow-flight=true

Это предотвратит кики игроков сервером за «полет» во время езды на лошади или на строительных лесах. Имея этот вариант как true не означает, что все могут летать, это просто означает, что игроки не будут выкинуты, если сервер подумает, что они летают. За то, что игроки используют читы, должны следить анти-читы.​



bukkit.yml.png

Основные настройки для bukkit.yml
YAML:
spawn-limits:
  monsters: 70
  animals: 10
  water-animals: 5
  water-ambient: 20
  water-underground-creature: 5
  ambient: 15

Этот раздел определяет ограничение мобов на вашем сервере. Уменьшение значение monster оказывает самое прямое влияние на производительность сервера, поскольку объект является одной из самых ресурсоемких задач, которые сервер должен решать.​
Изменение диапазона появления мобов требует просмотра других связанных конфигураций.
Обратитесь к разделу "Как работает механика спавна мобов" для получения более подробной информации.
Чтобы поддерживать воспринимаемую плотность мобов в соответствии с ванильным значением по умолчанию, пожалуйста, также измените mob-spawn-range в spigot.yml соответственно для достижения этой иллюзии.​
Ниже приведен фактический расчет того, как рассчитывается число. Имейте в виду, что это предполагает идеальные условия для появления, то есть все блоки являются блоками для появления на уровне поверхности, где пустота неба примерно уравновешивает твердые подземелья.​
Для вашего удобства ниже приведена таблица предустановленных значений.​

Код:
Например, если я хочу установить макс. кол-во мобов на 45, а также сохранить плотность мобов примерно такой же, как и раньше, я бы решил математическое уравнение ниже

(Макс. кол-во мобов по умолчанию): (Область появления по умолчанию) = (Новое макс. кол-во мобов): (Новая область появления)

где константы следующие,

Диапазон появления мобов по умолчанию = 8 блоков.

Минимальное расстояние, на котором может появиться моб = 24 блока от игрока

Область появления по умолчанию = [(Диапазон появления мобов x2 x16) +1] ^ 2 - (24 x2 +1) ^ 2 = (8x2x16 + 1) ^ 2 - 49 ^ 2 = 66049 - 2401 = 63648

70: 63648 = 45: b; где b = новая зона возрождения (в блоках)

63648 х 45 = 70b

b = 40916

Пусть a = диапазон появления нового моба, где b = [(a x16 x2) +1] ^ 2 - (24 x2 +1) ^ 2, а b = 40916

(32а +1)^2 - 2401 = 40916

(32а +1)^2 = 43317

32а +1 = 208

32а = 207

а = 6,46

Затем я установлю mob-spawn-range равным 6 (или 7) в Spigot.yml.
Вот шпаргалка с предварительно заполненными предложениями для тех, кто слишком ленив, чтобы тренироваться с математикой или завалил алгебру в средней школе (о, это про меня), пожалуйста, внимательно прочитайте и примените конфигурацию соответствующим образом.​

Общее количество сущностей (%)
(против ванили)
Предложенный
spawn-limit (monster)
в bukkit.yml
Предложенный
mob-spawn-range
в spigot.yml
Фактический Расчетный
Число
100% (ваниль)70 (по умолчанию)8 (по умолчанию)8 (по умолчанию)
90%637 или 87.60
80%5677.18
70%496 или 76.74
60%4266.26
50%355 или 65.75
40%2855.18
30%214 или 54.55
20%1443.81
10%732.89
3%2Пожалуйста, обновите ваше серверное оборудование Мой умный холодильник Samsung или школьный пк может вместить
больше объектов

Предлагаемое число выше предназначено для того, чтобы плотность мобов соответствовала ванили, не стесняйтесь составлять свое собственное число, которое будет работать для вашего сервера. Пожалуйста, просмотрите раздел "Как работает механика спавна мобов", чтобы снова проверить другие конфигурации по мере необходимости.​
  • Обратите внимание, что требуемый уровень освещенности для появления монстров был изменен на 0 в 1.18.
    Все чаще приходится сталкиваться с ситуацией, когда доступная область возрождения монстров чрезвычайно мала; в результате они кажутся более сконцентрированными на темном пятне, особенно на краю вашей освещенной базы или под землей в закрытой пещере.
    Адаптируйтесь к этому изменению соответствующим образом и уменьшите число так, как считаете нужным для вашего сервера!
  • Проанализируйте свой отчет в Timings о времени в самое загруженное время, когда большинство игроков находится в сети.
    • Общая сущность должна составлять менее 30% от вашего тика, и если вы видите двузначное значение, потраченное на спавн мобов, это означает, что предел вашей сущности слишком высок, уменьшите его соответственно.
      (В идеале вы хотите, чтобы ваша плотность мобов была как можно ближе к ванильной, сохраняя при этом в среднее, менее 50 mspt в час пик. Продолжайте уменьшать значение до тех пор, пока не сможете добиться этого, если вы не можете поддерживать его с помощью предустановленного лимита выше)
  • Пока мобы убиваются мгновенно, без учета времени сбора мобов, урожайность фермы должна быть примерно такой же, как в обычном Minecraft, с учетом соответствующей корректировки дизайна фермы.
  • Обратите внимание, что на данный момент в 1.18 Железный Голем, Страж не ограничены этим конфигом. Требуется плагин для их правильного ограничения.
    • Дополнительную информацию см. в разделе "Качество жизни и обязательные плагины" ниже.
Каждый моб в игре подпадает под одну из 7 категорий ниже, кроме двух вышеупомянутых Железных Големов и Стражей.​
  • monster категория состоит из блэйза, пещерного паука, крипера, утопленника, древнего стража, дракона Края, эндермена, эндермита, вызывателя, гаста, гиганта, стража, хоглина, кадавра, иллюзионера, магма куба, фантома, пиглина, брутального пиглина, разбойника, разорителя, шалкера, чешуйница, скелет, слизь, паука, зимогора, досаждятеля, поборника, ведьма, иссушитель, скелет иссушителя, зоглин, зомби, зомби-сельский житель, зомбированный пиглин.
  • animals или creature категория состоит из пчелы, кошки, курицы, коровы, ослы, лисы, козы, лошади, ламы, мула, корова-гриба, оцелота, панды, попугая, свиньи, белого медведя, кролика, овцы, лошади-скелета, страйдера, ламы-торговца, черепахи, странствующий торговец, волк, лошадь-зомби.
  • ambient категория состоит из летучих мышей. Летучая мышь бесполезна.
  • water-animals или water_creature Категория состоит из кальмаров и дельфинов.
  • water-ambient Категория состоит из трески, иглобрюха, лосося, тропической рыбы.
  • water-underground-creature или underground_water_creature категория состоит из светящегося кальмара.
  • axolotl Категория (находится только в файле paper.yml) состоит из Аксолотля.

    Некоторые категории имеют два разных имени в списке из-за того, что бумага использует имена собственные в paper.yml пока bukkit.yml по-прежнему использует старые имена.

    Каждый объект будет отображаться индивидуально в отчете о времени, вы можете внести необходимые корректировки в соответствии с их категориями выше.

YAML:
ticks-per:
  animal-spawns: 400
  monster-spawns: 1
  water-spawns: 1
  water-ambient-spawns: 1
  water-underground-creature-spawns: 1
  ambient-spawns: 1
  autosave: 6000
Этот раздел определяет частоту попыток спавна каждой категории сущностей (значение в тиках).​
Minecraft всегда будет пытаться создавать сущности, пока не достигнет spawn-limits в предыдущем разделе. Изменение числа здесь должно быть вашим второстепенным выбором из-за того, что ограничение мобов почти всегда будет достигнуто. Все, что вы делаете, это просто откладываете надвигающуюся гибель, пожалуйста, установите надлежащее ограничение сущности на spawn-limits упоминалось ранее первым.
  • Расчет и проверка мобспавна стоит ресурсов, и всегда лучше уменьшить общий предел сущностей на spawn-limits сначала потом увеличить ticks-per здесь в качестве вторичного буфера. Пожалуйста, используйте /paper mobcaps и /paper playermobcaps чтобы контролировать и гарантировать, что лимит мобов всегда будет достигнута. Если ваш моб-лимит не может быть достигнут своевременно, это, вероятно, признак того, что ваш spawn-limits слишком высока и/или ваш mob-spawn-rangeслишком короткий.
    • Если вы заметили большее, чем обычно, количество тиков, потраченных на спавн мобов, в вашем отчете о времени, ваш spawn-limits может быть слишком высоким, уменьшите максимальное количество мобов в разделе выше, чтобы можно было достичь максимального количества мобов.​
    • Для игрового режима Skyblock/Oneblock это особенно важно, поскольку у сервера, как правило, возникают трудности с достижением лимита мобов из-за ограниченной области создания (что означает, что сервер постоянно пытается создать больше мобов). Пожалуйста, измените конфигурации соответствующим образом, чтобы решить эту проблему.​
  • Эта опция напрямую влияет на коэффициент доходности всех моб-ферм, поэтому выбор идеального числа здесь очень важен, так как это прекрасный баланс, когда дело доходит до оптимизации и балансировки игрового процесса.​


spigot.yml.png

Основные настройки для spigot.yml
YAML:
view-distance: default
simulation-distance: default
Это служит перезаписью идентичной конфигурации в server.properties​
  • Введите значение здесь, чтобы перезаписать значение внутри server.properties.
  • Значение default указывает серверу использовать значение из server.properties
  • Значение может быть установлено для каждого мира, если создана дополнительная категория.

YAML:
mob-spawn-range: 8
Как упоминалось выше в разделе bukkit.yml, это значение можно изменить, чтобы сохранить воспринимаемую плотность мобов прежней.​
  • Это значение всегда должно быть установлено на максимум (Simulation Distance - 1) с минимумом 3 поскольку любой объект выходит за пределы расстояния симуляции, и граничный фрагмент не будет отмечен. (см. примечание ниже)
    • Если вы работаете с ванилью по умолчанию simulation-distance из 10, вы можете настроить число между 8~3 без соблюдения вышеуказанного правила.
      (Отрегулируйте ниже, если вы все-таки опускали bukkit.yml лимит мобов)
    • Если ваш mob-spawn-range выше, чем simulation-distance например, воспринимаемая плотность мобов будет ниже из-за того, что монстр будет пытаться появиться за пределами вашего simulation-distance. Крайне важно иметь правильное число.
    • Например, если у вас есть simulation-distance из 6, диапазон появления вашего моба может быть установлен между 3~5.
    • Технически, 3 не минимальное значение, а из-за того, что мобы не спавнятся внутри 24 блоков вокруг игрока нет смысла опускаться ниже 3, так как это резко уменьшает зону возрождения, а предел мобов может быть не достигнут в крайнем случае.
  • Подробную информацию см. в разделе «Как работает механика спавна мобов» .

YAML:
nerf-spawner-mobs: false
Этот параметр удаляет ИИ из мобов, появляющихся из спавнера в игре, если ваш сервер позволяет игроку перемещать спавнеры, установка для этого параметра значения true может уменьшить задержку.​
  • Пожалуйста, переключите spawner-nerfed-mobs-should-jump на true в paper.yml, если вы решите включить это. Это позволит мобам прыгать, поэтому некоторые фермы будут напоминать функциональные.
  • Пожалуйста, прочтите главу "избегайте" ниже, для того чтобы узнать, почему спавнер Silktouch — не лучшая идея.


YAML:
max-entity-collisions: 8
Значение представляет собой максимальное количество сущностей, которое должно быть включено в поиск коллизий. Сервер перестанет обрабатывать любое дополнительное столкновение сущностей после достижения этого порога.​
  • Чем ниже это значение, тем выше производительность, поскольку ИИ животных выходит из строя, пытаясь найти путь вдали друг от друга в небольшом ограниченном пространстве.
  • Не устанавливайте значение ниже 3, так как это будет иметь разрушительные эффекты для вещей, которые полагаются на столкновения, чтобы работать должным образом.

  • Это не следует путать с gamerule maxEntityCramming.
    • Gamerule «cramming» устанавливает максимальное количество сущностей, которые могут быть стиснуты вместе, прежде чем они начнут получать урон от удушья.
    • Чтобы уменьшить это значение, используйте /gamerule maxEntityCramming [number](по умолчанию 24)
    • Это игровое правило имеет прямое влияние на с ферму животных одним блоком, поскольку максимальное количество животных, которое может содержаться в пространстве блока, определяется этим значением.

YAML:
entity-tracking-range:
  players: 48
  animals: 48
  monsters: 48
  misc: 32
  other: 64
Это определяет, на каком расстоянии в блоках отслеживается оболочка объекта и отправляется клиенту, чтобы игрок мог их увидеть.​
  • Paper предоставляет эти параметры, чтобы вы могли решить, на каком расстоянии должен отслеживаться объект (отображать клиенту) вместо того, чтобы отслеживать все до граничного чанка (simulation-distance-1). Это оптимизированное решение для борьбы с затратными сущностями.
    • Вы можете найти соответствующие преимущества производительности в Timings о времени, указанном в Chunk provider tick.
      • 1-й этап трекера (tracker stage 1) — отслеживает объекты.
      • 2-й этап трекера (tracker stage 2) — оповещает изменения в отслеживании объектов.
        (Если Chunk provider tick занимает значительное количество ресурсов, вы должны сначала попытаться уменьшить кол-во всего объекта, затем уменьшить simulation distance, и если ничего не помогло, уменьшить диапазон отслеживания в качестве последнего варианта)
  • Для небольших серверов выживания или серверов с мощным оборудованием вы можете увеличить эти лимиты в вышеуказанных категориях, чтобы улучшить игровой процесс для вашего игрока с подразумеваемым компромиссом производительности.
    • player состоит из players.
    • monster состоит из monster, raider, и flying monster.
    • animal состоит из villager, water-animal, и animal.
    • misc состоит из itemframe, painting, dropped item, experience orb.
    • other состоит из всего, что не перечислено выше.
  • Значение находится в blocks и всегда должен быть установлен максимум (simulation-distance-1)х16 и не менее 1.
    (Бонусный факт: установка значения 0, все объекты будут скрыты; установка значения на -1, Все существа по сути становятся ниндзя! ПОЖАЛУЙСТА, НЕ ДЕЛАЙТЕ ЭТОГО)
  • Если вы решите внести изменения (исключая players), пожалуйста, также сопоставьте значение на соответствующем entity-activation-range ниже.
  • Если вы столкнулись с невидимой засадой Гаста, это может быть симптомом вашего entity-tracking-range, monster установлен слишком низко.
    • Кроме того, проверьте настройку на стороне клиента «Параметры»> «Настройки видео» > «Расстояние до объекта» и убедитесь, что она установлена достаточно высокой, чтобы отображать Гаста.


YAML:
entity-activation-range:
  animals: 32
  monsters: 32
  raiders: 48
  misc: 16
  water: 16
  villagers: 32
  flying-monsters: 32
  villagers-work-immunity-after: 100
  villagers-work-immunity-for: 20
  villagers-active-for-panic: true
  tick-inactive-villagers: true
  wake-up-inactive:
    animals-max-per-tick: 4
    animals-every: 1200
    animals-for: 100
    monsters-max-per-tick: 8
    monsters-every: 400
    monsters-for: 100
    villagers-max-per-tick: 4
    villagers-every: 600
    villagers-for: 100
    flying-monsters-max-per-tick: 8
    flying-monsters-every: 200
    flying-monsters-for: 100

entity-activation-range определяет, как далеко (в блоках) объект должен быть активирован.​
Любая сущность, выходящая за пределы этой зоны, будет с меньшей частотой тиков.​
  • Эти значения всегда должны быть установлены на максимум ( simulation-distance– 1)х16 и не ниже 16, если на вашем сервере используется чрезвычайно низкое simulation-distance/view-distance.
  • Изменение диапазона активации повлияет на все аспекты игрового процесса, поэтому действуйте осторожно.
    • Число -1 отключит это поведение и восстановит поведение ванили; однако это сильно ударит по производительности вашего сервера. Делайте это на свой страх и риск и только в случае крайней необходимости.
  • Если вы внесете изменения в entity-tracking-range в предыдущем разделе, пожалуйста, также увеличьте соответствующую категорию в entity-activation-range, чтобы игрок фактически не видел замороженные сущности.
  • Уменьшение дальности активации сущности — крайняя мера.
    • Сначала вы должны уменьшить общее количество объектов и simulation-distance/view-distance. Изменяйте эту конфигурацию только в том случае, если все остальные меры оказались недостаточными для повышения производительности.
  • tick-inactive-villager может быть изменен на false, если вы не хотите чтобы всех жителей деревни обрабатывал сервер (тиками), которые загружены, но находятся за пределами диапазона активации. Другими словами, активными будут только жители, которые находятся в пределах диапазона активации.
    • Тем не менее, если игрок не находится в непосредственной близости, это снижает доходность ферм железных големов.
    • Таймер восстановления торговли с сельскими жителями не снизится, если поблизости нет игроков.
  • Если у вас возникли несоответствия со скоростями передачи на вагонетках, когда вы не находитесь на железной дороге, пожалуйста, измените значение misc на -1, чтобы устранить проблему. EAR может налагать отрицательный эффект и ломать хитроумное устройство редстоуна в этом случае использования.


work immunity и wake up inactive - это способ Paper привнести больше жизни в мир, позволив определенной сущности “проснуться” и выполнить определенную работу в течение определенного промежутка времени. Это позволяет сельскому жителю пополнять запасы, находить работу и т.Д…​
Чтобы немного подробнее остановиться, мы будем использовать wake-up-inactive в качестве примера, чтобы помочь вам лучше понять механику.​
YAML:
wake-up-inactive:
  animals-max-per-tick: 4
  animals-every: 1200
  animals-for: 100
Вышеуказанная настройка приводит к следующему поведению…​
На каждые 1200 игровых тиков (animals-every: 1200) есть шанс, что до 4 случайно выбранных загруженных животных (animals-max-per-tick: 4) проснутся на 100 тиков (animals-for: 100), где они смогут делать разные вещи и будут невосприимчивы к эффекту замораживания, находясь слишком далеко от игроков.​


YAML:
merge-radius:
  item: 2.5
  exp: 3.0
Бумага более агрессивно объединяет брошенные предметы и сферы опыта, чтобы уменьшить влияние на производительность большого количества брошенных предметов на земле.​
  • Значение находится в блоках , отрегулируйте в соответствии с вашими потребностями.
  • Значение -1 отключает его. Обратите внимание, что это снижение производительности.
  • Кроме того, вы можете настроить experience-merge-max-value в paper.yml, если вы все еще хотите объединить exp orb, но с установленной суммой максимального значения.
  • Если вы хотите восстановить Опыт от Эндер Дракона, после победы или просто любите видеть, как к вам приближается куча шаров опыта, когда вы сидите на своей ферме, вы можете отключить эту опцию с подразумеваемыми компромиссами в производительности.



paper.yml.png

YAML:
despawn-ranges:
  monster:
    soft: 32
    hard: 128
  creature:
    soft: 32
    hard: 128
  ambient:
    soft: 32
    hard: 128
  axolotls:
    soft: 32
    hard: 128
  underground_water_creature:
    soft: 32
    hard: 128
  water_creature:
    soft: 32
    hard: 128
  water_ambient:
    soft: 32
    hard: 64
  misc:
    soft: 32
    hard: 128


Это значение определяет, как далеко у моба должен быть шанс исчезнуть (soft) или мгновенно исчезнуть (hard).​
Он разделен на 8 категорий, чтобы обеспечить более точные параметры контроля над всеми типами исчезновения сущностей.​
  • Пожалуйста, обратитесь к предыдущему разделу для bukkit.yml в mob-limits чтобы увидеть, что каждый объект попадает под какую категорию.
  • Если бы вы сохранили свой simulation-distance по умолчанию, понижение hard значения увеличит воспринимаемую плотность мобов за счет дополнительных действий по удалению/появлению на сервере. (см. примечание ниже)
Если ваш simulation-distance установлен ниже 10…​
  • Значение hard despawn-range должно быть (simulation-distance-1)x16 блоков.
    • Это гарантирует, что у всех сущностей есть шанс исчезнуть до того, как они попадут в границы чанка, тем самым сохранив естественную плотность мобов.
      • Изменение этой конфигурации повлияет на точку AFK по умолчанию на фермах, поскольку ограничение диапазона применяется как по горизонтали, так и по вертикали. Соответственно скорректируйте дизайн фермы.
    • Если вы решите использовать значение по умолчанию 128, чтобы сохранить идеальную устойчивость AFK spot против ванили при использовании более низкого simulation-distance и/или mob-spawn-range, вы столкнетесь с нечетной плотностью мобов, крайне неравномерным спауном мобов и/или чрезмерным количеством мобов, превышающим лимиты появления.
      • Чтобы помочь виртуализировать побочный эффект сохранения hard despawn-range выше чем ticking view-distance, пожалуйста, прочтите следующий сценарий…

        Игрок по имени BumbleTree просто отдыхает на своей базе. Он сделал простой измельчитель мобов у своей кровати, потому что ему нравится спать под звуки рычания зомби, поэтому он обычно держит несколько десятков из них внутри измельчителя, пока ему не понадобится опыт.

        В субботу вечером, BumbleTree решает навестить свою девушку из Майнкрафт Naomi, поэтому он покидает свою базу пешком. Когда он удаляется от своей базы, все зомби внутри его дробилки выгружаются вместе с куском. Пока его нет, игрок по имени Jerry решил походить по его базе и решил украсть немного пшеницы из сундука. Джерри тоже заметил кое-что странное! Сейчас ночь, но вокруг него почти не появляется толпа!?

        Это потому, что мобкап уже достигнут, а зомби все еще находятся внутри дробилки. Зомби никогда не давали возможности должным образом исчезнуть, поэтому, когда новый игрок посещает область и загружает фрагмент, новый моб не появляется из-за того, что мобкап уже насыщен, что создает иллюзию того, что мобы на самом деле не появляются. Именно поэтому крайне важно обеспечить hard despawn-range предложенному выше значению. Это гарантирует, что все мобы исчезнут и правильно перераспределены.

        Теперь, когда вы понимаете роль hard despawn-range. Выберите свой собственный яд и выбирайте с умом!
  • В hard despawn-range также всегда должен быть равен вашему mob-spawn-range в spigot.yml и никогда ниже.
  • Пожалуйста, внимательно ознакомьтесь с разделом "Механика появления мобов", чтобы проверить соответствующие конфигурации.


YAML:
per-player-mob-spawns: true
Бумага будет пытаться создавать мобов более равномерно для всех игроков онлайн.​
  • Убедитесь, что этот параметр установлен на true. Это выгодно для большинства серверов.
  • Когда включена, эта функция глобальное ограничение мобов (spawn-limits) будет изменяться в зависимости от количества игроков онлайн.
    Чтобы получить доступ к подробной разбивке мобкапов, используйте следующие рекомендации…
    • /paper mobcaps для глобальных мобкапов и общего количества спаунов.
    • /paper playermobcaps для мобкапов игроков.
      (Это особенно полезно для устранения неполадок с мобфермами, если вы стоите на своем афк-споте, и внутри фермы ничего не появляется, а мобкап уже заполнен, это означает, что вы не прошли проверку спавна)
  • Шансы на появление основаны на количестве загруженных чанков и ограничениях на появление, как определено в bukkit.yml (или paper.yml). Пожалуйста, внесите необходимые корректировки, когда это необходимо, особенно если вы не включили его ранее.
    Спавн ванильных мобов не только сложен, но и по своей сути ошибочен на многопользовательском сервере без per-player-mob-spawns.
    • Например, у нас есть два игрока в измерении Нижнего мира: игрок-А AFK находится высоко на ферме свиней на потолке Нижнего мира, а игрок-Б просто отдыхает в биоме Пустоши Нижнего мира.
    • Несмотря на то, что попытки возрождения предпринимаются вокруг всех загруженных чанках вокруг обоих игроков; большинство успешных попыток спавна мобов завершатся вокруг игрока с наиболее благоприятными условиями спавна . В этом случае игрок-B получит большую часть мобов, а игрок A получит немного просто потому, что вокруг игрока-B больше точек возрождения. Обратитесь к ранее как работает спавн мобов, для получения более подробной информации.
  • Сервер откажется от реализации Mojang спавн мобов для каждого игрока, если для этого параметра установлено значение false.
Автор
KungfuEpt
Просмотры
11 370
Первый выпуск
Обновление
Оценка
5.00 звёзд 2 оценок

Другие ресурсы пользователя KungfuEpt

Поделиться ресурсом

Последние рецензии

этот гайд даже лучше прошлого гайда современной оптимизации, было бы классно что-бы гайд всегда дорабатывать а не бросить как прошлый автор
KungfuEpt
KungfuEpt
"было бы классно что-бы гайд всегда дорабатывать а не бросить как прошлый автор" - ЭХЭХХХАХ... Хэъ... Не получилось.
Не знаю кто автор данного перевода, но это безумно прекрасно!
KungfuEpt
KungfuEpt
Я автор перевода) Но создатель оригинала - Eternity.
Благодарю за рецензию! Сейчас я болею и не сижу за ПК, т.к. просто сил нет)
Назад
Сверху Снизу