Привет, Хабр! На связи хостинг-провайдер 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 — это только начало. Мы хотим и дальше креативить и создавать серверы для других игр и пет-проектов.
Помогите нам определиться: какую игру нам взять следующей? Что посоветуете учесть при создании сервера для нее?
Комментарии (2)
gurovofficial
03.05.2024 10:12Ну вы же понимаете, что все понимают - вы просто рекламируете свою услугу?;)
Classic_Fungus
А почему ни слова о CPU? Какая там частота на ядро? Вы же в курсе, что лучше частоты побольше, а не ядер? или тоже в зеоны ударились? майн же больше чем с 1-2 ядрами работать не умеет (если вы не строите очередной хайпиксель, вам этой информации достаточно). 6Гб ОЗУ? а дальность прорисовки у вас, простите, какая? 6 чанков? А как с ТПС вопрос обстоит? Игроки там блоки собираются добывать? А диск HDD или SSD?
Результаты - не результаты. данных о конфиге не особо, выводов нет. больше похоже на рекламу без ссылок.
У меня стоит i3-10что-то там, 32Гб ОЗУ. Работает на Spigot, прорисовка 20 чанков. из плагинов Dynmap, CoreProtect и самописный 2фа+чат. при 10 игроках (это не публичный сервер, выше онлайн там просто не бывает) у всех, при прорисовке 20 будет всегда 20ТПС, даже при активной деятельности в виде афкашения на мега-фермах (ниже 20 уронить никак не получилось). собрать такую железку стоит 30к рублей + бесплатный DDNS и не нужны всякие хамачи. бекап можно сделать через Cron. Диск, разумеется, SSD. В моём конфиге избыточное ОЗУ, хватило бы и 16.
Меня, как активного игрока и владельца сервера, которому чрезвычайно важна ВЕЛИКОЛЕПНАЯ производительность, такие статьи расстраивают. Либо пишут ctrl+c, ctrl+v, покупайте наших слонв, либо: вот мы сделали сервер, напихали туда кучу всего, оно завелось мы молодцы.