улучшение взаимодействие с миром майнкрафт
Тема: Автоматизация производства материи с нуля (1.7.10)
Опции темы
Поиск по теме
Отображение
Автоматизация производства материи с нуля (1.7.10)
1) Выкопаем или отгородим пространство 3 х 4 блока.
2) По центру поставим линию из 4 блоков булыжника
3) С одной стороны зальем пространство лавой, с другой водой
4) Поставим на булыжник 4 узла передачи (предметы) (id 1252)
5) Во внутрь каждого узла положим 64 улучшение взаимодействие с миром (id 5543:2) и 64 улучшение скорость (id 5543)
1) Установим 8 комбинированных утилизаторов над жидкостями так, чтобы трубы от узлов подключались к приборам
2) В каждый утилизатор следует положить 20 улучшений энергохранитель (id 4413:2) и 17 улучшений ускоритель (id 4413)
3) Теперь нужно запитать эти самые утилизаторы, так как они немного багованные, то часто возникают проблемы с их работой, они не любят изменяющееся питание. Для этого лучше всего использовать кластер из пяти или десяти МФЭХ (id 521:2), как на скрине ниже:
4) Над каждым утилизатором поставим узел передачи (предметы) (id 1273)
5) В каждый узел передачи положим 1 улучшение стак (id 5543:3) и 64 улучшение скорость (id 5543) (тут можно сэкономить и положить 32 улучшения, но мы же делаем максимальную эффективность?)
Важно! Данный способ не совсем подойдет новичкам, но имеет ряд преимуществ над использованием обычных труб.
1) Поставим два ряда генераторов материи длинной в десять блоков на расстоянии одного блока от соседнего ряда, между рядами поставим десять жидкостный интерфейсов
2) Интерфейсы накрываем ещё одним рядом генераторов материи
3) Подключаем питание генераторов материи
4) В каждый генератор материи следует положить улучшение выталкиватель жидкостей (id 4413:4)
5) Протягиваем трубу для передачи (id 1288) от утилизаторов до последнего генератора материи, как на скрине ниже
6) От крайнего интерфейса протянем мэ кабель (любой), поставим один МЭ контроллер и МЭ сундук с жидкостной ячейкой любого размера. От сундука выведем жидкостный интерфейс (id 5557:9). Которому подключим узел передачи (жидкости) (id 1273:6), в него улучшения класть не нужно, который в свою очередь подключается к репликатору.
7) В жидкостном интерфейсе следует указать, что ему нужно передавать. Для этого нам нужна капсула с материей и клацнуть ею по квадратику в интерфейсе
Важно! Трубы из Thermal Dynamics в больших количествах могут вызывать лаги, старайтесь это учитывать при их использовании.
1) Поставим два ряда генераторов материи длинной в десять блоков на расстоянии одного блока от соседнего ряда, между рядами поставим десять жидкостных труб.
2) Трубы накрываем ещё одним рядом генераторов материи
3) Подключаем питание генераторов материи
4) В каждый генератор материи следует положить улучшение выталкиватель жидкостей (id 4413:4)
5) Протягиваем трубу для передачи (id 1288) от утилизаторов до последнего генератора материи, как на скрине ниже
6) От крайней трубы проведем жидкостную трубу до какого-нибудь буферного хранилища жидкости, я использовал Резервуар из OpenBlocks (1372). От хранилища протянем трубу к репликатору.
Оптимизация сервера 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. Не забудьте согласиться со скачиванием дополнительных ресурсов, они необходимы для корректного отображения некоторых локаций.
Вас ждут квесты, промокоды, «пасхалки» и приятное общение.
Сможет ли ютубер Dream повлиять на выбор моба на Minecraft Live 2021
Сейчас, когда я пишу эту статью, разработчики Minecraft уже начали публиковать ролики с описаниями мобов, которые будут представлены для голосования.
Представлен первый моб — это Светлячок или Glare. Это таинственное существо, которое будет выражать своё недовольство в полной темноте, благодаря чему игроки будут узнавать, что тьма настолько тёмная, что здесь могут появляться монстры.
Другие мобы будут представлены позднее, и на Minecraft Live игроки смогут проголосовать за понравившегося моба, а победитель будет добавлен в игру.
Так уже было раньше. По результатам голосования 2017 г. в игру был добавлен фантом — летающий моб, атакующий игроков, которые провели много времени без сна (имеется в виду, конечно, игровой сон).
В 2020 г. во время голосования выбрали светящегося спрута, который является разновидностью уже существовавшего в игре спрута и… просто светится.
С выбором последнего моба как раз и возникли сложности. Дело в том, что голосовать за светящегося спрута призывал популярный ютубер Dream, который, как считается, повлиял на голосование, направив на голосование своих подписчиков.
Мне кажется, он сам не ожидал, что его призыв сработает, и уже через несколько дней после голосования он писал в твиттере примирительно-извинительный тред, в котором хоть и не приносил извинения, но пытался оправдаться:
«Я не хотел „уничтожить голосование“ или что-то в этом роде, и я не думаю, что сделал это. Несмотря на то, что я много писал в твиттере, и у меня много подписчиков, другие создатели контента тоже писали твиты и стримили, а я делал это только во время 15-минутного голосования»
— заключительный твит в треде Dream от 5 октября 2020 г.
Разработчики сделали вид, что ничего не произошло. Тем более, что вряд ли получится оценить, какая доля голосов приходится на подписчиков Dream.
Прошёл год, приближается новая трансляция Minecraft Live, на котором тоже будет голосование за нового моба.
Dream уже забыл свой извинительно-примирительный тон и готов снова обрушиться на голосование.
«В этом году, на Minecraft Live, я собираюсь накрутить голоса за самого худшего моба, и вы меня никак не сможете остановить!» — написал Dream сразу после анонса голосования по выбору моба.
«А что, если там не будет самого худшего моба?» — возразил ему художник Minecraft Джаспер Бурстра.
И это очень хорошее возражение. Действительно, в 2020 году одной из претензий к голосованию было то, что для выбора не было предложено каких-то уникальных или действительно интересных мобов.
Выбирать предлагалось из мобов, которые уже существовали в других играх вселенной Minecraft — два моба из Minecraft Earth (лютиковая корова и светящийся спрут) и один из Minecraft Dungeons (ледолог). Таких мобов, по-хорошему, можно было бы добавить в игру и без всякого голосования.
Можно надеяться, что в этом году ситуация будет лучше. И каждый предлагаемый моб будет уникальным. По крайней мере, первый моб такой и есть.
Поэтому очень не хотелось бы, чтобы на голосование повлияли какие-то внешние факторы. Хочется, чтобы моба выбирали поклонники игры, а не случайные люди, откликнувшиеся на призыв популярного ютубера.
И, возможно, Dream в этот раз всё-таки сведёт свою угрозу к шутке.
После выхода ролика с анонсом моба, Dream написал: «Больше-шлангер (давайте переведём это так) получит мой голос на Minecon Live 2021! Голосуйте со мной 16 октября».
На что разработчик Minecraft Нир Вакнин (Ulraf) прокомментировал так: «Ооо, чёрт! Dream собирается накрутить голоса!».
Надеюсь, угрозы Dream всё-таки будут шуткой. Хотя, я не удивлюсь, если кто-то другой решит повторить его «подвиг».
Моды для оптимизации Майнкрафт [1.17.1] [1.16.5] [1.15.2] [1.12.2] [1.7.10]
Phosphor Reforged [1.16.5]
Phosphor для Fabric был парирован для Forge, сторонним разработчиком. Данная модификация оптимизирует ресурсозатратные механики, снижает нагрузка на …
Sodium Reforged [1.16.5]
Это мод Sodium портированный для Forge сторонним разработчиком. Данная модификация сделает Майнкрафт многопоточным, оптимизирует графику и расширит …
Optifine [1.17.1] [1.16.5] [1.15.2] [1.12.2]
Мод Optifine HD создан в первую очередь для оптимизации minecraft, мод убирает задержки, лаги и повышает общую …
FPS Reducer [1.17.1] [1.16.5] [1.15.2] [1.12.2] (для слабых пк)
Мод FPS Reducer будет понижать нагрузку на компьютер во время бездействия в игре, путем снижения FPS. Это …
Performant [1.16.5] [1.15.2] [1.12.2] (Повышение производительности на 25%)
Performant позволяет игроку получить повышение производительности для игры. Увеличенное количество кадров, избавление от багов и вылетов и …
Fat Experience Orbs [1.17] [1.16.5] [1.15.2] — большая сфера опыта
Небольшой мод, который повысит немного во время выпадение большого количества сфер опыта. Теперь если выпадет много сфер …
Dynamic FPS [1.17] [1.16.5] [1.15.2] [1.14.4]
Полезная модификация, которая будут снижать FPS и потребление ресурсов, когда вы свернёте игру или будут долго бездействовать. …
Lithium [1.17] [1.16.5] [1.15.2] (оптимизация сервера)
Небольшой мод который создан для оптимизации мультиплеера. Будет увеличен FPS, снижены задержки и увеличена скорость отклика при …
Phosphor [1.16.5] [1.15.2] [1.12.2] (оптимизация освещения, ускорение генерации мира)
Phosphor мод создан для оптимизации движка освещения в Майнкрафт. Мод ускорит генерацию не только стандартного мира, но …
Sodium [1.16.5] — повышение FPS в Майнкрафт
Мод Sodium представляет собой рендер-движок с открытым кодом. Его использование в Майнкрафт позволит повысить частоту кадров, уменьшить …
Моды для оптимизации Майнкрафт которые увеличат ФПС в игре, исправят баги, уберут лаги и внесут различные изменения для улучшения общей производительности. Если у вас слабый компьютер, то рекомендуем установит один из этих модов. Также если вы хотите использовать ресурс пака, то рекомендуем вам установить Optifine. Он оптимизирует игру и расширяет графические настройки игры. Можно будет отключить все лишние эффекты для повышения производительности игры. Скачайте моды для оптимизации Майнкрафт 1.17.1 / 1.16.5 / 1.15.2 / 1.12.2 / 1.7.10 и получите стабильный FPS.