Доброго времени суток, уважаемые читатели! Скорее всего вы задавались вопросом: как создать свой сервер для какой-либо игры?. В этой статье хочу привести вам пример создания игрового сервера на базе Яндекс.Облака по средствам сервиса Compute Cloud. Имея свой выделенный сервер(VDS/VPS) мы точно будем знать какие процессы на нем происходят. В отличии от имеющихся на рынке хостинг-провайдеров, предлагающих свои услуги по размещению и быстрому развертыванию сервера. Недобросовестные хостеры могут поставить на свою машину до 50 серверов, ради своей выгоды и в ущерб не знающему пользователю. Данная модель очень прибыльна, но для клиента имеет очень много негативных последствий.
Имея свою вирутальную машину мы сможем полностью управлять всеми процессами на ней. Сможем обеспечить комфортную работу нашего сервера. Сервера Яндекс.Облака достаточно гибкие, имеют отличную пропускную способность и геолокацию. Конечно же, выделенный IP адрес. Так же на своей машинке мы можем запустить несколько серверов. Столько, сколько совесть нам позволит.
Ну что? Приступим к развертыванию сервера на облаке от Яндекса? Как запустить и подготовить сервер к работе я рассказал в предыдущей статье. А сейчас продолжим, имея : чистый, готовый сервер. Программы для работы: PuTTy, WinSCP.
Приступим. Подключаемся через SSH-ключ используя WinSCP.
Далее для пущей безопасности и более удобного администрирования(если планируем создавать более 1 сервера) можем создать различных пользователей нашего виртуального сервера. Мы же будем запускать из под текущего пользователя - admin. Теперь нам потребуются файлы сервера. Для примера, все игры на движке Source от VALVE имеют удобную утилиту SteamCMD. Которая позволяет установить любой сервер на движке Source. Так же Valve имеет богатое комьюнити и множество инструкций по установке и настройке серверов и не только - Valve Developer Community.
Грубо говоря, имея SteamCMD и AppID сервера (Берется из Dedicated Servers List) мы можем легко установить самую актуальную версию сервера. Список большой и разнообразный. Приступим? Покажу на примере сервера CS:GO.
Для начала создаем папку для нашего SteamCMD на сервере и переходим в нее.
mkdir /home/admin/steam/
cd steam
После этого скачиваем SteamCMD.
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
Запускаем SteamCMD.
./steamcmd.sh
После установки всех компонентов SteamCMD получаем такое окно:
Далее нам предстоит залогиниться перед выполнением всех следующих команд. Для установки некоторых серверов требуется наличие игры на аккаунте. Поэтому есть 2 варианта развития событий:
1. Используем login anonymous (Не все сервера можно загрузить)
2. Используем login логин пароль (После этого запросит код Steam-guard) (Используется для загрузки всех имеющихся на аккаунте игр-серверов)
После авторизации нам остается выбрать папку для загрузки сервера. Для загрузки сервера в корневой каталог SteamCMD с последующим созданием папки csgo используем:
force_install_dir ./csgo/
Далее приступим к загрузке самого сервера в папку. Для этого используем:
app_update 740 validate ( В нашем случае: 740 - AppID CS:GO, Validate это проверка на целостность в конце закачки. )
Отправляем команду. Ждем окончания закачки сервера. После окончания скачивания пишем quit. И запускаем наш пробный сервер.
./srcds_run -game csgo -console -usercon +game_type 0 +game_mode 0 +mapgroup mg_active +map de_dust2
IP сервера такой же как и IPv4 нашей машины. Порт по умолчанию 27015. Дальше нужна только ваша фантазия :)
Сегодня мы рассмотрели один из 1000 вариантов применения Облачных технологий от Яндекс.Облака. На самом деле это очень большой и грамотный инструмент для ваших задумок. Это лишь один из примеров использования. Сюда же можно поставить и сайт и ботов. Всем большое спасибо за прочтение! И на конец, вопрос? Пользуетесь ли вы облачными технологиями?