загрузка набора ресурсов выполнение запроса 100 майнкрафт

Minecraft Wiki

Из-за новой политики Microsoft в отношении сторонних ресурсов, Minecraft Wiki больше не является официальной. В связи с этим были внесены некоторые изменения, в том числе и обновлён логотип вики-проекта. Подробности на нашем Discord-сервере.

Создание и настройка сервера

Данная статья знакомит читателя с особенностями работы чистого (без модификаций) сервера Minecraft текущей версии. В отличие от клиента, распространяется бесплатно через официальный сайт игры и работает со всеми версиями клиента (пиратской и официальной). Информация в этой статье была приведена в соответствие с версией 1.15.2.

Содержание

Подготовка к работе

Загрузка необходимого ПО

Для работы сервера требуется установить на Ваш ПК пакет Java. Его можно скачать на этой странице. Но если клиент Minecraft запускается, то это индикатор того, что данный пакет уже установлен на компьютер. (Теперь minecraft можно установить через установщик, который сам скачивает для себя Java. В этом случае вам все равно нужно установить Java.)

Создание и настройка сервера

Знакомство с параметрами сервера

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

Рассмотрим файл server.properties. Данный файл содержит в себе все основные параметры сервера. Откройте этот файл при помощи любого текстового редактора. Вы увидите примерно такое содержимое:

Описание параметров

Параметр Значения По умолчанию Описание
allow-flight true / false true Разрешает игроку совершать полёты по миру Minecraft. Эта опция действует только на полёты в режиме Выживание и оказывает эффект только при наличии соответствующего плагина (например, Flight). На полёты в режиме Творчество никак не влияет.
allow-nether true / false true Данный параметр определяет возможность перехода в Нижний мир. Если отключить, все игроки, находившиеся в Нижнем мире, будут перемещены в обычный. Не влияет на переход в Край.
broadcast-console-to-ops true / false true Позволяет вывести результат выполнения команды в консоли всем операторам сервера.
broadcast-rcon-to-ops true / false true Позволяет вывести результат выполнения команды в консоли RCON всем операторам сервера.
announce-player-achievements true / false true Данный параметр определяет, должен ли сервер отправлять в чат сообщения о получении достижений.
difficulty Строка easy Уровень сложности: peaceful — Мирный easy — Лёгкий normal — Нормальный hard — Сложный
enable-command-block true / false false Позволяет использовать командный блок. Эта опция не генерируется при первой загрузке, а появляется при первой попытке использования командного блока.
enable-jmx-monitoring true / false false Позволяет включить MBean (функция в Java, позволяющая предоставлять определенные статистические данные для мониторинга) с объектом net.minecraft.server:type=Server и двумя атрибутами:

averageTickTime — среднее время на совершение одного тика (в миллисекундах),

tickTimes — время cовершения порядка 100 последних тиков (в наносекундах).

Чтобы включить выполнение JMX в Java, необходимо задать соответствующие флаги запуска JVM. Более подробно описано в этой документации

sync-chunk-writes true / false true Включает синхронную запись чанков. enable-status true / false true Включает отображение сервера как «онлайн» (если он запущен).

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

entity-broadcast-range-percentage Число (0-500) 100 Позволяет изменять дистанцию рендера энтити для клиентов в процентах. Более высокие значения могут привести к снижению производительности сервера, поскольку чем выше значение, тем выше дальность прорисовки энтити и больше ресурсов нужно для их обработки.

Это настройка выражается в процентах (100% по умолчанию). Например, установка этого значения на 50 уменьшит дальность рендера энтити вдвое. Представляет собой серверный аналог изменения прорисовки у клиента.

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

