Серия «Minecraft»

14

Размышлизмы о Minecraft: создание своего сервера

Пенного всем, а на связи Уханов. Поговорим о создании своего сервера. Тут и далее мы говорим про Java версию игры.

Всё описанное ниже основано на собственном опыте создания Minecraft серверов.

Идея как двигатель мотивации.

В заголовке параграфа есть два ключевых слова: идея и мотивация. Эти два понятия могут дополнять или ослаблять друг друга, поэтому тщательно подумай о будущем своих серверов.

Идея в этом контексте должна определять вектор развития игрового сервера. ТЫ должен дать чёткий ответ на вопрос: чем твой сервер отличается от остальных? Заметь, я употребляю слово отличается. Он не обязательно должен быть лучше других серверов. Да и на начальном этапе точно таким не станет. Идея же важна с самого запуска. Почему игроки должны идти играть к тебе, а не куда-либо ещё? Твой сервер должен выделяться из большинства.

Мой ответ на этот вопрос:

Когда-то давно, в 2012 году я играл на сервере Шестой с модом SimCraft проекта minecraft.ru. Играл и играл, даже задонатил чутка. На сервере были некоторые ограничения по механизмам и строительству. Раздражало, но не слишком. В 2013 году проект пропал и сервера были отключены. Я упоминал его в прошлом посте. Собственно я отправился на поиски нового сервера для игры. И тут меня ждало разочарование: то донаты дикие, то донаты, нарушающие баланс игры, то конские ограничения по механизмам, а то и вовсе отключённый нижний мир! Так я познакомился с CraftBukkit и компанией.

Годы проб и ошибок, десяток самодельных сборок и провальных идей вылились в текущий проект. А получилось это всё тогда, когда появилась понятная и простая идея:

  • Нет ограничений в строительстве и механизмах

  • Нет доната. При желании игроки могут помочь, докупив алмазиков на рейтингах или пожертвовав на хостинг.

  • Небольшой онлайн. Вытекает из предыдущих пунктов, ведь широкие возможности, помноженные на большой онлайн = высокие мощности.

С мотивацией сложнее. Тебе придётся всё это содержать, развивать и оплачивать. Времени на поиграть будет оставаться мало. Я просто хочу собрать сообщество адекватных игроков для совместной игры.

Доменное имя

Важный момент твоего сервера. В отличии от ip адреса, имя намного проще вводить. Сайт опять-же не помешает. Важный момент, если игровой хостинг предоставляет игровой порт, отличный от 25565, ты сможешь настроить в DNS SRV запись и игрокам не придётся указывать нестандартный порт.

Отнесись к выбору имени внимательно: не пересекайся с другими игровыми проектами и уточни стоимость продления домена. Заметь, я сказал не покупки, а продления. Часто бывает, что покупка доменного имени дешевле его продления.

На этом моменте я накололся, купив доменное имя batyacraft.tech. Домен купил за 900 рубей, а продление оказалось 9000 рублей. Пришлось менять доменное имя на batyamine.ru, что как понимаешь процесс непростой.

Хостинг

Основа игрового проекта. Тебе стоит определиться, где держать сервер: дома или арендовать мощности.

Если ты решишь на начальном этапе держать сервер дома, то стоит арендовать белый ip адрес у провайдера, найти подходящий для этого компьютер с хорошим процессором частотой от 3 Ггц, установить ИБП и озаботиться защитой от внешних атак. Для этих целей подойдёт роутер Mikrotik. Его можно вообще не покупать, а воспользоваться Mikrotik CHR и запустить его на виртуальной машине сервера. Перебор портов, и DDOS ждут тебя.

Собственно сервер

Это может быть как железка, так и виртуальная машина. Не VirtualBox конечно-же, Hyper-V или KVM вполне пойдёт. В качестве операционной системы лично я использую Debian. Как файловую систему под проект использую BTRFS. Её снапшоты очень выручают. Могу потом рассказать подробнее.

Далее, всё это безобразие должно выполнять код на Java. Если сервер будет с плагинами и модами, то рекомендуется использовать JDK, а не JRE. Стало быть, open-jre, входящая в дистрибутив не пойдёт, но так как с лицензией Oracle JDK есть нюансы использования, рекомендую использовать JDK Azul Zulu.

