Поднимаем свой полноценный игровой Minecraft сервер с мини-играми. Часть 1. Выбираем и устанавливаем сервер
tl;dr;
И так, что будет сделано в конце всего туториала?
- создадим основной сервер, так называемое лобби — место, куда попадают все игроки, только что подключившиеся к серверу
- запустим второй сервер, на котором установим популярную мини-игру Murder Mystery
- установим и настроим прокси сервер, который соединит игровой клиент и запущеные серверы таким образом, что игроки не заметят, что они переходят с одного сервера на другой
- создадим игрового персонажа, который будет перенаправлять нас на сервер с мини-игрой
- Установим еще одну популярную мини-игру SkyBlock
- Добавим внутриигровое меню на основе предметов инвентаря игрока
- Добавим внутриигровые деньги
- Создадим магазин
- … и многое другое
Посмотреть, что в итоге получилось у меня: mc.piratebayserver.net
По любым вопросам пишите в Discord: discord.gg/QjWSQhx
Я никогда раньше не играл в Minecraft. Скажу даже больше, мне он был не особо интересен. Скорее все, по причине того, что я не понимал его идеи. Да, я видел, что в нем можно строить бесконечное множество сооружений, выращивать разного вида растения и животных, строить механизмы. Но я все еще не мог понять, как за этой игрой с примитивной графикой мои дети могут проводить целые дни напролёт.
Но вот в один прекрасный день, восьмилетний сын пожаловался, что у него мало друзей и ему почти не с кем играть в Minecraft. Я начал думать, как ему помочь найти больше друзей и решить проблему с игрой по сети. Я знал, что есть альтернативная версия сетевой игры от Minecraft, которая называется Realms. Это платная подписка, по которой ты можешь создавать свой сервер, а Minecraft выступает хостером. Недостаток этого варианта в том, что играть на таком сервере может до 10 человек. Так же нет возможности устанавливать моды — дополнения от сторонних разработчиков, которые изменяют или дополняют оригинальный контент Minecraft. Такие сервера без модов еще называют ванильными.
Таким образом, изучив немного тему, я предложил ребенку поднять сервер с какой нибудь интересной картой и разместить его адрес в интернете, что бы на него заходили другие игроки. Таков был план по поиску друзей для совместной игры для сына, а для себя я решил, что это отличный вариант для нового проекта, как дополнительного источника доходов, о котором я уже давным давно задумывался.
Существует две версии Майнкрафа. Одна — это Pocket Edition, предназначена для мобильных устройств и Windows 10, вторая — Java Edition, для ПК. Как оказалось они не совместимые друг с другом, поэтому я выбрал Java Edition, так как в игровом мире этой версии больше возможностей, в добавок под нее существует более широкий выбор плагинов. Ну и еще потому, что я Java разработчик.
Для хостинга я выбрал DigitalOcean, так как у меня уже был опыт его использования и создание дроплетов на нем занимает считаные минуты. Вы же можете использовать любой удобный для вас хостинг.
Для старта нам достаточно конфигурации на 2 CPU и 2 GB RAM. Я пробовал 1 CPU, но сервер жутко долго стартовал, с 1GB оперативной памяти я иногда сталкивался с крашем сервера при импорте крупных карт.

При создании дроплета я выбрал способ аутентификации — SSH key

Выполнил инструкции по его созданию

И так, виртуальный сервер готов.

Заходим на него ssh:
ssh -i ~/minecraft root@178.128.148.39
где ~/minecraft — путь к созданному приватному SSH ключу, 178.128.148.39 — выданный хостингом IP адрес.
И так, мы на сервере.
MacBook-Pro-Denis-2:~ denisdnu$ ssh -i ~/minecraft root@178.128.148.39
Enter passphrase for key '/Users/denisdnu/minecraft':
Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 4.15.0-66-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Thu Apr 9 18:12:55 UTC 2020
System load: 0.24 Processes: 93
Usage of /: 1.7% of 57.98GB Users logged in: 0
Memory usage: 6% IP address for eth0: 178.128.148.39
Swap usage: 0%
0 packages can be updated.
0 updates are security updates.
Last login: Thu Apr 9 18:12:33 2020 from 94.100.220.60
root@minecraft-main:~#
Создаем папку для нашего первого Minecraft сервера и переходим в неё:
mkdir PirateBay
cd PirateBay
Теперь нам нужно определиться с реализацией сервера. Их существует несколько, самые популярные — это Spigot, Paper, Forge. Более детально про отличия этих серверов вы можете почитать здесь.
Основное отличие от нативного Vanilla сервера в том, что модификации оригинального сервера позволяют помимо прочего запускать плагины сторонних разработчиков, существенно расширяя возможности игрового мира. Такие плагины позволяют создавай мини-игры, вводить ограничения для игроков, объединять сервера в сеть и многое другое.
Изначально я скачал и установил Spigot. Это самый популярный и хорошо оптимизированный сервер для майнкрафта. Под него разрабатывается множество плагинов и существует огромное комьюнити как разработчиков, так и пользователей.
Однако я столкнулся с тем, что при работе с одним из плагинов для редактирования карт, последний работал некорректно и в логах рекомендовал использовать Paper как более оптимизированный форк на основе Spigot.
В итоге я остановил свой выбор на Paper, хотя для некоторых инстансов сервера оставил Spigot. Теперь нам нужно установить и запустить выбранный сервер.
Качаем последнюю версию свервера:
curl -kLJ https://papermc.io/api/v1/paper/1.15.2/165/download -o Paper-1.15.2.jar
и пробуем запустить
java -Xms1G -Xmx2G -XX:+UseConcMarkSweepGC -jar Paper-1.15.2.jar
У меня сервер не запустился, так как не установлена Java:
Command 'java' not found, but can be installed with:
apt install default-jre
apt install openjdk-11-jre-headless
apt install openjdk-8-jre-headless
Устанавливаем:
apt update
apt install default-jre
Теперь запускаем повторно:
java -Xms1G -Xmx2G -XX:+UseConcMarkSweepGC -jar Paper-1.15.2.jar
Сервер не запускается, выдавая сообщение:
You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
Открываем файл:
nano eula.txt
меняем eula=false на true и сохраняем. Еще раз запускаем сервер:
java -Xms1G -Xmx2G -XX:+UseConcMarkSweepGC -jar Paper-1.15.2.jar
Сервер запустился:

Запускаем игру и подключаемя к нашему серверу:

Поздравляю, ваш первый сервер запущен и работает.
Что мы будем делать в следующей части:
- установим первые плагины
- загрузим свою карту
- создадим еще один сервер для мини-игры
- установим мини-игру
- создадим первого игрового персонажа, который будет перенаправлять нас из лобби на сервер с мини-игрой
- настроим права к плагинам и командам сервера
Не переключайтесь!
На съемках «Народа против Гориллы Гродда» заметили намеки на появление Короля Соломона
Premium Collectibles Studio открыла предзаказ на статую ксеноморфа из фильма Чужой высотой 124 сантиметра
Серии Crash Bandicoot исполнилось 30 лет, но Xbox практически никак не отметила юбилей
Градостроительный симулятор XIRI Oasis Cities посвящен выживанию города будущего
Разработчики Moss закрыли студию после релиза игры на всех платформах
Авторы Fable пообещали сделать боевую систему глубокой вместо копирования старых RPG
По данным СМИ, Sony забрала у студии Kojima Productions движок Decima
Российская инди-студия анонсировала градостроительный симулятор XIRI Oasis Cities