snooper-enabled true / false true Разрешает серверу отправлять некоторую статистику и данные разработчикам. spawn-animals true / false true Аналогично spawn-monsters, но для дружелюбных мобов (коровы, свиньи, овцы…). spawn-monsters true / false true Если значение параметра true, то, как и в одиночной игре, в ночное время и в тёмных пещерах на карте будут появляться враждебные мобы и будут стараться нанести вред игрокам на сервере. Если значение false, враждебные мобы (например, скелеты, зомби) не будут автоматически появляться во время игры, однако их можно заспаунить с помощью яиц призывания. Все находившиеся на карте мобы останутся. spawn-npcs true / false true Разрешить появление NPC в деревнях. spawn-protection Число (1-100) 16 Радиус защиты территории спауна в блоках (эту территорию смогут изменять только операторы). Радиус 0 дает защиту единственного блока, 1 — зоны 3×3 и так далее. Эта опция не генерируется при первой загрузке, а появляется, когда первый игрок заходит на сервер. После 1.4.2 защита спауна автоматически отключается, если у сервера нет ни одного оператора. view-distance Число (3-15) 10 Регулирует радиус обновляемых чанков для отсылки игроку. Для справки: дальность прорисовки Far в версиях до 1.7 отображает область в радиусе 10 чанков. white-list true / false false Позволяет включать/отключать использование вайтлиста на сервере. При true администратору сервера необходимо будет вручную добавлять ники игроков в белый список. Если установлено значение false, любой игрок сможет зайти на данный сервер, зная его IP-адрес и порт. Администраторы сервера имеют возможность зайти на сервер вне зависимости от белого списка. enforce-whitelist true / false false Позволяет включать/отключать перезагрузку вайтлиста при заходе игрока, прежде чем отключить его от сервера.

Когда эта опция включена, сервер кикнет игрока только после того, как автоматически перезагрузит вайтлист для поиска изменений.

Требуется проверка перевода.

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

Первая строчка «#Minecraft server properties» необходима для определения сервером, что это именно тот действующий файл server.properties, который он будет использовать в данный момент.

Вторая строчка «#Thu Jul 07 16:45:52 MSK 2016» описывает даты последнего изменения сервером данного файла. Важно помнить, что сервер берёт те дату и время, которые установлены операционной системой.

Непосредственно перед началом игры на сервере вы можете настроить указанные выше параметры сервера.

Любое изменение настроек в этом файле требует перезапуск сервера. Кроме того, сервер иногда может записывать изменения в этот файл, поэтому перенастройку лучше производить при отключенном сервере.

Настройка подключения к серверу

Стоит отметить, что на сервере могут одновременно играть игроки как из локальной сети, так и из сети Интернет.

Подключение к собственному серверу

Если вы не можете подключиться даже через петлевой интерфейс, это повод проверить настройки антивируса и файерволла. Добавьте в исключения Minecraft Server и порт 25565.

Сервер в локальной сети

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

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

Подключение к локальному серверу

Чтобы игроки смогли подключится к вашему серверу, их компьютеры должны быть объединены с компьютером-сервером по локальной сети (LAN). В строке ввода IP-адреса сервера они должны написать внутренний IP-адрес компьютера, на котором создан сервер. Локальный IP-адрес желательно должен быть статическим (быть прописанным в настройках сетевого подключения вручную) или привязанным к MAC-адресу.

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

Определение внутреннего IP-адреса

Определение внутреннего IP-адреса сервера под управлением Windows.

Определение внутреннего IP-адреса сервера под управлением Linux.

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

После этого программа ниже отобразит основные данные про сети, к которым подключен компьютер. Внутренний IP-адрес отвечает строке «IP-адрес» в блоке «Home Network — Ethernet адаптер:».

Настройка сервера для игры по Интернету

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

Во-первых, провайдер может предоставлять выделенный IP-адрес, который присвоен именно вам (то есть у вас прямой выход в Сеть), а может использовать один внешний адрес для многих пользователей. В первом случае проблем с настройкой доступа быть не должно, и вам достаточно разобраться со своим оборудованием. Однако если вы находитесь в локальной сети провайдера, ваш компьютер не будет виден из Интернета и доступ к серверу будет невозможен. Возможно, провайдер может предоставить внешний адрес как дополнительную услугу.

Для того, чтобы различить внешний и внутренний адрес, стоит сравнить адрес, под которым вы видны в сети и адрес, который получает ваш компьютер или роутер/модем, подключенный к линии провайдера (как правило, доступен по адресу 192.168.1.1 или 192.168.0.1). Существует много сайтов, которые определяют IP-адрес посетителя в онлайн-режиме, например, 2IP.ru.

К тому же, существуют сервисы (в том числе и бесплатные), предоставляющие домены третьего уровня, например, dyn.com/dns/. Обновление адреса производится обычно при помощи специальной программы, которую вы должны будете установить на компьютер, но некоторые модемы и роутеры могут сами выполнять эту функцию (посмотрите в интерфейсе маршрутизатора на предмет Dynamic DNS). Многие провайдеры предлагают статический IP-адрес в качестве дополнительной услуги.

Подключение к серверу

Чтобы подключиться к Вашему серверу, игроки в строке ввода IP-адреса сервера в клиенте игры должны ввести Ваш внешний IP-адрес или домен (адрес сайта) и нажать кнопку подключения к серверу. Внешний IP-адрес может узнать владелец сервера и сказать его игрокам, которые хотят подключиться к его серверу. Узнать ваш внешний IP-адрес могут помочь сайты: SpeedTest.net, 2IP.ru, Smart-IP.net.

Если игроки не могут подключиться к вашему серверу, смотрите раздел FAQ.

Сервер через VPN

Если у вас возникают проблемы с внутренним IP-адресом, можно попробовать Hamachi, P2PLauncher, EasyVPN, Garena или подобные сервисы. Самым популярным из них является Hamachi. Создатель сервера и подключающиеся должны скачать и установить Hamachi. Далее:

Открытие портов

Открытие, или проброс портов (Port Forwarding) позволяет клиентам, подключащимся из Интернета, получать доступ к серверу, который находится за маршрутизатором или модемом. Проблема с открытием портов часто встречается при создании сервера в локальной подсети. Маршрутизатор или модем могут блокировать порт, который пытается использовать сервер игры. Для разных моделей эта процедура происходит немного по-разному.

Есть 2 способа открытия портов:

Пример использования программы PFPortChecker

Чтобы проверить, удалась ли процедура открытия порта, попросите кого-нибудь вне вашей локальной сети подключиться к серверу, используя внешний IP-адрес (вы также можете попробовать подключиться к себе по внешнему адресу самостоятельно, но неудача в этом случае не всегда означает недоступность сервера). Или же загрузите и установите программу PFPortChecker. В поле Port введите номер порта, который вы пытались открыть. В поле Protocol сначала выберите UDP, а потом TCP. Затем нажмите кнопку проверки. После окончания проверки программа выведет 3 итога для TCP и 3 для UDP. Если текст всех 6 результатов проверки будет зелёного цвета, значит процедура удалась полностью. Для примера смотрите скриншот справа.

Иногда некоторые провайдеры, предоставляют пользователям «серые» IP-адреса. Если в вашем маршрутизаторе указан IP-адрес из диапазонов ниже, то тогда вы не сможете открыть порты на вашем компьютере.

Список наиболее частых «серых» IP:

Администрирование сервера

В данном разделе описаны элементы администрирования сервера — процесс управления и поддержания корректной работы сервера во время его работы при использовании командной строки и элементов графического интерфейса.

Описание GUI

GUI окна сервера состоит из следующих элементов:

Консольный режим

В консольном, или nogui, режиме присутствуют только лог и командная строка. Они исполняют те же функции, что и соответствующие окна графического режима.

Описание доступных команд

Команды в игре делятся на две группы: для операторов и игроков. С их помощью можно получить доступ к некоторым полезным возможностям, а операторам осуществлять контроль за состоянием сервера.

Q: Игроки не могут разрушать блоки, всё сломанное возвращается обратно. Как это исправить?
A: Рядом с точкой спауна есть защищенная зона, блоки в которой могут ставить и уничтожать только операторы сервера. То есть, игрокам нужно просто отойти ровно на столько блоков в любую сторону, сколько стоит в spawn-protection в настроечном файле сервера.

Q: В логе сервера всё время появляется сообщение «Can’t keep up! Is server overloaded or system time changed?» Что это значит?
A: Это значит, что сервер в данный момент перегружен и его работа может быть не совсем исправна. Уменьшить нагрузку на сервер можно, закрыв все сторонние программы, тем самым снизив нагрузку на процессор и освободив дополнительный объём оперативной памяти. Можно попробовать перезапустить сервер. Скорость работы сервера сильно зависит от количества игроков, играющих на нём.

