Что такое тпс в minecraft

Обновлено: 23.04.2024

Spigot / Paper предлагает настройки, которые значительно улучшают производительность сервера Майнкрафт. В этом руководству представлены предлагаемые значения, позволяющие получить максимальную отдачу от вашего сервера без ущерба для игрового процесса.

Проблемы и решения

Главное, что нужно понимать, — все, что касается обработки игрового мира будет обрабатываться только на одном вычислительном ядре физического сервера. Так что если вдруг у вас прекрасный сервер с десятком вычислительных ядер, то загружено будет только одно. Все остальные будут фактически простаивать. Такова уж архитектура приложения, и ничего вы с этим поделать не сможете. Так что при выборе сервера следует обращать внимание не на количество ядер, а на тактовую частоту. Чем она будет выше, тем лучше будет производительность.

Что касается вопроса об объеме оперативной памяти, тут следует исходить из следующих показателей:

  • планируемое количество игроков;
  • планируемое количество миров на сервере;
  • размер каждого мира.

Для запуска серверной части рекомендуем воспользоваться флагами, указанными в статье Tuning the JVM – G1GC Garbage Collector Flags for Minecraft. Эта «черная магия» позволяет серверу грамотно настроить «сборщик мусора» и оптимизирует использование оперативной памяти. Не стоит выделять памяти больше, чем реально потребляет сервер при пиковом наплыве игроков.

Генерация карты блоков

“Вы действительно считаете, что Луна существует, только когда вы на неё смотрите?” (Альберт Эйнштейн)

Абсолютно новый сервер. Как только игрок первый раз успешно подключается, игровой персонаж появляется на общей точке сбора (спаун). Это единственное место, где игровой мир предварительно генерируется сервером. В этот же момент клиентская часть смотрит в настройки, и ключевым параметром является дальность прорисовки. Измеряется она в чанках (область карты 16x16 и высотой в 256 блоков) Сколько чанков там указано, именно столько и будет запрошено у сервера.

На сервере хранится глобальная карта мира, и если в ней еще нет сгенерированных блоков в точке появления игрового персонажа, то сервер их динамически генерирует и сохраняет у себя. Мало того, что это требует больших вычислительных ресурсов, так еще и постоянно увеличивает размер карты мира. На одном из старейших анархических серверов 2b2t (2builders2tools) размер карты уже превысил 8 Tb, а граница мира проходит на отметке в 30 млн блоков. С этим сервером связаны тысячи историй, и он заслуживает отдельной статьи серии статей.

Генерация мира вокруг одного игрока — не проблема. Генерация мира вокруг сотни игроков вызовет незначительные тормоза сервера на протяжении короткого времени, после чего нагрузка снизится. Генерация мира на дальность прорисовки клиента вокруг тысячи игроков уже способна «уронить» сервер и повыбрасывать с него всех клиентов по таймауту.

В серверном ПО имеется такое значение, как TPS (Ticks per Server — тактов в секунду). Штатно 1 такт равен 50 мс. (1 секунда реального мира равна 20 тактам игрового мира). Если обработка одного такта вырастет до 60 секунд — серверное приложение будет закрыто, выкинув всех игроков.

Выход — ограничить мир определенными координатами и выполнить предварительную генерацию блоков. Тем самым мы снимаем необходимость динамической генерации в процессе игры, и серверу будет достаточно прочитать уже существующую карту. Оба вопроса решаются одним-единственным плагином WorldBorder.

Проще всего задать границу мира в виде окружности относительно точки спауна (хотя можно ее сделать любой формы) одной командой:


Если игровой персонаж попытается пересечь границу, то будет отброшен на несколько блоков назад. Если это проделать несколько раз за ограниченное время, то нарушитель будет принудительно телепортирован на точку спауна. Предварительная генерация мира выполняется еще проще, командой:


Поскольку данное действие потенциально может затронуть игроков, находящихся на сервере, не забудьте подтвердить выполнение:


В общей сложности на то, чтобы сгенерировать мир радиусом в 5000 блоков (

40 млрд блоков) ушло примерно 2 часа на процессоре Intel® Xeon® Gold 6240. Поэтому, если хотите запустить прегенерацию большей карты, учитывайте, что этот процесс займет приличное количество времени, а TPS сервера будет серьезно снижено. Кроме того, помните, что даже радиус в 5000 блоков потребует примерно 2 Гб места на дисковом накопителе.

Несмотря на то, что крайняя версия плагина была разработана для Minecraft версии 1.14, опытным путем выяснено, что она прекрасно работает и на последующих версиях. Полный список команд с пояснениями доступен на форуме плагина.

Проблемные блоки

Разновидностей блоков в Minecraft великое множество. Однако мы бы хотели остановить внимание читателей на таком блоке, как TNT. Как следует из названия, этот блок представляет собой взрывчатку (примечание редакции — это игровой предмет виртуального мира и ничего с настоящими ВВ этот предмет не имеет). Его особенность такова, что в момент активации на него начинает действовать сила гравитации. Это заставляет сервер обсчитать все координаты, если в этот момент блок начинает падать.

Если блоков TNT несколько, то детонация одного блока вызывает детонацию и включение гравитации у соседних блоков, разбрасывая их во все стороны. Вся эта красивая механика на стороне сервера выглядит как множество операций по подсчету траектории каждого из блоков, а также взаимодействия с соседними блоками. Задача крайне ресурсоемкая, что легко может проверить каждый. Сгенерируйте и подорвите куб из блоков TNT, размером хотя бы 30x30x30. И если вы думали, что у вас хороший мощный игровой компьютер, то сильно заблуждались ;)


Подобный «эксперимент» на сервере с Intel® Xeon® Gold 6240 привел к серьезной «просадке» TPS и 80% нагрузке на CPU в течение всего времени детонации блоков. А следовательно, если кто-либо из игроков сможет проделать подобное, то проблема с производительностью затронет всех находящихся на сервере игроков.

Еще более жесткий вариант — Кристаллы Края. Если TNT все же взрывается последовательно, то Кристаллы Края детонируют все одновременно, что в теории может вообще остановить работу серверного приложения.

Избежать этого сценария можно, только полностью запретив использование данных блоков в игровом мире. Например, с помощью плагина WorldGuard. Обратите внимание, что сам по себе этот плагин не работает без другого плагина WorldEdit. Так что устанавливаете вначале WorldEdit, а затем WorldGuard.

Заключение

Грамотное управление игровым сервером — задача не из простых. Сложности и снижение производительности будут поджидать на каждом шагу, особенно если не брать в расчет саму механику игрового процесса. Предусмотреть все невозможно, ведь игроки порой бывают очень изобретательны в попытках заставить сервер выполнить то, для чего он не был предназначен. Только разумный баланс между рисками и устанавливаемыми ограничениями позволит серверу работать в непрерывном режиме и не снижать свою производительность до критичных значений.

На карантине некоторые наши сотрудники соскучились по любимым офисам и решили воссоздать их внутри Minecraft. У вас тоже есть шанс заглянуть к нам в гости, не рискуя своим здоровьем и не тратя время на дорогу.

Bukkit.yml

spawn-limits
По умолчанию: monsters: 70, animals: 10, water-animals: 15, water-ambient: 20, ambient: 15
Оптимизировано: monsters: 50, animals: 8, water-animals: 7, water-ambient: 10, ambient: 1
Влияние на производительность: Большое

chunk-gc.period-in-ticks
По умолчанию: 600
Оптимизировано: 400
Влияние на производительность: Среднее

➫ Позволяет быстрее выгружать свободные чанки. Чем меньше тиков, тем выше будет показатель TPS, про который вы можете прочитать в конце этой статьи.

