Привет, Хабр! На связи хостинг-провайдер SpaceWeb. Несколько месяцев назад мы решили попробовать сделать игровой сервер для Minecraft. Это был командный пет-проект, в котором поучаствовал даже наш гендир и его семья. Эксперимент был удачным. Рассказываем, почему обратили внимание именно на эту игру и как создавали сервер.
Почему выбрали Minecraft
В первую очередь мы смотрели на популярность игры. Minecraft — самая продаваемая видеоигра всех времен: за 15 лет с релиза было продано более 300 млн копий. Квадратный мир связал разные поколения: Minecraft любят и школьники, и взрослые люди.
Еще одна особенность, которая стала для нас преимуществом, — готовые серверы для Minecraft может создать любой хостинг-провайдер. С другими играми всё сложнее. Например, Valve запрещает сторонним компаниям использовать свои игры в коммерческих целях и сама занимается поддержкой серверов по Counter-Strike: Global Offensive и Dota 2.
Создать сервер может не только хостер, но и любой игрок самостоятельно по инструкциям в интернете. У этого варианта есть плюсы — можно устанавливать любые моды и плагины, применять любые конфигурации, проводить детальную настройку мира.
Но есть и куча минусов — придется долго разбираться с настройкой, а технических характеристик устройства может быть недостаточно. Из-за этого на сервере будут появляться лаги и высокие пинги, а получить удовольствие от игры будет сложно.
Мы же хотели создать готовое решение, которое сэкономит время игроков: просто вводишь IP-адрес и попадаешь на сервер, где уже всё настроено.
Как создавали сервер
Разработка игрового сервера для нас была экспериментом, поэтому мы не хотели тратить на проект чересчур много времени и углубляться в новые технологии. Попытались обойтись ресурсами, которые уже были у компании.
Мы взяли классическую виртуальную машину, с которой обычно работаем, и установили на нее Minecraft: Java Edition без модификаций. От виртуального хостинга отказались, потому что для игрового сервера он недостаточно мощный.
Обычно хостинг-провайдеры игровых серверов предлагают решения для определенного количества игроков — например, на 10, 20 или 50 человек. Мы решили зайти со стороны технических характеристик. Первым делом позаботились о достаточном объеме оперативной памяти, так как для многопользовательского режима это ключевая характеристика. Сделали несколько вариантов. Базовый объем, которого хватит на 10–12 человек, — 6 ГБ. При необходимости оперативку можно расширить до 32 ГБ: на таком сервере могут играть сотни игроков со множеством модов.
По сути сервер уже был готов — заходи и играй. Но когда начали его тестировать, поняли — нужно добавить решение, с которым игроки смогут устанавливать моды и кастомизировать сервер без лишних трудностей. Выбрали Forge Addon, потому что с ним работает большинство модификаций, например популярный Macaw‘s Holiday, который добавляет в игру праздничный декор, и мод с подарками Jolly Boxes.
Оказалось, что даже с аддоном установить мод не так просто: нужно вручную останавливать сервер, менять код и снова запускать его. Стали думать, как сделать так, чтобы можно было в одном месте одновременно остановить сервер и запустить и включить forge. Обычно это решается с помощью визуальной панели управления, через которую владелец настраивает мир.
Нам хотелось проще и быстрее реализовать возможность установки мода, поэтому мы добавили административную консоль с командами. Внедрить консоль вместо визуальной панели предложил наш сотрудник — заядлый геймер, который сам разрабатывает свои игры. В качестве тестировщиков выступили наш генеральный директор Александр и его внучка Ирида.
Что получили в итоге
Мы запустили эксперимент с игровым сервером, чтобы заглянуть в новую для себя нишу гейминга. В процессе изучили саму игру, попробовали популярные моды и получили удовольствие от процесса.
Результат — готовый сервер с IP-адресом, чтобы зайти в игру. Это максимально простое решение, чтобы играть с друзьями на своем серваке и не тратить на его создание и поддержание кучу часов. Вот что еще мы добавили:
Три резервные копии виртуальной машины — можно сделать бэкап сервера перед тем, как устанавливать разные режимы и моды. Пока тестировали установку модов, поняли, что важно сохранить возможность легко вернуться к исходным настройкам. Учли это в финальной версии сервера.
Гибкое управление ресурсами — оперативную память можно расширить при необходимости. Во время подготовки сервера нам хватало и базового объема на 6 ГБ. Но для тех, кому захочется собрать под сотню друзей на серваке, добавили больше гибкости.
Бесплатная защита от DDoS. Пока изучали игру, узнали, что многие геймеры зарабатывают на собственных серверах, а конкуренты могу устроить DDoS-атаку, чтобы этому помешать. Учли это в настройках.
Административный Root-доступ — предоставляем владельцу сервера полное управление. У нас, как у провайдера, нет доступа к нему. Это чтобы геймеры точно ни о чем не переживали.
Minecraft — это только начало. Мы хотим и дальше креативить и создавать серверы для других игр и пет-проектов.
Помогите нам определиться: какую игру нам взять следующей? Что посоветуете учесть при создании сервера для нее?