Q: Игроки жалуются на то, что сервер жутко лагает. Как мне исправить это?
A: Возможно, скорость подключения к сети Интернет недостаточная, или аппаратное обеспечение компьютера слишком «слабое». Постарайтесь минимизировать использование интернет-трафика (закрыть интернет-браузеры, торрент-клиенты и прочее) и снизить нагрузку на использование ресурсов компьютера. Добавьте Server.jar в список исключений Вашего фаерволла/антивируса, а лучше всего выключите их. Попробуйте перезапустить сервер. Попросите игроков, у которых лагает, переподключиться к серверу — возможно, проблема лагов на стороне клиента.

Q: Игроки не могут подключиться к моему серверу. Что делать?
A: Сначала попробуйте подключиться к нему самому, использовав в качестве IP-адреса сервера localhost. Если Вам не удалось подключиться, сервер создан полностью неправильно. Возможно, Вы допустили ошибку при конфигурации файла server.properties, или Ваш антивирус агрессивно блокирует сервер игры. Если же Вам удалось подключиться к собственному серверу, проверьте, правильно ли Вы определили собственный IP-адрес. Возможно, Вы забыли открыть порты, которые использует сервер игры. Просмотрите лог сервера на наличие ошибок — они могут указать Вам на причину возникновения проблемы.

Q: При подключении игроки получают сообщение «Outdated server!» / «Outdated client!»
A: Сервер и клиент должны быть одной и той же версии, внимательно проверьте это.

Q: Я хочу запустить на сервере свою карту из одиночной игры. Как мне это сделать?
A: Из папки saves, которая находится в каталоге установленной игры (.minecraft), перенесите папку с Вашей картой (например, New World) в папку, где лежит сервер игры. Не забудьте поменять level-name в файле server.properties, если ваша папка называется не так, как текущая папка сервера. Перенос должен осуществляться при выключенном сервере.

Q: Как мне создать новый мир?
A: Удалите все файлы из Вашей папки мира сервера или укажите новое имя мира в параметре level-name в файле server.properties.

Q: Я хочу обновить сервер. Что для этого нужно?
A: Сначала сделайте бекап — если что-то пойдет не так, Вы сможете восстановить сервер из резервной копии. Затем заново скачайте с официального сайта исполняемый файл сервера и замените им Ваш старый. Затем запустите сервер — все настройки, карты и игроки должны сохраниться.

Q: Как мне добавить на сервер функции /home /warp /spawn и другие?
A: Поищите в плагинах к Bukkit. Например, есть большой плагин CommandBook.

Q: При создании сервера в логе появляется сообщение: «FAILED TO BIND TO PORT. Perhaps a server is already running on that port?». Что делать?
A: Это значит, что порт, который использует сервер, уже занят, или доступ к нему закрыт. Отключите Ваш антивирус и файерволл, программы использующие интернет. Вероятно, вы указали порт, использующийся другой программой (например, веб-сервером или торрент-клиентом) или перед началом создания сервера Вы забыли проделать процедуру открытия портов на модеме/маршрутизаторе. Чтобы узнать, как её сделать, смотрите последний раздел данной статьи.

Q: В логе сервера появляется сообщение: «[INFO] %username% lost connection: End of stream». Что мне делать?
A: Такая проблема может иногда случаться на операционной системе Windows XP SP3. Попробуйте запустить сервер на виртуальной машине (например, VirtualBox) или смените операционную систему.

Q: При запуске сервера я получаю ошибку, что моя версия Java устарела. Как мне узнать, какая у меня версия Java?
A: Для работы игры требуется Java 8. Чтобы проверить Вашу версию, сделайте следующее:

Если в ответ вы получили сообщение такого вида:

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

Если Ваша версия ниже 1.6.1 или Java у Вас не установлена, перейдите на страницу загрузки Java и скачайте последнюю версию.

Источник

Оптимизация сервера 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. Не забудьте согласиться со скачиванием дополнительных ресурсов, они необходимы для корректного отображения некоторых локаций.

Вас ждут квесты, промокоды, «пасхалки» и приятное общение.

Источник

Читайте также:  kerbal space program моды как ставить
Компьютерный онлайн портал