ticks-per.(type)-spawns
По умолчанию: monsters:1, water:1, water-ambient:1, ambient:1
Оптимизировано: monsters:5, water:11, water-ambient:21, ambient:31
Влияние на производительность: Среднее

➫ Этот параметр устанавливает, как часто (в тиках) сервер пытается породить сущности. Увеличение времени между попытками спавна не должно повлиять на игровой процесс. Смещение частоты тиков больше распределяет их по времени.

Примечание: Увеличивайте значение только в том случае, если у вас значительные потери тиков при выполнении задачи mobSpawn.

Предварительная генерация карты

Предварительная генерация карты имеет большое влияние на устранение лагов на сервере Майнкрафт. Обязательно сделайте это на своем сервере.

  1. Установите плагин WorldBorder
  2. Поставьте разумное ограничение по размерам карты
  3. Пропишите команду: /wb fill
  4. Подождите… это может занять вплоть до нескольких часов в зависимости от размера карты. В идеале это нужно делать до того, как карта будет запущена, так как это вызовет задержку.
  5. Оставьте ограничение мира, чтобы чанки больше никогда не создавались (тогда вся карта будет сразу прогружена и не будет лагов из-за прогрузки чанков).

Server.properties

view-distance
По умолчанию: 10
Оптимизировано: 4-8
Влияние на производительность: Сильное

➫ Это самый важный параметр во всех ваших файлах, поскольку он ограничивает расстояние рендеринга чанков. Серверы с открытым миром (например, Survival) должны стремиться использовать значение 6+, но другие серверы с общим хостом, низкими характеристиками или большим количеством игроков могут использовать значение 4-5, если рендеринг чанков вызывает лаги.

Для сервера показатель TPS является очень важным и самое максимальное значение TPS равно 20, именно с этой скоростью он и выполняет все задачи. Например, поведение мобов, скорость роста урожая, добыча блоков и многое другое. Чем ниже будет падать TPS сервера, тем больше зависаний будет на сервере. Блоки будут выпадать с задержкой, мобы будут зависать и все в этом духе. Если TPS упадет слишком низко, это может привести даже к краху всего сервера.

Значения TPS

Пинг показывает, количество времени (в миллисекундах) требуемое для обработки данных игрока на сервере. Чем дальше игрок географически находится от сервера, тем дольше будет доходить данные и тем больше будет пинг. Как владелец сервера вы должны разместить свой сервер в регионе, где вы предпочитаете иметь свою базу игроков, или в регионе, который находится на близком расстоянии ко всей вашей аудитории.

Пример: Если взять хостинг с датацентром в США, а ваши игроки будут из России или других стран СНГ, тогда у всех игроков будет очень высокий пинг и у них будут задержки. Опять же если ваши игроки из России, необязательно покупать хостинг с датацентром в России, можно брать в Германии, Франции. Там достаточно играбельный пинг и многие проекты держат там сервера.

Показатели пинга

Что такое тпс в minecraft

ru

en

TPS [Геймеры / Minecraft]

TPS (англ. сокр. Ticks per Second) — это число тактов за секунду. Чем более высокий данный показатель, тем большая производительность сервера. В норме показатель TPS во время игры, а также на сервере — 20.0.

Виды серверов

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

Vanilla

Компания Mojang Studios распространяет серверную часть игры в виде Java-приложения бесплатно на официальном сайте. Это позволяет создать свой собственный выделенный сервер и персональный мир, сделав его доступным для подключения из любой точки планеты. Для тех, кто делает это впервые, есть отличный туториал, доступный в соответствующей игровой Wiki.

У этого подхода есть один серьезный недостаток, а именно — отсутствие возможностей «из коробки» подключать плагины, расширяющие функционал сервера и позволяющие не только автоматизировать многие процессы, но и оптимизировать производительность. Кроме того, у официального сервера достаточно большое потребление оперативной памяти на каждого подключенного игрока.

