что такое тпс в майнкрафте
Оптимизация сервера Minecraft
В нашем блоге мы уже рассказывали, как создать свой сервер Minecraft, однако с тех пор прошло 5 лет и многое поменялось. Делимся с вами актуальными способами создания и оптимизации серверной части столь популярной игры.
За свою 9-летнюю историю (если считать от даты релиза) Minecraft заработал потрясающее количество поклонников и хейтеров как среди обычных игроков, так и среди гиков. Простая концепция мира из кубиков превратилась из обычного развлечения в универсальную среду для общения и создания различных объектов из реального мира.
Помимо строительства, в игре есть возможность создавать логические схемы, которые позволяют реализовывать полноценные алгоритмы внутри Minecraft. На YouTube полно весьма впечатляющих роликов, где люди, приложив огромное количество сил и потратив множество времени, создали копию того или иного электронного устройства или построили детальную копию существующих и вымышленных архитектурных сооружений. Все ограничивается лишь фантазией геймера и возможностями игровой вселенной.
Но не будем дальше говорить о том, что именно игроки создают, а посмотрим на серверную часть приложения и осветим проблемы (порой весьма сложные), которые могут возникнуть в процессе работы под нагрузкой. Сразу оговоримся, что речь пойдет только о Java Edition.
Виды серверов
Самым простым вариантом является сервер, встроенный в клиент игры. Создали мир, нажали на одну кнопочку, и вот сервер стал доступен по локальной сети. Никакой серьезной нагрузки такой вариант выдержать не может, а поэтому мы не будем его даже рассматривать.
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 также присутствует. Теперь, когда мы перечислили различные варианты создания сервера, перейдем к тем проблемам производительности, которые могут возникать.
Проблемы и решения
Главное, что нужно понимать, — все, что касается обработки игрового мира будет обрабатываться только на одном вычислительном ядре физического сервера. Так что если вдруг у вас прекрасный сервер с десятком вычислительных ядер, то загружено будет только одно. Все остальные будут фактически простаивать. Такова уж архитектура приложения, и ничего вы с этим поделать не сможете. Так что при выборе сервера следует обращать внимание не на количество ядер, а на тактовую частоту. Чем она будет выше, тем лучше будет производительность.
Что касается вопроса об объеме оперативной памяти, тут следует исходить из следующих показателей:
Для запуска серверной части рекомендуем воспользоваться флагами, указанными в статье Tuning the JVM – G1GC Garbage Collector Flags for Minecraft. Эта «черная магия» позволяет серверу грамотно настроить «сборщик мусора» и оптимизирует использование оперативной памяти. Не стоит выделять памяти больше, чем реально потребляет сервер при пиковом наплыве игроков.
Генерация карты блоков
“Вы действительно считаете, что Луна существует, только когда вы на неё смотрите?” (Альберт Эйнштейн)
Абсолютно новый сервер. Как только игрок первый раз успешно подключается, игровой персонаж появляется на общей точке сбора (спаун). Это единственное место, где игровой мир предварительно генерируется сервером. В этот же момент клиентская часть смотрит в настройки, и ключевым параметром является дальность прорисовки. Измеряется она в чанках (область карты 16×16 и высотой в 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, опытным путем выяснено, что она прекрасно работает и на последующих версиях. Полный список команд с пояснениями доступен на форуме плагина.
Проблемные блоки
Если блоков TNT несколько, то детонация одного блока вызывает детонацию и включение гравитации у соседних блоков, разбрасывая их во все стороны. Вся эта красивая механика на стороне сервера выглядит как множество операций по подсчету траектории каждого из блоков, а также взаимодействия с соседними блоками. Задача крайне ресурсоемкая, что легко может проверить каждый. Сгенерируйте и подорвите куб из блоков TNT, размером хотя бы 30x30x30. И если вы думали, что у вас хороший мощный игровой компьютер, то сильно заблуждались 😉
Подобный «эксперимент» на сервере с Intel® Xeon® Gold 6240 привел к серьезной «просадке» TPS и 80% нагрузке на CPU в течение всего времени детонации блоков. А следовательно, если кто-либо из игроков сможет проделать подобное, то проблема с производительностью затронет всех находящихся на сервере игроков.
Еще более жесткий вариант — Кристаллы Края. Если TNT все же взрывается последовательно, то Кристаллы Края детонируют все одновременно, что в теории может вообще остановить работу серверного приложения.
Избежать этого сценария можно, только полностью запретив использование данных блоков в игровом мире. Например, с помощью плагина WorldGuard. Обратите внимание, что сам по себе этот плагин не работает без другого плагина WorldEdit. Так что устанавливаете вначале WorldEdit, а затем WorldGuard.
Заключение
Грамотное управление игровым сервером — задача не из простых. Сложности и снижение производительности будут поджидать на каждом шагу, особенно если не брать в расчет саму механику игрового процесса. Предусмотреть все невозможно, ведь игроки порой бывают очень изобретательны в попытках заставить сервер выполнить то, для чего он не был предназначен. Только разумный баланс между рисками и устанавливаемыми ограничениями позволит серверу работать в непрерывном режиме и не снижать свою производительность до критичных значений.
На карантине некоторые наши сотрудники соскучились по любимым офисам и решили воссоздать их внутри Minecraft. У вас тоже есть шанс заглянуть к нам в гости, не рискуя своим здоровьем и не тратя время на дорогу.
Для этого мы приглашаем всех желающих на наш сервер minecraft.selectel.ru (версия клиента 1.15.2), где воссозданы дата-центры Цветочная-1 и Цветочная-2. Не забудьте согласиться со скачиванием дополнительных ресурсов, они необходимы для корректного отображения некоторых локаций.
Вас ждут квесты, промокоды, «пасхалки» и приятное общение.
Зарегистрируйся и получай приятное общение и бонусы на сервере!
Здравствуйте, друзья! Хотите чего-то нового? Ведь все эти надоевшие сервера с безграничным донатом, кучи неадекватных детишек уже порядком надоели! Это похоже на бездонную пропасть, полную мерзости и печали! но у всего есть конец! Вот и этой пропасти пришел конец! Вы встретили этот сервер! Вот вы спросите, чего такого в этом сервере?
А я Вам отвечу:
— Вы можете начать играть сразу без регистрации.
— Наш сервер без гриферов. Любое гриферство и воровство запрещено.
— Вы можете играть с любого клиента с лицензией.
— Наш сервер майнкрафт без дюпа и без 1000 лвла. Можно сказать ванильный майнкрафт сервер с минимальным количеством плагинов для приятной игры
— На нашем сервере средний возраст игроков 18+, у нас самые адекватные взрослые майнкрафтеры.
— У нас есть уникальные работы. Все работы строились без плагинов, вручную.
— Есть разделение на гражданский и игровой миры.
— Можно играть даже с мобильного устройства!
Подробнее как начать играть.
Однако перед началом игры. Прочтите краткую информацию о сервере, раздел на сайте чаво, а также наши правила.
Подходит? Тогда залетай к нам по ip: play.fantasticcraft.ru
Рассуждение на заданную тему: ТПС и правила №7
Tony Morgan
Думаю вы замечали что на сервере есть такой показатель как ТПС. Чем он выше тем лучше сервер работает. Но иногда он сильно падает что вызывает лаги на сервере. Данный параметр не слишком зависим от количества игроков на сервере. В 7 пунктах правил сделал акцент на том что именно вызывает падение ТПС. Те кто часто играет на ФК сталкивались с ситуацией когда народу в онлайне мало, но ТПС ниже плинтуса. И это создаёт много проблем.
Итак, предлагаю порассуждать о следующем:
1-Что если администрация сервера начнёт охоту на игроков в поисках тех которые нарушают правило 7.1. и применять меры к ним по правилу 7.3.?
2-Согласны вы на такое или нет, если это поможет избежать лагов на сервере?
3-Что будете делать если окажется что вы сами нарушали правило 7.1.?
Напишите что думаете по этому поводу.
Paranoid
Sankir52
20 минут торгую с жителями, которые генерируют мне голема, который самоубивается ради железа. В промежутках я рублю дерево, которое собирается вагонеткой, а сбоку растет 9*9 арбузов для торговли с вышеописанными жителями.
А еще пчОлы таскают мед, когда не спят. Все это разнесено чанков на 5-7, но тем не менее генерит нагрузку.
При этом я постоянно что-то делаю, сиречь играю, а не сижу на месте и получаю полезное удовольствие.
Что будет если я построю отдельную ферму для каждой деятельности?
Я проверял на общественной ферме железа. Она большая, на топит ТПС даже когда я ваще один на сервере. Она ОГРОМНАЯ. И. она беспонтовая. За час активной игры дома, где есть один «спавнер» големов я получаю больше железа, чем когда тусуюсь на специальной ферме. При этом я получаю еще много всего рядом.
Ах да, еще есть волшебный антиафк. Получается, что бы нафармить что-то полезное, я должен стоять на лютобешеной ферме час, унижая ТПС и каждый 5 минут нажимать «прижОк» (картинка с червяком из worms). И не делать больше ничего. Ваще. Скука смертная. Я два раза сходил и плюнул. А потом на другую ферму и снова час, прижОк, в фоне сериальчик играет, ТПС унижается, другие страдают. А удовольствия никакого. Ваще и никому.
Суммарная нагрузка от микроферм меньше чем от монструозных.
Да, есть фермы, которые не воткнешь дома (стражи, иффриты, спавнеры шкилетов и т.п.) но они тоже, если не жестить, вполне себе или не грузят сервер, или посещаются на 10 минут ради стака целевых ресурсов.
Запретить строить фермы вы не сможете. Ютуб дает миллион схем и каждый новый майнкрафтер 100000% пойдет и построит ферму что бы быть не как все, а главное, иметь нужный предмет в нужном количестве.
Административные репрессии результата не дадут. Всегда будут новые игроки, которые будут строить не по феншую. Вы их будете ловить, карать, они будут приходить новые. Особенно в условиях размытости правил 7.1 и 7.2. Я в душе не знаю, считается моя ферма «большой» или нет, я два дня в майнкрафте, я насмотрелся ютуба, мне 10 лет, ТПС для меня высшая математика.
Седобородый нудный старец
so_belasco
мамина бестолочь
1-Что если администрация сервера начнёт охоту на игроков в поисках тех которые нарушают правило 7.1. и применять меры к ним по правилу 7.3.?
2-Согласны вы на такое или нет, если это поможет избежать лагов на сервере?
Я полагаю, что часть игроков могут делать такое по незнанию, поэтому, на мой взгляд, в первую очередь нужно предупредить.
Я не против наказаний для особенно упрямых, так как, если игроку всё доходчиво объяснили, но он исподтишка продолжает, сознавая, что вредит своими действиями другим, значит, он поступает аморально. Как говорится, свобода одного заканчивается там, где начинается свобода другого.
При отключении фермы тоже думаю, хорошо бы уведомить игрока, что она отключена администрацией, а не сторонними причинами (вдруг он подумает, что это какой-нибудь баг, и будет пробовать её включать).
3-Что будете делать если окажется что вы сами нарушали правило 7.1.?
Если честно, я плохо понимаю все аспекты, которые могут нагружать сервер; т.е. я знаю, например, про механизмы с воронками и поршнями, но я такими не пользуюсь, бегать или летать, массово прогружая чанки —насколько я знаю, серверу такое особенно не вредит, а больше не могу предположить, что может создавать лаги, но в любом случае я готова по первому требованию администрации перестать делать то, что я делаю.
Kriegor
Статус: действует
Я уже подумал, что тема дальше сообщения Параноида никуда не двинется. Ошибся. Приятно. Вот теперь давайте поговорим более предметно, так как мистер Тони очень поверхностно осветил проблему.
Теперь поговорим о фермах. @Sankir52 написал большой и клевый пост на эту тему и, к сожалению, его суждения неверны в корне. Проблема не в гигантских фермах, проблема в людях, которые прутся на эти фермы, абсолютно не обращая внимания на то, сколько людей онлайн и на то, как счетчик ТПС начал падать. У нас на сервере отсутствует культура самоограничения (назовем ее так), при которой люди должны откладывать свои нужды в пользу нужд большинства. Вот есть у меня адовая ферма шерсти, построенная максимально упоротым способом, убивающим ТПС (вчера, ради теста, при
Что такое тпс в майнкрафте
Ваш браузер устарел, и поэтому некоторые важные функции этого сайта могут не работать. Пожалуйста, обновитесь то более современного браузера. 🙁
Помогите с tps на сервере
mnivdick
XionioX
Звание: Где-то рядом с нами
По вашим таймингами сделаю вывод, ваша серверная машина настолько слабая что не может вытянуть такой онлайн при минимальным задержкам, или это нагрузка от хостинга.
В основном проблема от мобов они сильно нагружают сервер нужно вмешательство в ядро и всё пройдёт.
Support on XionioX server
mnivdick
XionioX
Звание: Где-то рядом с нами
mnivdick,
Ох, много чего но самым важным шагом станет значение запуска.
Вот гайд по оптимизации бумаги click
в гайде устаревшие предложения по запуску но вы измените ядро сначало
Support on XionioX server
Статистика форума
Администраторы | Главные редакторы | Модератор | Дедушки | Журналисты | HENTAI BOY | Goldфаги | Журналисты-олдфаги | ТруЪ Олдфаги-с | ТруЪ Плагинщик | Олдфаги | true Художник | Модератор бездны | Картоделы | XXXL ПХЛ | Просто хорошие люди | Посетители | Новички
Почему лагает на майнкрафт серверах | Что такое TPS
Показать панель управления
Комментарии • 77
Что делать в оффлайн игре задержка в 3 секунды? Я хз как исправить
Блин мне надо знать тпс для ЛАГ машин
У меня такая проблема, что я загорелся в огне отбежав от этого блока я понял что я горю бесконечно, я перезашел, и опятт появился в блоке огня, ставить блоки я не могу, ломать тоже, мне очень нужна помощь так как я пробежал 500000 блоков и если умру все заново
У меня плохие новости, ты в временной петле (если по серьёзному как решить не знаю)
Так купите норм сервак и все ахахаха
Как добавить эти якоря на серв? Это мод или что?
я один понял,что он говорит.
*Ааа тогда ClearLag нужно раз в 1 минуту поставить)*
А что делать если у меня в сингле такая проблема, но только в оптифайне?
А можешь сказать почему у меня писок лагает когда ломаю его лапатой с ефективности 5
на версии 1.12.2
@Фирой так блин у меня очень много фантомних блоков это тупо так всё сазтавлять
Что это за глюк, когда ты ставишь блок? Ужасно выглядит
Спасибо что обеснил
Скилл можно у вас на проекте сделать авто очистку к примеру очистка каждые 20 минут или перезагрузка сервера каждые2 часа
Нахер ты боьясняешь? Лучше бы сделал нормальный сервак и всё
@Корыстный live вдс машина, сервер стоит на машине, вдс называется
Да ты тупой или что? Видел сп? У них блят машины за +25к рублей лагает пиздец
На вашем месте я бы решал проблему немного другим способом. Во-первых, самые распространенные не всегда самые лагучие. Например, всякие панели в количестве около десяти в чанке могут грузить серв гораздо меньше, чем ExtraCells и карты создания. Также есть странные ограничения на фермы из IC2(практически не создают нагрузки), в то время как на мультифермы нет. Чувствую когда вы писали ограничения, это делалось не исходя из данных профилировщика, типа Opis, а по собственной интуиции. Тем же профилировщиком можно было бы искать особо упоротые и лагучие базы и своевременно предпринимать меры.
Во-вторых, если игроки знают, что грузится нормально один чанк, где будут расположены все механизмы? Правильно, в одном чанке. В итоге лагов +- столько же.
В-третьих, нет своевременного масштабирования серверов. Когда все кинулись играть на TechnoMagic во время съемок ЛП «Подробно до фотонки», сервера были переполнены. Разумным решением могло было сразу же добавить еще один серв. Как мне говорил один держатель серверов, майн не умеет в многопоток. Так что это могло бы улучшить производительность, путем более граммотного расходования ресурсов сервера. Тут же и вопрос о формате канала, т.к. если ты снимаешь на одном серве долго, все играют там, а остальные сервера пустеют.
Спасибо автор, стал тупее благодаря твоему видео!
Скилл, можешь сделать крафт латекса через молекулярку? У меня 7 слоев фермы рез.тростника и мне даже на 6шт пятикраток не хватает
подними растениям статы. Тростник со статами 23 31 в джунглях и поливом дает что-то типа 10 латекса в секунду с грядки 11*11
А почему блоки которые быстро ломаются почти не лагают а которые медленно например обсидиан алм киркой так вообще капец
Потому что пока ты ломаешь например обсидиан, то проходит цикл тиков (тпс) и он может прерваться пока ты его ломаешь и сервер подумает что ты отпустил кнопку и начал заново.