Запустили сервер, работает! Расслабляться рано, ведь нам нужен автозапуск сервера, его потребуется перезапускать по расписанию и с случае внезапной остановки. Рекомендую к применению скрипт для Systemd или Init.d. Скрипт брать тут. Мануал по нему там-же. Можно взять Minecraft Remote Toolkit. Он позволит перезапускать сервер по расписанию и в случае краха, а так-же даст telnet к консоли сервера, что приятно. Но учти, что Minecraft Remote Toolkit не запустится сам собой, воспользуйся скриптам выше. Схема такая: скрипт запускает Minecraft Remote Toolkit, а он запускает Minecraft. Minecraft Remote Toolkit я использую для запуска сервера на версии 1.5.2 из-за того, что Systemd не может корректно его перезапустить и тупо закрывает сервер без сохранения карты.

VPS

В аренду ты можешь взять физический сервер, VPS или специализированный игровой хостинг. Аренда физического сервера очень дорого, но для больших проектов важна как воздух. Не будем об этом. Если что - настраивается как комп дома, см. выше.

VPS. Технически - это виртуальная машина. Обрати внимание на скорость процессора, количество ядер и объём памяти. По настройке см. выше. Не забудь настроить Firewall, защитив SSH. Если тебе интересно, то я использую VPS от Infobox и SmartApe. Неплохо и недорого, если ты не будешь жестить с модами.

Игровой хостинг

Не используй бесплатный хостинг вроде Aternos. Это для поиграть с друзьями, ведь они зачастую выключают сервера, если там нет игроков.

Посоветовать что-либо конкретно сложно, но обрати внимание на частоту процессора, наличие MySQL, количество доступных портов и наличие планировщика, бекапов, sftp. Почитай отзывы, загугли как выглядит панель управления. Тебе же с ней работать! Немаловажным фактором будет возможность изменения ресурсов сервера в обе стороны.

Выбор ядра

Вспомни свою идею. Чего ты хочешь? Сервер с модами или плагинами? Или и то и другое? Это первое, с чем нужно определиться. Так ты сузишь круг ядер и уже там сможешь смотреть доступные версии и их стабильность.

Если нужны только моды без плагинов, то ставишь Forge или Fabric и погнал. Но зачастую администратору требуются плагины. Учитывай поддерживаемые версии ядер выбранных тобой модов. Не торопись качать самые последние версии. Собери таблицу в Excel. Так ты сможешь определиться с версией ядра. Например, захотел ты сервер на базе мода Electrical Age, а он только на версии 1.7.10. Вот ты и вышел на ядро Crucible.

Размышлизмы о Minecraft: создание своего сервера

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

Выбор таких ядер и их версий огромен, перечислю некоторые из них. Учти, что Sponge использует свои плагины.

Ядра только для плагинов:

Зачастую требуется совместить плагины и моды в одном сервере. Здесь выбор более ограничен. Такие ядра обновляются реже. При выборе ядра учти, что некоторые из них уже не поддерживаются. Так-же учитывай совместимость и стабильность ядер. например, команда Mohist ранее выпускала ядро 1.7.10. сейчас разработка прекращена, а совместимость ядра с модами и плагинами очень плохая, о чём они и заявляют, рекомендуя использовать для 1.7.10 ядро Crucible. Самое стабильное их ядро 1.12.2, но наработки они передали команде Magma, хоть и закрывают критические уязвимости. Ядро 1.16.5 в стадии активной разработки и его можно использовать в проде. Тем временем Magma прекратили разработку 1.16.5 и сконцентрировались на 1.12.2 и 1.18. Тем временем Crucible 1.7.10 развивается и продолжает радовать.

Ядра для серверов с плагинами и модами:

  • Mohist

  • Magma

  • Sponge Forge

  • Crucible MC

  • MCPC+

  • Cauldron

  • KCauldron

  • Thermos

    Знающие люди спросят, зачем я тут старья накидал вроде MCPC+, но отвечу, что они хоть и не обновляются, но работают. Сам держу один из серверов на 1.5.2.

