Как стать автором
Обновить

Поднимаем свой полноценный игровой Minecraft сервер с мини-играми. Часть 2. Устанавливаем карту для лобби сервера

Время на прочтение5 мин
Количество просмотров28K
Всего голосов 10: ↑9 и ↓1+8
Комментарии25

Комментарии 25

Я тоже считаю, как отец, что вы не имеете морального права не закончить эту серию :-)
Лет 7-8 назад бы эту статью..) И мир бы увидел много-много аналогов Hypixel, но эт не точно. Кстати, добавьте, что вставка больших схематиков может уложить сервер, особенно если он хостится на слабом железе, ну или часть вставки может просто не пройти и FAWE выплюнет ошибку, хотя может в совсем последних версиях пофиксили.
я про это писал в первой части, когда обосновывал выбор Paper, но конечно не указывал, что это было из-за FAWE
ну а насчет комментариев про X лет назад — уж извините, сын только дорос до этого :)
7-8 назад не знаю, а вот лет 6 назад я такое проделывал и это не было секретной информацией, все искалось в гугле. Только вместо paper был spigot
А если запустить сервер внутри докера, на докерхабе есть несколько готовых образов, будет ли это чем-то отличаться для игроков? Спрашиваю исключительно из-за лени, ни в коем случае не умаляя достоинства очень познавательной публикации.
а чем он может отличаться для игрока? Всё то же ядро, всё то же самое ставится и настраивается. Для админа разница есть, для игрока — нет.
Т.е. необязательно мучкаться с устанвкой? docker run, и все?
у меня все в докере. все работает
А докер образы где запускаете?
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Если вы запускали Minecraft сервер напрямую из терминала, то после закрытия сесии процесс автоматически завершится и сервер остановится.

Если консоль игрового сервера из консоли ОС не нужна, то оставить процесс в фоне после запуска можно добавкой в конце строки запуска символа &, например:
java -Xms1G -Xmx1G -XX:+UseConcMarkSweepGC -jar Paper-1.15.2.jar &

Не-не, это плохой вариант. Там консоль полезна как в качестве лога, так и для отправки команд.
Более того, в правильном варианте надо реализовать полноценный сервис systemd, который при завершении системы будет в то окно отправлять команды save-all и stop, что позволит корректно завершить игру и сохранить мир. В идеале, в конце надо ждать завершения процесса screen, но на практике пары секунд хватало всегда.

В моём случае сервис выглядел так:
[Unit]
Description=Minecraft Server

[Service]
WorkingDirectory=/srv/minecraft
User=minecraft

ExecStart=/usr/bin/screen -DmS minecraft /bin/java -Xmx2048M -jar forge.jar nogui
ExecStop=/usr/bin/screen -p 0 -S minecraft -X eval 'stuff "say SERVER SHUTTING DOWN. Saving map..."\\015'
ExecStop=/usr/bin/screen -p 0 -S minecraft -X eval 'stuff "save-all"\\015'
ExecStop=/usr/bin/screen -p 0 -S minecraft -X eval 'stuff "stop"\\015'
ExecStop=/bin/sleep 2

[Install]
WantedBy=multi-user.target

Если консоль игрового сервера из консоли ОС не нужна

