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

Minecraft сегодня принадлежит к числу самых популярных сетевых игр. За неполных три года (первый официальный релиз состоялся осенью 2011 года) у него появились миллионы поклонников по всему миру.
Разработчики игры сознательно ориентируются на лучшие образцы двадцатилетней давности, когда многие игры были по сегодняшним меркам примитивными с точки зрения графики и несовершенными с точки зрения юзабилити, но при этом — по-настоящему захватывали.
Как и все игры-песочницы, Minecraft предоставляет пользователю огромные возможности для творчества — в этом, собственно, и заключается главный секрет его популярности.
Организацией серверов для игры в многопользовательском режиме занимаются сами игроки и их сообщества. Сегодня в Интернете функционируют десятки тысяч игровых серверов (см., например, список здесь).
Немало поклонников этой игры есть и среди наших клиентов, и они арендуют в наших дата-центрах оборудование под игровые проекты. В этой статье мы расскажем о том, на какие технические моменты нужно обратить внимание при выборе сервера для
Minecraft.
Выбираем платформу
- сервер — программа, с помощью которой игроки взаимодействуют друг с другом по сети;
- клиент — программа для подключения к серверу, устанавливаемая на компьютере игрока;
- плагины — дополнения к серверу, добавляющие новые функции или расширяющие старые;
- моды — дополнения к игровому миру (новые блоки, предметы, возможности).
Для Minecraft существует много серверных платформ. Самыми распространенными и популярными являются Vanilla и Bukkit.
Vanilla это официальная платформа от разрабочиков игры. Распространяется как в графическом, так и в консольном варианте. Новая версия Vanilla всегда выходит одновременно с новой версией Minecraft.
Недостатком Vanilla является чрезмерное потребление памяти (примерно 50 МБ на одного игрока). Еще один существенный недостаток — отсутствие плагинов.
Bukkit был создан группой энтузиастов, предпринявших попытку усовершенствовать официальный сервер Minecraft. Попытка оказалась вполне удачной: по функциональности Bukkit намного шире, чем Vanilla — в первую очередь благодаря поддержке разнообразных модов и плагинов. При этом он потребляет меньше памяти на каждого игрока — примерно 5–10 МБ.
Минусы Bukkit заключаются в том, что при запуске он забирает слишком много оперативной памяти. Кроме того, чем дольше сервер работает, тем больше ему требуется памяти (даже если игроков мало). Выбирая в качестве сервера Bukkit, следует учитывать, что его новые версии, как правило, содержат ошибки; стабильная версия обычно появляется примерно через 2-3 недели после выхода официальной версии Minecraft.
Кроме того, в последнее время набирают популярность и другие платформы (например, Spout, MCPC и MCPC+), но они отличаются ограниченной совместимостью с Vanilla и Bukkit и крайне ограниченной поддержкой модов (например, для Spout вообще можно только писать моды c нуля). Если их и использовать — то только для экспериментов.
Для организации игрового сервера мы рекомендуем использовать платформу Bukkit, так как она отличается наибольшей гибкостью; кроме того, под нее существует множество разнообразных модов и плагинов. Стабильная работа сервера Minecraft во многом зависит от грамотного выбора аппаратной платформы. Рассмотрим этот вопрос более подробно.
Аппаратные требования
И сервер, и клиент Mineсraft очень требовательны к системным ресурсам.
При выборе аппаратной платформы следует учитывать, что многоядерный процессор больших преимуществ не даст: ядро сервера Minecraft может использовать лишь один поток вычисления. Второе ядро, впрочем, будет нелишним: некоторые плагины выполняются в отдельных потоках, да и Java тоже потребляет немало ресурсов…
Поэтому для Minecraft-сервера лучше выбирать процессор, у которого выше производительность одного ядра. Более мощный двухядерный процессор будет более предпочтительным, чем многоядерный, но менее мощный. На специализированных форумах рекомендуется использоваться процессоры с тактовой частотой не ниже 3ГГц.
Для нормального функционирования сервера Minecraft требуется большое количество оперативной памяти. Bukkit занимает примерно 1ГБ оперативной памяти; кроме того, под каждого игрока, как уже было сказано выше, отводится от 5 до 10 МБ. Плагины и моды тоже потребляют довольно много памяти. Для сервера на 30 — 50 игроков, таким образом, потребуется не менее 4 ГБ оперативной памяти.
В Minecraft очень многое (например, загрузка тех же плагинов) зависит от скорости работы файловой системы. Поэтому предпочтительно выбирать сервер с SSD-диском. Шпиндельные диски вряд ли подойдут по причине низкой скорости случайного чтения.
Огромное значение имеет и скорость интернет-подключения. Для игры 40-50 человек вполне хватит канала 10 Мб/c. Однако тем, кто планирует более масштабный minecraft-проект, включающий сайт, форум и динамическую карту, крайне желательно иметь канал с большей пропускной способностью.
- Intel Core 2 Duo E8400 3ГГц, 6ГБ RAM, 2×500ГБ SATA, 3000 руб/мес.;
- Intel Core 2 Quad Q8300 2.5ГГц, 6ГБ RAM, 2×500ГБ SATA, 3500 руб/мес. — данную конфигурацию мы используем для нашего тестового сервера MineCraft, на которым вы прямо сейчас можете поиграть (как это сделать — написано ниже);
- Intel Core i3-2120 3.3ГГц, 8ГБ RAM, 2×500ГБ SATA, 3500 руб/мес.
Эти конфигурации вполне подойдут для создания серверa Minecraft на 30-40 игроков. Некоторым минусом является отсутствие SSD-дисков, но мы даем другое немаловажное преимущество: гарантированный канал 100 Мб/с без каких-либо ограничений и соотношений. При заказе всех перечисленных выше конфигураций установочный платеж не взимается.
- 2х Intel Xeon 5130, 2ГГц, 8ГБ RAM, 4×160ГБ SATA, 5000 руб/мес;
- 2х IntelXeon 5504, 2ГГц, 12ГБ RAM, 3×1ТБ SATA, 9000 руб/мес.
Установка и запуск сервера Bukkit в OC Ubuntu
Прежде чем устанавливать сервер, создадим нового пользователя и добавим его в группу sudo:
Далее зададим пароль, под которым созданный пользователь будет подключаться к серверу:
Переподключимся к серверу под новой учетной записью и приступим к установке.
Minecraft написан на Java, поэтому на сервере обязательно нужно установить Java Runtime Environment.
Обновим список доступных пакетов:
Затем выполним следующую команду:
Для установки и запуска Bukkit желательно также установить терминальный мультиплексор — например, screen (можно использовать и другие терминальные мультиплексоры — см. наш обзор):
Screen понадобится, если мы будем подключаться к игровому серверу по ssh. С его помощью можно будет запускать сервер Minecraft в отдельном окне терминала, и даже после закрытия клиента ssh сервер будет работать.
Создадим директорию, в которой будут храниться файлы сервера:
После этого зайдем на страницу загрузок официального сайта Bukkit. В правой верхней части страницы можно увидеть ссылку на последнюю рекомендованную к использованию cборку сервера (recommended build). Советуем скачивать именно ее:
Теперь запустим screen:
и выполним следующую команду:
- Xmx1024M — максимальное количество оперативной памяти на сервер;
- jar craftbukkit.jar — ключ до сервера;
- o false — разрешает доступ к серверу с пиратских клиентов.
Сервер будет запущен.
Остановить сервер можно, набрав в консоли команду stop.
Настройка и конфигурирование сервера
- generator-settings — задает шаблон генерации суперплоского мира;
- allow-nether — определяет возможность перехода в Нижний мир. По умолчанию для этого параметра установлено значение true. Если установлено значение false, то все игроки из Нижнего мира будут перемещены в обычный;
- level-name — имя папки с файлами карты, которая будет использоваться во время игры. Папка размещается в той же директории, где находятся файлы сервера. Если такой директории нет, сервер автоматически создает новый мир и помещает его в директорию с таким же именем;
- enable-query — при установленном значении true активирует протокол GameSpy4 для прослушивания сервера;
- allow-flight — разрешает полеты по миру Minecraft. По умолчанию имеет значение false (полеты запрещены);
- server-port — указывает порт, который будет использоваться сервервом игры. Стандартный порт для Minecraft — 25565. Значение этого параметра изменять не рекомендуется;
- level-type — определяет тип мира (DEFAUT/FLAT/LARGEBIOMES);
- enable-rcon — открывает удаленный доступ к консоли сервера. По умолчанию он отключен (false);
- level-seed — входные данные для генератора уровней. Чтобы иметь возможность создавать случайные миры, это поле нужно оставить пустым;
- force-gamemode — уставливает для игроков, подключающихся к серверу, стандартный режим игры;
- server-ip — указывает IP-адрес, который будет использоваться игроками для подключения к серверу;
- max-build-height — указывает максимальную высоту постройки на сервере. Его значение должно представлять собой число, кратное 16 (64, 96, 256 и т.п.);
- spawn-npcs — разрешает (если установлено значение true) или запрещает (если установлено значение false) появление NPС в деревнях;
- white-list — включает и отключает использование белого списка игроков на сервере. Если установлено значение true, то администратор сможет формировать белый список, добавляя в него ники игроков вручную. Если же установлено значение false, то на сервер может заходить любой пользователь, знающий его IP-адрес и порт;
- spawn-animals — разрешает автоматическое появление дружелюбных мобов, если установлено значение true);
- snooper-enabled — разрешает серверу отправлять статистику и данные разработчикам;
- hardcore — включает на сервере режим Хардкор;
- texture-pac — файл текстур, который будет использоваться при подключении игрока к серверу. В качестве значения этого параметра указывается имя zip-архива с текстурами, который хранится в той же директории, что и сервер;
- online-mode — включает проверку премиум-аккаунтов пользователей, подключающихся к серверу. Если для этого параметра установлено значение true, но на сервер смогут заходить только владельцы премиум-аккаунтов. Если проверка аккаунтов отключена (установлено значение false), то на сервер могут заходить любые пользователи (в том числе, например, и игроки, подделавшие ник), что создает дополнительные риски безопасности. При отключенной проверке можно играть в Minecraft по локальной сети, без доступа к Интернету;
- pvp — разрешает или запрещает игрокам воевать друг с другом. Если этот параметр имеет значение true, то игроки могут уничтожать друг друга. Если установлено значение false, то игроки не могут наносить друг другу прямой урон;
- difficulty — задает уровень сложности игры. Может принимать значения от 0 (самый легкий) до 3 (самый сложный);
- gamemode — указывает, какой игровой режим будет установлен для заходящих на сервер игроков. Может принимать следующие значения: 0 — Survival, 1-Creative, 2-Adventure;
- player-idle-timeout — время бездействия (в минутах), по истечении которого игроки автоматически отключаются от сервера;
- max-players — максимальное допустимое количество игроков на сервере (от 0 до 999);
- spawn-monsters — разрешает (если установлено значение true) порождение враждебных мобов;
- generate-structures — включает (true)/отключает (false) генерацию структур (сокровищницы, крепости, деревни);
- view-distance — регулирует радиус обновляемых чанков для отсылки игроку; может принимать значения от 3 до 15.
Логи сервера minecraft записываются в файл server.log. Он хранится в той же папке, что и файлы сервера. Лог постоянно увеличивается в размере, забирая все больше и больше дискового пространства. Упорядочить работу механизма логирования можно с помошью так называемой ротации логов. Для ротации используется специальная утилита — logrotate. Она ограничивает число записей в логе определенным пределом.
Можно настроить ротацию логов так, что все записи будут удаляться, как только файл лога достигнет определенного размера. Можно также установить срок, по истечении которого все старые записи будут признаны неактуальными и удалены.
Основные настройки ротации находятся в файле /etc/logrotate.conf; кроме того, для каждого приложения можно создавать индивидуальные настройки. Файлы с индивидуальными настройками хранятся в директории /etc/logrotate.d.
Создадим текстовый файл /etc/logrotate.d/craftbukkit и впишем в него следующие параметры:
- параметр rotate указывает число ротаций до удаления файла;
- weekly указывает, что ротация будет производиться еженедельно (можно установить и другие параметры: monthly — ежемесячно и daily — ежедневно);
- compress указывает, что архивные логи нужно сжимать (обратная опция — nocompress);
- missingok указывает, что при отсутствии файла лога нужно продолжать работу и не выводить сообщения об ошибке;
- notifempty указывает не сдвигать файл лога, если он пуст.
Советы по оптимизации
Сразу же оговоримся, что в этом разделе будут приведены советы, касающиеся только оптимизации игрового сервера. Вопросы тонкой настройки и оптимизации сервера, на котором установлен Mineсraft, представляют собой отдельную тему, выходящую за рамки этой статьи; заинтересованные читатели без труда смогут найти нужную информацию в Интернете.
Одной из самых распространенных проблем, возникающих при игре в Minecraft, являются так называемые лаги — ситуации, когда программа вовремя не реагирует на пользовательский ввод. Они могут быть обусловены проблемами как на стороне клиента, так и на стороне сервера. Ниже мы дадим рекомендации, которые помогут снизить вероятность возникновения проблем на серверной стороне.
Регулярно контролируйте расход памяти сервером и плагинами
Потребление памяти можно отслеживать при помощи специализированных административных плагинов — например, LagMeter.
Следите за обновлениями плагинов
Как правило, разработчики новых плагинов с каждой новой версией стремятся снизить нагрузку.
Старайтесь не пользоваться множеством плагинов со сходной функциональностью
Большие плагины (например, Essentials, AdminCMD, CommandBook) очень часто включают в себя функциональность многих мелких плагинов. Например, тот же Essential содержит функции плагинов iConomy, uHome, OpenInv, VanishNoPacket, Kit. Мелкие плагины, функциональность которых полностью покрывается функциональностью одного большого, в большинстве случаев можно удалить, чтобы не перегружать сервер.
Ограничивайте карту и прогружайте ее самостоятельно
Если не ограничивать карту, то нагрузка на сервер существенно увеличится. Ограничить карту можно при помощи плагина WorldBorder. Для этого нужно запустить этот плагин и выполнить команду /wb 200, а затем прорисовать карту при помощи команды /wb fill.
Прорисовка, конечно, займет немало времени, но лучше это сделать один раз, закрыв сервер на технические работы. Если карту будет прорисовывать каждый игрок — сервер будет работать медленно.
Замените тяжеловесные плагины на более быстрые и менее ресурсоемкие
Далеко не все плагины для Minecraft можно назвать удачными: часто они содержат много лишних и ненужных функций, а иногда еще и потребляют много памяти. Неудачные плагины лучше заменять на альтернативные (их существует довольно много). Например, плагин LWC можно заменить на Wgfix+MachineGuard, а плагин DynMap — на Minecraft Overviewer.
Всегда очищайте дроп или установите плагин для автоматического удаления дропа
Дропом в играх называются предметы, выпадающие при смерти моба или разрушении некоторых блоков. Хранение и обработка дропов занимают очень много системных ресурсов.
Чтобы сервер работал быстрее, дроп желательно удалять. Это лучше делать при помощи специальных плагинов — например, NoLagg или McClean.
Не используйте античиты
На игровых серверах часто устанавливаются так называемые античиты — программы, которые блокируют попытки воздействовать на игру нечестными способами.
Существуют античиты и для Minecraft. Любой античит — это всегда дополнительная нагрузка на сервер. Предпочтительнее устанавливать защиты для лаунчера (которые, впрочем, абсолютной гарантии безопасности не дают и легко ломаются — но этой уже тема для отдельного разговора) и для клиента.
Вместо заключения
Любые инструкции и рекомендации оказываются гораздо более эффективными, если они подкреплены конкретными примерами. Основываясь на приведенных выше инструкциях по установке, мы создали свой сервер MineCrаft и поместили на карту кое-что интересное.
- Сервер Bukkit — стабильная рекомендованная версия 1.6.4;
- Плагин Statistics — чтобы собирать статистику об игроках;
- Плагин WorldBorder — чтобы прорисовать и ограничить карту;
- Плагин WorldGuard (+WorldEdit как зависимость) — чтобы защитить некоторые области.
Приглашаем всех желающих поиграть на нем: чтобы подключиться, добавьте новый сервер и укажите адрес mncrft.slc.tl.
Будем рады, если в комментариях вы поделитесь собственным опытом установки, настройки и оптимизации серверов MineCraft и расскажете, какие моды и плагины вам интересны и почему.
Классная новость: С 1 августа установочный платеж на выделенные серверы фиксированной конфигурации снижен на 50%. Теперь разовый установочный платеж составляет всего 3000 руб.
Читателей, которые не могут оставлять комментарии здесь, приглашаем к нам в блог.
Майнкрафт про ядра процессора
Вопрос не совсем корректен, ведь речь должна идти об используемых потоках. В последней версии (1.18.1) Майнкрафт может использовать до 255 потоков. Если доступно меньше, то использует на 1 меньше, чем доступно. Главное, чтобы сама система позволяла столько использовать.
На версии 1.17.1 и ниже стояло ограничение в 7 потоков.
Ну а стабильная работа сильно зависит от требуемых условий. Для игры на серверах сильно мощный процессор не нужен, сервер тянет все вычисления.
Для игры в одиночке требования к мощности ЦП сильно вырастают, так как сервер, по сути, перемещается к тебе в мир. А если рассматривать вариант для локального сервера. Мощности нужны запредельные. Ровно как и оптимизация игры. Сейчас у кубача с ней большие проблемы, и уже мало кто играет в ванильный Майн без оптимизаторов.
Выбор оптимальной конфигурации для Minecraft сервера
На нашем хостинге серверам выделяется ровно столько ресурсов (ЦПУ, ОЗУ, дисковое пространство), сколько покупает клиент. Превышение лимитов по использованию ресурсов является основной причиной низкой производительности на сервере. Это значит, что клиентам следует ответственно подходить к выбору конфигурации, чтобы сервер не стоил дорого, но при этом не было проблем с производительностью. В этой статье мы рассмотрим некоторые моменты, на которые пользователям стоит обратить внимание при покупке сервера.
ЦПУ — Процессор
На нодах хостинга используются процессоры разных моделей. Посмотреть модель процессора можно наведя курсор на название ноды на странице покупки сервера. На некоторых нодах частота процессора уменьшена, из-за чего стоимость ЦПУ на них несколько ниже, чем на остальных.
Клиент, помимо выбора нод с разной частотой ЦПУ, имеет возможность выбрать количество выделяемых ядер процессора. Когда серверу выделено более одного ядра, в панели можно заметить, что используется более 100% ЦПУ. В таком случае принято считать, что 100% = 1 ядро.
Выбирая количество ядер для Minecraft сервера, следует в первую очередь учитывать, что сама игра довольно плохо утилизирует многоядерные процессоры. Это значит, что выделение большого числа ядер практически не скажется на производительности «чистого» сервера без каких-либо сторонних дополнений. Для большинства пользователей оптимальным будет следующее количество ядер:
- Для тестовых серверов: 0.5 ядра или 1 ядро
- Для небольших серверов, например, для серверов друзей: 1 ядро или 1.5 ядра
- Для крупных серверов: 2 ядра
Несмотря на то, что Minecraft во время работы сервера крайне неактивно использует более 1 ядра под большой нагрузкой, при запуске утилизация ЦПУ может быть довольно высокой. При выделении менее двух ядер, на запуск сервера будет уходить достаточно много времени.
Здесь стоит также заметить, что выше речь идёт о ванильных серверах. Существуют различные проекты, которые привносят изменения в некоторые игровые механики и помогают игре использовать несколько ядер ЦПУ. К таковым можно отнести, например, Paper. Не стоит забывать и о различных модах и плагинах, которые могут быть требовательны к процессорным ресурсам. Для клиентов, использующих подобные дополнения, есть возможность приобрести более двух процессорных ядер.
ОЗУ — Оперативная память
Говоря о выделяемой Minecraft серверу оперативной памяти, в первую очередь стоит заметить одну из особенностей JVM: при выделении большого объёма памяти, сборка мусора происходит гораздо реже, что приводит к большему использованию ОЗУ. Проще говоря, чем больше памяти выделено серверу, тем больше памяти сервер будет использовать, даже если ему столько не нужно. В то же время, при выделении недостаточного количества оперативной памяти, сервер может работать нестабильно или не запускаться вовсе.
Минимальное количество памяти зависит во многом от используемой версии игры. Если Minecraft до версии 1.12.2 включительно мог спокойно работать с 1 Гб ОЗУ без высокой нагрузки, то для более новых версий рекомендуется выделять минимум 2 Гб ОЗУ.
Увеличивать объём потребляемой памяти могут плагины/моды с большим функционалом, высокий онлайн на сервере, увеличение размера мира на сервере и т.п. Для каждого сервера оптимальный объём ОЗУ будет разным.
Для последних версий игры мы можем рекомендовать:
- Для тестовых серверов: 2-4 Гб ОЗУ
- Для небольших серверов для игры с друзьями: 3-6 Гб ОЗУ
- Для крупных серверов: 10 и более Гб ОЗУ
Данные рекомендации исключительно созданы по личному опыту для версии 1.19. Через некоторое время данные могут устареть, учитывайте еще и это.
Для версий 1.17-1.13:
- Для тестовых серверов: 1.5-2 Гб ОЗУ
- Для небольших серверов для игры с друзьями: 2.5-4 Гб ОЗУ
- Для крупных серверов: 4 и более Гб ОЗУ
- Для тестовых серверов: 0.5-1 Гб ОЗУ
- Для небольших серверов для игры с друзьями: 1-2 Гб ОЗУ
- Для крупных серверов: 2 и более Гб ОЗУ
Для всех версий ниже, рекомендации, как правило, меньше.
Каким бы ни был лимит памяти, рано или поздно в большинстве случаев он закончится. Это создаёт необходимость периодически перезапускать сервер. О том, как делать это автоматически, мы рассказывали в этой статье.
На всех нодах хостинга диски одинаковые. У клиентов есть лишь возможность выбрать объём дискового пространства, доступного серверу.
Необходимый для Minecraft сервера объём диска зависит в основном от предназначения сервера и его популярности.
- Для серверов, где игроки практически не могут взаимодействовать с миром (хабы, сервера авторизации, прокси), 2 Гб на диске обычно бывает более, чем достаточно.
- Владельцам небольших серверов для нескольких человек вряд ли потребуется более 10 Гб на диске.
- Однако для крупных проектов, особенно для серверов, где размер мира не ограничен, может быть недостаточно и 50 Гб
Объём занимаемого дискового пространства сильно зависит от размера сгенерированной части игрового мира. Не стоит забывать и про плагины, которые сохраняют на сервере большое количество информации, например, про CoreProtect, база данных которого может занимать довольно много места.
Остались вопросы?
Если вы не уверены в том, сколько ресурсов нужно вашим серверам, вы всегда можете обратиться за помощью в нашей беседе ВКонтакте или Discord сервере.
superhub hosting
Лебедев Илья Олегович
ИНН 772148048957
+79035652746
[email protected]
Server/Requirements
This page lists the server requirements of the current Java Edition version, 1.20.1.
Contents
Server installation and configuration [ ]
For a full tutorial on setting up a Minecraft server, please read the installation and configuration guide.
Server requirements [ ]
Requirements may change depending on the server software (like the OS), such as using Bukkit and/or mods.
- A Java runtime (JRE), version 8 or higher. JDK contains JRE, so it will work too. As of version 1.17, JRE version 16 is required. For version 1.18, JRE version 17 is required.
- At least 1 GB of RAM allocated for the server to run ( -Xmn 128M -Xmx 1G ).
- If you are using Windows or a desktop-based Linux distribution, you should have at least 1 GB of additional physical RAM in the computer, so the graphics on the desktop don’t become laggy. It is difficult to determine how much RAM is needed because there are many factors to consider such as the number of players on your server and how they interact with the game world. While a player object only requires about 50 to 100 MB of RAM, the server often has to allocate much more memory per player for many different reasons. [1]
- Depending on the specific java version, you may be able to set a «soft max RAM» amount for the server JAR program. The JDK will try to keep memory usage below the soft max, but will allow it to go above it to reach -Xmx if needed. Try -Xmn 128M -XX:SoftMaxHeapSize=1G -Xmx 2G .
- Hyperthreading (HT) or simultaneous multithreading (SMT), i.e. a CPU providing 2 «threads» or «logical cores» for each physical core, does not seem to benefit Minecraft much. On the other hand, it does not really hurt either, and having the setting on does allow your CPU to do some extra work on the side. Just don’t worry about it.
- The situation with third-party software is that while additional work (from plugins) do use additional cores, the core world mechanics (ticking, etc.) largely remain the same. Attempts to make the core mechanics multithreaded include Akarin, but do be warned this is very complex work and things get buggy very easily.
Here is a simple recommendation to help you get started and/or help decide which hosting option is best for you:
Running a LAN Party type Server (since 1.11.2) [ ]
Be sure to have at least a low-ping internet connection, such as DSL or cable.