Тематика сервера

Ты уже определился с идеей? Тогда давай определим тематику:

  • Технический сервер

  • Магический сервер

  • Может техномагический?

  • Или MMORPG?

  • Мини игры будут?

  • Может полёты в космос?

    Вариантов очень много, а нюансов и того больше! не мешай всё в одну кучу, так будет неинтересно.

Я сделал так:

  • Техномагический сервер RetroSpace 1.5.2

  • Технический сервер Machines 1.12.2

  • Технический сервер FlyWheel 1.16.5 (Построен на базе Create и Immersive Engineering)

ONLINE Статус сервера

Помнишь в конфиге есть такой параметр online-mode=true? Он определяет, смогут-ли к тебе заходить игроки без лицензии. Сложный вопрос и нет на него правильного ответа. Пустишь всех - будет больше игроков, но наличие лицензии фильтрует неадекватов и осложняет обход бана.

Далее подробнее поговорим защите от гриферства.

Показать полностью 1
33

Воспоминания о первом сервере и мысли о настоящем

Всем привет, на связи Уханов.


Расскажу сегодня про то, что увлекает меня уже более десяти лет. Про Minecraft. Собственно играть я начал в далёком уже 2012 году благодаря своему начальнику. Он мне всё показал и рассказал, мне всё показалось странным: графика квадратная, крафты какие-то, но я решил попробовать.

Так я зарегистрировался на сервере minecraft.ru. Там было семь серверов различной тематики.

Были сервера: классический, Industrial Craft 2, mcMMO, Mo’Creatures, Simcraft и Terra Firma Craft. Собственно обитал я на сервере с модом Simcraft — он назывался «Шестой». Первым делом был куплен статус игрока. Это такой донат на минималках: убирал префикс newb в чате и увеличивал регион привата. Привилегий никаких, но и стоил недорого — рублей сто единоразово.

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

Весной 2013 года на сервере начались проблемы: стали отключаться некоторые сервера, а модераторы на форуме не знали, что происходит — админы не выходили на связь. Так загнулся и мой, Шестой. Когда отключился форум, мне удалось зайти лишь на второй сервер и побегать в брошенной уже технологичном мире IndustrialCraft2.

Дальше лаунчер уже не мог никуда подключиться, а вместо сайта открывался пустая страница. Во ВКонтакте было много групп и энтузиастов, которые собирались воскресить Minecraft.ru. Почему-то именно Шестой сервер. Наверное из-за множества красивых построек.


Видео не моё, да ещё и Пикабу его обрезал:

В 2022 году на этом доменном имени открылся новый проект, но это уже совсем не то.

И вот на дворе 2013 год, у меня забрали игрушку. Так я познакомился с CraftBukkit, Modloader и Forge. Первый сервер просто крутился на компе, потом переехал на Debian 6 под VirtualBox, далее на Ubuntu 20 под Hyper-V. Я пробовал разные моды и плагины и со временем появилась идея.


Я понял, что не хочу больше играть на сторонних серверах из-за накладываемых ограничений. То одни механизмы заблокированы, то другие. Я конечно понимаю, что это всё сделано ради удобства игроков, но это невыносимо! Так у меня появился свой проект, но рекламировать я его не буду. На моих серверах разрешены все механизмы и можно делать в принципе что вздумается в рамках разумного. Я конечно ворчу, если забывают выключить контроллер погоды и ночь с плохой погодой на сервере не наступает никогда, но это тоже допустимый сценарий.


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

Я всё вернул на место, и не вижу в этом никаких проблем. Мне самому комфортно играть без ограничений и я вижу, что игроки на сервере тоже неплохо себя реализуют. Люди играют, но не очень много. Так-ли востребован подобный формат сервера?

Как лучше привлечь игроков? Имеет смысл заниматься сервером Bedrock Edition? Не доната ради (его нет), а веселья для.


Ссылок приводить не буду. Кому нужно - найдёте у меня на сайте по ссылке в профиле.

Показать полностью 4 1
Отличная работа, все прочитано!