Bukkit

Созданное энтузиастами на базе Vanilla-версии серверное приложение Bukkit значительно расширяло возможности игры за счет поддержки плагинов и модов (модификаций). Оно позволило не только добавлять в игровой процесс новые блоки, но и выполнять различные манипуляции, недоступные ванильному ПО. Что интересно, памяти это приложение требовало значительно меньше.

Установить Bukkit не составляет особого труда, соответствующая инструкция есть на ресурсе GamePedia. Но это не имеет смысла, так как с 2014 года команда Bukkit распалась, разработчики проекта стали сотрудниками Mojang Studios, а репозиторий заброшен. Таким образом, Bukkit фактически мертв, и имеет смысл обратить внимание на два следующих проекта.

SpigotMC

Для облегчения жизни разработчиков плагинов была необходимость в API для взаимодействия с игровым миром. Именно эту задачу и решили создатели Spigot, взяв за основу ядро Bukkit и переработав его для достижения лучшей надежности и производительности. Тем не менее, Git-репозиторий проекта был заблокирован в связи с Законом об авторском праве в цифровую эпоху (DMCA), и скачать оттуда исходники невозможно.

На текущий момент SpigotMC активно развивается и используется. Он поддерживает все плагины, созданные под Bukkit, однако с ним обратно не совместим. Чтобы обойти запрет DMCA Takedown, был придуман элегантный способ под названием BuildTools. Этот инструмент избавляет от необходимости дистрибуции скомпилированного приложения и позволяет пользователям выполнить компиляцию Spigot, CraftBukkit и Bukkit из исходного кода. Все это делает запрет DMCA бесполезным.

PaperMC

Казалось бы, все круто, и Spigot стал прекрасным вариантом. Но некоторым энтузиастам этого показалось мало, и они запилили свой собственный форк Spigot «на стероидах». На странице проекта ключевым достоинством указано, что “It's stupid fast”. Развитое коммьюнити позволяет оперативно решать возникающие вопросы, а расширенное API — делать интересные плагины. Запустить PaperMC можно одной простой командой, приведенной в документации.

С совместимостью у PaperMC все прекрасно, так что написанные плагины под SpigotMC легко заработают и на PaperMC, но без официальной поддержки. Обратная совместимость со SpigotMC также присутствует. Теперь, когда мы перечислили различные варианты создания сервера, перейдем к тем проблемам производительности, которые могут возникать.

Spigot.yml

save-user-cache-on-stop-only
По умолчанию: false
Оптимизировано: true
Влияние на производительность: Среднее

➫ Этот параметр отвечает за то, нужно ли серверу всегда хранить пользовательские данные (false) или отложить эту функцию до того момента, как сервер начнет перезапуск или выключится (true)? Это хорошая экономия TPS.

Примечание: регулярно делайте резервные копии, чтобы избежать потери данных в редких случаях фатального сбоя.

entity-activation-range
По умолчанию: animals:32, monsters:32, raiders: 48, misc:16
Оптимизировано: animals:16, monsters:24, raiders: 48, misc:8
Влияние на производительность: Среднее

➫ Существа за пределами этого диапазона будут отмечаться реже. Не устанавливайте слишком низкое значение, иначе вы можете нарушить поведение мобов (аггро, рейды и т.д.).

Примечание: Деревенских жителей следует оставлять в покое (если это возможно), чтобы защитить механику.

tick-inactive-villagers
По умолчанию: true
Оптимизировано: false
Влияние на производительность: Среднее

➫ Включение этого параметра предотвращает установку галочки для жителей за пределами диапазона активации.

Примечание: Ванильное поведение позволяет отмечать всех жителей в загруженных чанках. Включите опцию villagers-active-for-panic, чтобы спасти некоторые железные фермы от разрушения.

nerf-spawner-mobs
По умолчанию: false
Оптимизировано: true
Влияние на производительность: Среднее

➫ Когда включено, мобы из спавнеров не будут иметь ИИ (не будут плавать/атаковать/двигаться). Это большая экономия TPS для массивных ферм мобов, но также ухудшает поведение. Плагин ограничителя фермы может быть лучшим решением.

Примечание: в Paper есть опция, позволяющая заставить мобов, получивших повреждения, прыгать/плавать. Это исправляет фермы, толкающие воду.

Туториал Оптимизация Сервера Minecraft | by Rgferg1 2020-09-13


Добрый вечер, пользователи. Каждый сталкивался с такой проблемой, что тормозит сервер. При таких условиях будет низкий TPS.

Что такое TPS?
TPS (Ticks per Second) — это число тактов за секунду. Чем более высокий данный показатель, тем большая производительность сервера. В норме показатель 20.0. TPS может существенно снижаться в случае значительной нагрузки на сервер. И в консоль выводятся такие строчки: [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 9999ms or 9999 ticks behind

Чтобы посмотреть значение TPS введите команду: /tps

331


Если вдруг у вас низкий TPS, то введите эти команды поочередно: /timings on, подождите минут 10, /timings report, /timings off

Вам в консоль отобразится ссылка. Переходим по ней.

333


И нам выдает "тайминги". Обычно их просят на форумах в темах о лагах. Чтобы подробнее узнать в чем проблема и причина. По процентам можно понять, что больше нагружает сервер. Например энтити, механизмы или что то другое.

Введение - Пинг

Ping - отражает, сколько времени (в миллисекундах) требуется данным для обработки и перемещения между клиентом и сервером. Чем дальше клиент отдален от сервера, тем больше времени может занять этот перенос. Другими распространенными факторами, влияющими на пинг, являются перегруженные или медленные соединения.

Если вы хотите уменьшить пинг, то берите сервера ближе к своим игрокам. Москва, франция и тд.

  • 1-90 = Супер!
  • 91-179 = Хорошо. Возможно, небольшие проблемы в PVP. В выживании это не заметно.
  • 180-299 = Плохо.
  • 300-499 = Очень плохо.
  • 500+ = Ужасно.

Я советую вам поставить форк PaperSpigot вместо обычного Spigot.

  • Оптимизация.
  • Фиксы дюпов и некоторых лаг машин.
  • Больше настроек.

Thermos (1.7.10) - Гитхаб
Mohist (1.12.2) - Сайт
Magma - Гитхаб
Cauldron - 1.7.10
KCauldron (1.7.10) - Sourceforge

WorldBorder - Позволяет ограничить/прогрузить мир.
LagAssist - Плагин включает в себя множество инструментов, которые можно использовать для поиска источников задержек и их удаления.
Villager Optimiser [1.14.2-1.16.1] - Отрубает умный ии жителей. Теперь они "простые". Могут быть проблемы с фермами связанные с жителями.
StackMob - Enhance your servers performance without the sacrifice - Стакает мобов. В одном мобе может быть например 15 таких же.
Mob Farm Manager [supports 1.7.10 up to 1.16] Hopper support - Ограничение мобов на чанк, оптимизированные хопперы и много другого.
Simple Anti-Mob Lag [1.9-1.16] - Мобы в толпе не двигаются. При низком тпс они замораживаются. И много другое.
ServerBooster - Мощный инструмент для оптимизации сервера. Много функций. Перечислять нет смысла, хороший плагин.

Совет: Не скачивайте платные плагины с неофициальных источников.
Совет: Множество плагинов можно заменить одним. Каким? Решать вам. Советую CMI или Essentials.

Не бойся использовать аналоги популярных плагинов. Они могут быть намного легче и лучше.

Также в интернете есть код для плагинов, который через некоторое время специально занижает тпс. Перед тем как ставить сборку советую плагины заменить. Чтобы в них не было "хаков" и таких вот кодов.

По моему опыту датапаки связанные с мобами/генерацией, очень плохо влияют на сервер. Перед тем, как ставить на сервер, протестируйте на localhost.

Также датапаки при неправильном удалении могут сломать карту.

Совет: Датапаки лучше заменить плагинами.

Давайте оптимизируем конфиг нашего ядра. А именно spigot.yml. Я могу немножко ошибаться. Не бейте палками. Помните, что вы меняете настройки на свой срах и риск!

Описание я перевел через Яндекс.Переводчик. Если что-то непонятно, можете написать в комментарии.

save-user-cache-on-stop-only - Включение этого параметра предотвращает постоянное сохранение пользовательских данных во время работы игроков в сети, что повышает производительность сервера. Однако, если ваш сервер выйдет из строя, пользовательские данные не будут сохранены, поэтому делайте резервные копии и регулярно останавливайте ваш сервер, чтобы защитить данные игрока.

Default: false
Optimized: true


entity-activation-range - Эта группа настроек будет регулировать, насколько близко мобы и другие сущности должны быть, чтобы активировать свой ИИ. Эти числа обозначают расстояние в блоках, которое объекты могут пройти до того, как их деактивируют. Сущности будут повторно активированы, когда игрок подойдет к ним достаточно близко.

Optimized:
animals: 16
monsters: 24
raiders: 48
misc: 8

merge-radius - Увеличив радиус слияния, предметы и опыт будут собираться вместе чаще, уменьшая количество предметов на земле, тикающих. Если цифры слишком высоки, это может вызвать проблемы, когда предметы будут телепортироваться через блоки, а иногда и в опасные места (например, лаву).

Optimized:
item: 4.0
exp: 6.0


nerf-spawner-mobs - Для серверов, которые полагаются на спавнеров мобов, эта опция обеспечит хороший прирост производительности сервера, сделав мобов, порожденных спавнерами, не имеющими ИИ.

Default: false
Optimized: true

mob-spawn-range - Вы можете регулировать расстояние в кусках от игрока, который будет порождать мобов, что может помочь убедиться, что меньше мобов активны в области, куда игроки не могут добраться. Держите это число ниже расстояния просмотра, чтобы мобы действительно появлялись для игроков.

Default: 8
Optimized: 6

arrow-despawn-rate - Это заставит стрелы, выпущенные игроками в режиме выживания, удаляться быстрее (подсчитывается по количеству тиков), уменьшая количество тикающих сущностей. Рекомендуемые 300 тиков равны примерно 15 секундам.

Default: 1200
Options: 300

item-despawn-rate - Это приведет к тому, что предметы, упавшие на Землю, будут отчаиваться после определенного количества тиков.

Default: 6000
Options: 4000

Давайте оптимизируем конфиг нашего ядра. А именно bukkit.yml. Я могу немножко ошибаться. Не бейте палками. Помните, что вы меняете настройки на свой срах и риск!

Описание я перевел через Яндекс.Переводчик. Если что-то непонятно, можете написать в комментарии.

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

Optimized:
animals: 8
monsters: 50
water-animals: 3
water-ambient: 1
ambient: 1

chunk-gc - Уменьшив это число, ваш сервер будет быстрее выгружать пустые чанки.

Default: 600
Optimized: 400

autosave - Сохранение.

Default: 6000
Optimized: 12000

Давайте оптимизируем конфиг нашего ядра. А именно paper.yml. Я могу немножко ошибаться. Не бейте палками. Помните, что вы меняете настройки на свой срах и риск!

Описание я перевел через Яндекс.Переводчик. Если что-то непонятно, можете написать в комментарии.

max-auto-save-chunks-per-tick - Уменьшив это значение, вы замедлите частоту сохранения фрагментов, пока ваш сервер спасает мир. Рекомендуется не опускаться ниже 8, иначе вы можете столкнуться с тем, что некоторые куски вообще не сохраняются.

Default: 24
Optimized: 8

optimize-explosions - Это менее важно по состоянию на версию 1.15, но все же может быть полезно для включения и использования эффективного метода бумаги для обработки взрывов, таких как тротил или криперы.

Default: false
Optimized: true

mob-spawner-tick-rate - Вы можете увеличить количество времени между тиками моба-спавнера без существенных изменений в игровом процессе, но не поднимайтесь намного выше, если только вы не испытываете большого отставания от спавнера.

Default: 1
Optimized: 2

disable-chest-cat-protections - Это полностью отключит сервер, постоянно проверяющий сундуки, чтобы увидеть, сидят ли на них кошки. По умолчанию, если кошки сидят на сундуке, игроки не могут открыть сундук.

Default: false
Optimized: true

container-update-tick-rate - Когда инвентарь или сундук открыт, Minecraft обновляет представление каждый тик по умолчанию, чтобы правильно отобразить изменения. Вы можете уменьшить частоту обновления инвентаря, но не поднимайтесь выше 3 или 4.

Default: 1
Optimized: 3

max-entity-collisions - Если ваши игроки часто встречаются зубрежкой мобов в небольших пространствах, уменьшение этого числа уменьшит отставание, вызванное зубрежкой.

Default: 8
Optimized: 2

grass-spread-tick-rate - Увеличив это значение, вы уменьшите частоту попыток сервера перекладывать траву из одного блока в другой.

Default: 1
Optimized: 4

despawn-range - Эти опции изменят расстояние от игроков, где мобы начнут отчаиваться. "жесткий "будет депонировать мобов мгновенно, в то время как" мягкий " начнет периодическую проверку и случайным образом отчаиваться от мобов через определенные промежутки времени.

soft: 28
hard: 96


hopper-disable-move-event - Это приведет к значительному повышению производительности, так как ваши бункеры не будут все отмечать каждый слот инвентаря, чтобы увидеть, какие предметы нужно переместить, что резко уменьшит задержку тика.

Default: false
Optimized: true

prevent-moving-into-unloaded-chunks - Если игрок каким-то образом попадает в незагруженный кусок, возможно, вызванный лагом в другом месте, это на самом деле увеличит ЛАГ еще больше. Включите эту функцию, чтобы игроки не могли вводить незагруженные фрагменты.

Default: false
Optimized: true

use-faster-eigencraft-redstone - Хотя существуют плагины, которые могут изменить способ управления алгоритмом redstone, эта опция, как было показано, значительно повышает производительность без изменения поведения vanilla redstone.

Default: false
Optimized: true

armor-stands-tick - Единственное, что доспехи стоят галочкой, - это проверить, не толкает ли их вода. Отключив это, вы можете освободить некоторые тиковые действия для других процессов и потерять только незначительную функцию геймплея.

Default: true
Optimized: false

per-player-mob-spawns - Вы можете настроить, как мобы появляются в мире, чтобы соответствовать механике ванили и предотвратить игроков с массивными фермами мобов от нарушения игрового процесса других.

Default: false
Optimized: true

CoreProtect
CoreProtect - это плагин регистрирующий изменения блоков. С его помощью вы можете просмотреть историю изменений блоков, то есть кто и когда поставил/удалил блок, и откатить/вернуть изменения блоков и другое.

Ваш сервер может тормозить из за того, что этот плагин регистрирует слишком много действий. Давайте настроем этот плагин так, чтобы серверу было легче обрабатывать данные.

Также у этого плагина бывают проблемы с базой данной. Если что-то пойдет не так, то ваш ТПС упадет то 0.60. И ваш сервер просто зависнет. Такое было у меня.


Мобы
Сервер может оставать из за мобов. С помощью таймингов вы можете остледить именно какие мобы нагружают сервер.

С помощью плагина MFM, вы можете регулировать спавн и число мобов.

Спавн мобов лучше настроить в bukkit.yml, spigot.yml


ФИКСЫ
Один из игроков может сидеть с чит клиента. И посылать слишком много пакетов, что заставит сервер тормозит а в скоре и положить его. Также пользование предметов с 1000 лвл может тоже замедлять работу сервера. Есть фиксы на это. Ниже.

FiguresFix - (Честно, сам мало знаком с таким плагином, но его все советуют)
ExploitFixer - фикс пакетов, предметов, блок запрещенных команд, uuidspoof и многое другое.
HamsterAPI - плагин для ExploitFixer
ItemFixer - фикс 1000 лвл
PacketLimiter - ограничение пакетов.
PacketsBookFix - фикс с багом в книжке.

Совет: На свой выбор. Некоторые плагины могут конфликтовать с друг другом. Не ставьте их всех подряд.

Paper.yml

max-auto-save-chunks-per-tick
По умолчанию: 24
Оптимизировано: 6
Влияние на производительность: Большое

➫ Сохранение мира будет происходить с замедлением сохранения чанков. Очень важная функция для современных серверов Майнкрафт.

Примечание: Ниже 6 ставить не рекомендуется, есть возможность несохранения чанков!

max-entity-collisions (в Spigot.yml в некоторых сборках)
По умолчанию: 8
Оптимизировано: 2
Влияние на производительность: Среднее

➫ Зажатые объекты (кофемолки, фермы и т.д.) будут меньше сталкиваться и потреблять меньше TPS в процессе.

grass-spread-tick-rate
По умолчанию: 1
Оптимизировано: 4
Влияние на производительность: Среднее

➫ Время (в тиках) до того, как сервер попытается разбросать траву по частям. Это не окажет влияния на геймплей большинства типов игр.

hopper.disable-move-event
По умолчанию: false
Оптимизировано: true
Влияние на производительность: Большое

➫ Это значительно уменьшит отставание хоппера, поскольку предотвратит вызов InventoryMoveItemEvent для КАЖДОГО слота в контейнере.

Предупреждение: Плагины, которые прослушивают InventoryMoveItemEvent, будут сломаны.

prevent-moving-into-unloaded-chunks
По умолчанию: false
Оптимизировано: true
Влияние на производительность: Среднее

➫ Предотвращает попадание игроков в неактивный чанк. Такое происходит из-за лагов и может вызвать еще большие лаги.

use-faster-eigencraft-redstone
По умолчанию: false
Оптимизировано: true
Влияние на производительность: Большое

➫ Эта настройка сокращает анимацию и обновления работы редстоуна на 95%, при этом не ломая механизмы. Тестирование данной функции установило ускорение в 10 раз!

Оптимизация сервера Minecraft


В нашем блоге мы уже рассказывали, как создать свой сервер Minecraft, однако с тех пор прошло 5 лет и многое поменялось. Делимся с вами актуальными способами создания и оптимизации серверной части столь популярной игры.

За свою 9-летнюю историю (если считать от даты релиза) Minecraft заработал потрясающее количество поклонников и хейтеров как среди обычных игроков, так и среди гиков. Простая концепция мира из кубиков превратилась из обычного развлечения в универсальную среду для общения и создания различных объектов из реального мира.

Помимо строительства, в игре есть возможность создавать логические схемы, которые позволяют реализовывать полноценные алгоритмы внутри Minecraft. На YouTube полно весьма впечатляющих роликов, где люди, приложив огромное количество сил и потратив множество времени, создали копию того или иного электронного устройства или построили детальную копию существующих и вымышленных архитектурных сооружений. Все ограничивается лишь фантазией геймера и возможностями игровой вселенной.

Но не будем дальше говорить о том, что именно игроки создают, а посмотрим на серверную часть приложения и осветим проблемы (порой весьма сложные), которые могут возникнуть в процессе работы под нагрузкой. Сразу оговоримся, что речь пойдет только о Java Edition.

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