На вкус и цвет все фломастеры разные. Откуда уверенность, что systemd в наличии?
Ваш вариант идеологически правильный, спору нет.
Не важно, именно systemd будет на сервере или нет. Сойдут Upstart, SysVInit, собственные скрипты на запуск/остановку ОС.
В данной ситуации, впрочем, у автора Ubuntu 18.04 и там systemd есть.
Так есть же rcon для управления сервером. А смотреть логи как бэ удобнее из файла, там и распарсить можно. Ну и кто сейчас смотрит в аппаратную консоль? Screen был удобен именно в аппаратной консоли, а сейчас пару/тройку putty, если требуется несколько консолей, и все удовольствия.
Хорошо, какой ваш вариант для корректного завершения игрового сервера? Открыть игру, зайти на сервер, воспользоваться командами через /rcon? И при этом любое действие сервис-провайдера, которое отправит сигнал ОС на завершение всё равно вызовет потерю данных. Или ставить какой-то дополнительный софт для доступа к rcon? Веб-сервер и скрипт на php?
Screen удобен тем, что к нему можно всегда вернуться.
Хмм, ну так ведь rcon это не команда, это протокол, и есть некоторое кол-во программ, реализующий этот протокол, на github, например.
И вот вопрос, а как Вы «возвращаетесь»? Или Вы запускаете screen, находясь в вебморде консоли управления VPS? Непонятно. Я вот имею ввиду некий хост, на котором запущен игровой сервер. И он может быть физически где угодно. Подключаемся к хосту через ssh и видим и можем все. Нужно поуправлять сервером — используем rcon клиент.
И есть сомнение, что сигнал без флага force приведет к потере данных.
Я ничего не имею против screen, но использовать его в виртуальном терминале как бэ не совсем нормально, если есть возможность использовать несколько терминальных клиентов одновременно.
смысл screen в том чтобы удержать сессию, а не чтобы иметь несколько терминалов. из сессии в screen можно выйти, не прерывая ее, а потом зайти снова.
Но конечно rcon в данном случае удобнее, тк его можно в один клик запустить, в то время как чтоб попасть в консоль через скрин надо сначала запустить путти, потом зайти в сессию скрина
Логи можно почитать в файлике, а команды — по rcon. Я делаю по RCON. + по крону выполняю команды.
Госпаде, как же сложно по сравнению с Виндовс. Раз нужен сервер для детей, то какой смысл хостить свой сервер, если есть стопицот готовых и работающих в рунете?
Как я уже писал, я его рассматриваю как потенциальный коммерческий проект
MC мёртв в мире коммерции. Остались лишь огромные проекты из 2012-2015х, которые получают небольшой профит. Остальные просто не выживают.
Как мне известно, сейчас проще всего взять готовую сборку, внести минимальные изменения и запустить вместе с рекламой. У меня так знакомый зарабатывает, но, конечно, мало для коммерческого проекта. В 2017 говорил что всего от 2 до 7 тысяч рублей за 1 сервер за две недели в зависимости от успеха. Может и больше потом зарабатывал, но я не интересовался. Конечно, для большого проекта нужна бОльшая реклама (например, в TLauncher), там уже люди сотни тысяч рублей получают, но там и вложения нужны в десятки тысяч на рекламу.
Людям, которые не видят эту игру насквозь имхо будет нереально сложно по данному гайду поднять коммерческий проект. Хотя могу и ошибаться, я давно в майнкрафте не варюсь.

Если всё таки гайд пойдёт дальше, то не забудьте людям рассказать про плагины типа «взлом админки» с командой /hack, «скидки» по 99% на «админку», которая даже на модерку не тянет по-факту и про то, как при рекламе с ТиЛаунчера сервера сидят на одном домене, а затем просто меняются, уходя в небытие, от чего игрок заходит на вроде бы тот же домен поиграть ещё раз на сервере, а там уже другой сервер. Но те «скидки» и суть выдаивания денег похлеще чем в мобильном гейминге. У меня чести не хватило навариваться на детях так низко. Я помню буквально пару дней побыл у знакомого модером на его таком же сервере, обрабатывал сообщения в вк. Не люблю открыто врать, но там пришлось каждый день поить завтраками школьников и даже их родителей, писавших нам в группу, что «С донатом вышла непредвиденная ошибка, вам скоро всё вернут. Тех. поддержка работает над решением проблемы» — хотя это всё была ложь. Или то, как они одним донатом на вип перекрыли другое право на админку и его просто технически нельзя исправить. Что тоже было ложью, ведь у них просто слетели все права из-за того что чел написал команду /hack и ему заменило випкой админку и никто возвращать ничего не собирался :\

Хороших серверов сейчас минимум. И почти все они западные. А там такая планка качества, что просто забей…
а похожее только на Minetest можно?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации