Как сделать свой хостинг игровых серверов
Создаем свой собственный хостинг не потратив и копейки
Хотели бы вы узнать, что такое веб сервер? Или же впервые в жизни «потрогать» виртуальную машину? А может вам просто интересно, как выглядит хостинг? С любовью для пикабушников постараюсь рассказать обо всем по немножко.
Disclamer: Данный материал является ознакомительным и рассчитан на людей, которые только начинают свой путь в мире IT технологий. Технические подробности всего раскрываться не будут(но на вопросы отвечу). Следующий материал является прямым скриптом, как сделать веб хостинг. И небольшая просьба, если вы добавляете в сохранки, оцените пост, тем самым вы даете мне понять, следует ли делать подобные гайды.
В последнем пункте жмем Customize Hardware. Т.к. вы будете работать в самой ВМ и ее виртуальной оболочке, стоит увеличить значения пункта Processors до 4.
В пункте Network Adapter выбрать значение Bridged и установить галочку Replicate.
Далее нам следует получить права супер пользователя, в терминале вводим команду sudo su и вводим пароль, который вы указывали при установке системы.
Сначала мы обновим ОС до актуальной версии. Вводим в терминал команду:
Вы превосходны! Теперь вы имеете готовую машину, для создания веб сервера. Далее мы и установим наш веб сервер Nginx.
После установки вы можете посмотреть его статус с помощью команды
Собственно, веб сервер уже находится в активном состоянии и вы даже можете зайти на свой «сайт». Для этого вам стоит узнать локальный адрес своей виртуальной машины. Что бы его узнать, вводим в терминал:
Копируем наш адрес, вставляем в браузер виртуальной машины или своего компьютера, без разницы. и мы увидим автоматически сгенерированную страничку HTML при установке Nginx
Файлик этот лежит в /var/www/html/
Что бы его отредактировать, введите
При вводе пути каталогов вы можете нажимать Tab, что бы автоматически заполнялось существующее имя. Например /var/ww *жмем таб* выводится /var/www/. Так же если вы не знаете, что находится в данном каталоге, но если хотели бы узнать, нажмите таб дважды, например /var/ *2-x tab*:
Теперь нам нужно показать наш «сайт» всему миру, верно? И еще бы денег не потратить, ведь их и так нет. В этом нам поможет сервис с бесплатными динамическими DNS серверами. Он выдаст нам бесплатно доменное имя на 30 дней, его потом можно так же вручную продлевать на 30 дней.
1. Кабель в компьютер на прямую(или через свитч).
Открываем yandex.ru/internet. Копируем графу IP V4. На своем компьютере запускаете консоль от имени администратора и вводите команду:
netsh interface portproxy add v4tov4 listenport=8080 listenaddress=
YouIPv4connectport=80 connectaddress=IP адрес вашей ВМ
2. Если у нас кабель идет из роутера в компьютер.
Сначала нам следует залогиниться в веб интерфейс вашего роутера, для каждого роутера это индивидуальный процесс, придется погуглить. Внутри роутера, обычно на главное странице, есть его собственный IP адрес. Он то нам и нужен, его скопируйте и отложите не на долго. Далее нам следует найти «Переадресацию«. В условиях переадресации нужно добавить следующее правило:
Перенаправлять весь трафик с порта 8080 на порт 80, IP адрес вашей ВМ. В моем случае IP адрес 192.168.0.102, протокол TCP.
Жмем кнопку Create Hostname.
Вводим имя нашего хоста и выбираем любой Free Domain. В IPv4 вводите адрес либо своего ПК, если подключены на прямую, либо своего роутера, если подключены через роутер.
После создания домена информация на серверах noip может обновляться до суток, но обычно в течении 5 минут все заводится.
Остается финальный штрих, ввести наш новосозданный адрес, и убедиться, что все работает 🙂
Вводить следует так: ИмяВашегоСайта:8080
Agones, создаем многопользовательский игровой сервер. Архитектура и установка
Agones (от др.-греч. agōn — «соревнование») позволяет развернуть кластер игрового сервера используя Kubernetes с возможностью Auto-Scaling. Этот open-source проект был создан в 2018 году, уже набрал 2500 звезд, был на Google I/O 2019, и на Хабре, к великому удивлению, еще не был упомянут. В топике описан краткий экскурс в архитектуру и инструкция по запуску тестового сервера на локальной машине. Если интересно, добро пожаловать под кат, вперед!
Описание проекта
Agones представляет собой Custom Resource (расширение Kubernetes API).
Проект в действительности требует большего внимания, так как позволяет запускать единичный игровой сервер (GameServer) или же целый «флот» серверов (Fleets) посредством конфигурационных yaml файлов, через Agones API. В свою очередь, каждый сервер дает оповещения о его жизненном цикле (GameServer lifecycles), описывая текущий статус (health checking, connection information). Сервера в кластере имеют возможность автоматического масштабирования (Fleet Autoscaling), которые интегрированы с базовыми возможностями Kubernetes. В дополнение, есть вывод статистики на панели (dashboard) с помощью Prometheus, Grafana или Stackdriver, экспортируются метрики посредством OpenCensus, что позволяет добавить собственный экспортер. Пример dashboard’a в Stackdriver:
Архитектура, основные элементы
Сам по себе Agones берет на себя задачу запуска, автоматического расширения и хостинга игровых серверов используя в основе Kubernetes. Это позволяет сосредоточиться на разработке самого сервера многопользовательской игры, вместо разработки ее инфраструктуры и дальнейшей поддержки. Можно использовать любой игровой сервер, который может быть запущен на linux, причем он может быть написан на любом языке программирования.
Agones Kubernetes API делится на три основных пакета (packages), в каждом из которых находятся ресурсы: agones.dev (GameServer, GameServerSet, Fleet), allocation.agones.dev (GameServerAllocation), autoscaling.agones.dev (FleetAutoscaler). Как и в других ресурсах Kubernetes для их запуска используется yaml файлы.
Краткое описание каждого ресурса:
Диаграмма (отсюда) показывает жизненный цикл GameServer ресурса:
Фиолетовыми стрелками отмечена работа Agones SDK, красным — API пользователя, синим — контроллер игрового сервера, желтым — контроллер приложения.
Установка
В данном и последующих разделах используются команды с инструкции на официальном сайте, с некоторыми дополнениями. Рекомендуется использовать Kubernetes версии 1.12 (протестировано разработчиками). Для теста на локальном компьютере можно использовать minikube, который потребует kubectl и гипервизор (Hyper-V или VirtualBox) поддерживаемый операционной системой.
Для установки кластера и Agones необходимо запустить следующие команды:
Последняя команда скачивает конфигурационный файл Agones создающий Custom Resource Definitions (CRD) через Kubernetes API.
Запуск GameServer
Теперь можно запустить в кластере UDP сервер используя готовый тестовый сервер из примеров, который будет просто отвечать на посланный к нему запрос:
Если после запуска команды в консоли появится ответ «ACK: hello», то сервер работает, его можно выключить следующей командой, которая инициализирует :
Вносим изменения в GameServer
Используя предыдущий пример изменим ответ сервера. Для начала скопируем репозиторий проекта:
Эта команда может занять некоторое время, так как весь репозиторий проекта будет копироваться в image. Этого можно избежать, если в директории оставить только папку sdks, файл main.go и Dockerfile.
Далее в examples\simple-udp\gameserver.yaml изменим строку 28 на image: agones-go:modified и создадим новый GameServer:
Проверим изменения и выключим сервер:
Если после запуска команд в консоли появится ответ «ACKNOWLEDGED: hello», то внесенные изменения прошли успешно.
Запускаем сервер локально
Как создать свой игровой сервер?
Наверняка вы когда-то хотели, чтобы не вы играли на сервере, а у вас играли, играли на вашем сервере. Популярность игровых серверов всегда на высшем уровне, каждый раз выходят новые игры, моды, которые с нетерпением хочется опробовать. Помимо новых игр, есть игры и проекты, которые мы знаем еще с далеких 2000 годов, вспомните к примеру игру Counter-Strike 1.6, сколько же много было создано игровых серверов и как часто мы на них играли.
На данный момент снова замечен рост создания серверов, которые собирают множество игроков по всему миру.
Если вы действительно хотели бы создать свой игровой сервер, первое что Вам нужно сделать, это определиться с выбором сервера, где вы будете размещать файлы игрового сервера. Для этого обратим внимание на ADMINVPS — это российская компания предоставляющая услуги по аренде сервера, хостинга, VPS/VDS и т.д.
Для начала, давайте зайдем на сайт и выберем услугу VPS/VDS. После этого авторизуйтесь и пройдите процедуру регистрации VPS/VDS. На данном сайте процедура регистрации и оформления очень проста и займет у вас не более 10 минут. После оформления вы получите бесплатное администрирование, бесплатное бэкап место, круглосуточную поддержку, которая может Вам в решении ваших проблем.
Сайт предоставляет множество услуг, не только сервера, но и хостинг для ваших сайтов.
К примеру, когда вы закончите с установкой и настройкой вашего сервера, то следующем шагом следует сделать (по желанию) это создать сайт, посвященный вашему серверу, на сайте вы можете выкладывать обновления, изменения на вашем сервере, так же, можете создать форум, где игроки смогут общаться на разные темы по игре. Тем самым вы сделаете свой проект более живым.
Поэтому с хостингом Вам также может помочь ADMINVPS.
Почему именно VPS/VDS сервера?
Дело в том, что гораздо дешевле создать сервер именно в ручную, без использования сервисов, которые предоставляют игровые сервера. Готовые игровые сервера, это удобный сервис, но не дешевый, зачастую вы вряд ли сможете отбить затраты по обслуживанию вашего сервера, если даже будете продавать админки по 300р. Средняя цена игрового сервера это 850р в месяц, думаем, что на первых этапах это будет серьезно бить по карману и вы захотите закрыть Ваш сервер.
Но, если вы разместите свою или скаченную сборку, которая будет грамотно настроена, то вы сможете с экономить свои средства. Найти хорошую сборку не так и сложно, просто более тщательно осуществляйте поиск, и вы обязательно найдете подходящую сборку для Вас.
Также вы можете найти человека, который сможет Вам помочь в этом и создаст сборку под ваши запросы.
Но это также затраты, зато один раз и навсегда, после, если Вам нужно будет что-то доработать на сервере, вы сможете скачивать разные плагины и устанавливать их просто и быстро.
О том, как работать с плагинами, мы поговорим в другой статье.
После выбора сборки, скачайте и распакуйте свою сборку на Ваш сервер от ADMINVPS. Если у Вас возникнут трудности, вы сможете обратить в техническую поддержку вашего сервера, и Вам с радостью в этом помогут специалисты.
Переходите по ссылки и приобретайте свой хостинг – ADMINVPS
Как запустить свой собственный игровой сервер
Вы можете разместить игровой сервер на своем ПК, иногда удобнее иметь облачный сервер, работающий 24/7. Хостинг игровых серверов может быть удивительно дешевым, особенно если вы просто хотите поиграть с несколькими друзьями. Давайте разберемся более подробно как создать сервер для игры с друзьями.
Выделенный сервер против общего хостинга
Выделенный сервер — это когда вы арендуете всю стойку сервера или зачастую часть ресурсов этой стойки. Вам часто дают подробные спецификации о том, что именно вы покупаете, и вы как правило будете платить немного больше по сравнению с общим хостингом.
Общий хостинг запускает несколько экземпляров игрового сервера на нескольких серверных стойках, что позволяет хостинг-провайдеру экономить деньги и обеспечивать низкую цену. Однако не всегда понятно, какие спецификации вы получаете, и вы можете столкнуться с проблемами перегрузки, если ваш сервер сильно загружен.
Если вы хотите настроить сервер для себя и пары друзей, мы рекомендуем вам сэкономить деньги и подключить общий хостинг. Если вы хотите, чтобы на вашем сервере играло много людей, вам следует подобрать выделенный сервер.
В зависимости от того, у какого провайдера вы покупаете сервер, вы также можете получить управляемый хостинг, когда провайдер создает инструменты для автоматической установки, настройки и управления вашим сервером, такие как автоматический перезапуск и простая установка модов.
Варианты общего хостинга
Все перечисленные здесь опции также являются управляемым хостингом. Вам не нужно будет слишком беспокоиться о настройке, так как она должна быть относительно простой.
Gameservers.com: Очень дешевые серверы для небольших проектов, так как вы платите за необходимое количество игровых слотов. Достойная панель управления, но без защиты DDOS.
Friendhosting.net: Преимущества выделенного сервера и гибкости настроек виртуального хостинга по доступной цене, а также на сёрче хорошие отзывы о Friendhosting.net.
Low.ms: компромисс между выделенным и общим сервером, но в то же время обеспечивающий хорошую панель управления для большинства игр. Вы будете знать, какие спецификации вы получаете, но вам придется доплатить за выделенную ветку. Они также добавляют брендинг в заголовок вашего сервера.
Nodecraft: поставщик общего хостинга, который не взимает плату за слот. Они имеют разные уровни, сегментированные по ОЗУ и количеству экземпляров, которые вы можете запустить. Фактически, вы можете разместить несколько серверов на одном уровне, если позволяет оперативная память.
Варианты выделенного сервера
Выделенный сервер дает вам гораздо больше свободы и контроля. Вы можете разместить несколько игровых серверов в одном боксе, а также несколько разных игр, и поскольку у вас есть полный доступ к боксу, вы даже можете разместить веб-сервер для запуска сайта вне сервера или чего-либо еще, не связанного с игрой.
OVH: только два местоположения, Канада и Франция, но предлагают очень мощные серверы по доступной цене. Если вас не интересует новейшее оборудование Gen, вы можете арендовать их старое оборудование у их дочерней компании SYS.
Gameservers.com: Хотя эта компания специализируется на общем хостинге, она также предлагает выделенные серверы в качестве опции.
Amazon Web Services: больше премиального корпоративного варианта. Если вы разработчик игр и хотите разместить серверы, вам стоит обратить внимание на AWS GameLift. Если вы ищете один универсальный сервер, EC2 будет более подходящим. А если вы студент, вы можете получить бесплатный выделенный сервер на год.
Другие игры могут иметь свою собственную серверную программу, которую вы можете скачать — для получения дополнительной информации обратитесь к официальной документации игры.
После того, как сервер настроен и запущен, вы должны убедиться, что порты на сервере открыты, чтобы люди могли получить к нему доступ. Этот шаг будет отличаться для каждого хоста, но если вы не видите ничего в панели управления вашего провайдера, вам скорее всего придется просто изменить настройки брандмауэра Windows и внести в белый список приложение сервера.
После того, как порты открыты, люди смогут подключаться к вашему серверу с IP-адресом или возможно только через браузер игрового сервера. В зависимости от игры вы можете получить доменное имя для своего сервера, чтобы вы могли легко запомнить IP-адрес.
Как открыть свой хостинг игровых серверов? » Все для Вебмастера!
Что такое игровой хостинг
Хостинг – это услуга по предоставлению доступа к серверам. То есть серверным ПК, на базе которых функционируют сайты или веб-приложения. На этих компьютерах хранятся HTML-документы, скрипты и стили, а также выполняются запросы к базам данных. В общем, делается все, что необходимо для работы веб-ресурсов.
Игровые хостинги отличаются тем, что адаптированы под онлайн-игры в духе Minecraft, Counter-Strike, GTA Online или World of Warcraft. На их серверах хранятся данные об игроках и в реальном времени выполняется логика, описывающая местоположение и действия персонажей в виртуальном мире.
К таком хостингу предъявляется ряд требований, причем как к аппаратной, так и программной составляющей.
Видео
Хостинг на облаках
Использование VDS сервера на облачных технологиях с разбиением его на хостинг куски, идея, лежащая на поверхности. Привлекательность использования VDS сервера, в дешевизне и возможностью постепенного наращивания ресурсов. Но это на первый взгляд.
Эволюция создания хостинга на VDS проста:
Хостинг на выделенном сервере
Второй вариант своего хостинга, и он самый распространенный, это покупка выделенного сервера. Механизм создания таков:
Как выбрать игровой хостинг?
Проще всего выбирать, если нашелся именно игровой хостинг, то есть со специализацией на конкретных играх. Такие обычно предлагают выбрать игру и на этом закончить дальнейшие поиски. Сотрудники, стоящие за такими хостингами, знают, какие характеристики должны быть у сервера, и все настраивают сами, не обременяя клиента. Подойдет тем, кто не хочет долго что-то настраивать.
Примером служит сайт с говорящим названием Game Hosting. На нем предлагают выбирать не набор опций для выделенного сервера, а «машину» с предустановленной игрой, куда можно сразу после аренды приглашать людей.
Но иногда приходится выбирать среди менее специализированных провайдеров. А иногда хочется подробнее узнать, какие существуют параметры для игровых хостингов. В таком случае придется обратить внимание на несколько параметров, которые в первую очередь оценивают гейммастера. И опираясь на которые, обычно выбирают провайдера.
Высокая производительность
Видеоигры требуют заметно больше ресурсов, чем статичные сайты и прочие веб-проекты. Поэтому игровые хостинги держат в своих дата-центрах только «машины» с наиболее актуальными многоядерными процессорами, адаптированными под работу с ресурсоемкими задачами.
Зачастую провайдеры не делятся конкретной информацией о «железе, установленном на их серверах. Ограничиваются брендом установленных чипов, например, Intel Xeon. Некоторые указывают частоту и количество ядер, но не всегда.
К тому же производительность игры зависит от того, сколько серверов используется. Например, компания Blizzard размещала оригинальную World of Warcraft сразу на четырех:
Стабильность
Одна из важнейших характеристик для хостинга в целом — аптайм. То есть время работы с последнего включения. Чем оно выше, тем надежнее считается сервер. Значит, можно рассчитывать на его работу без сбоев в течение долгого времени.
Это критически важно как на сайтах, так и в играх. Потому что сервер может «упасть» посреди важного матча и вызвать гнев у его участников. Это потерянная аудитория, популярность и прибыль. Поэтому размещайте игру только на проверенных хостингах с высоким аптаймом.
Если беда все же случится, то было бы неплохо иметь возможность быстро перезагрузить сервер и снова сделать игру доступной. Так что нужен хостинг с функцией быстрого перезапуска или командой сотрудников, которые смогут на месте проверить аппаратное обеспечение и устранить проблемы.
И не забывайте про резервные копии. Обиднее не просто «вылететь» из игры, а потерять там своего паладина с редким маунтом. Так что регулярно делайте копию базы данных, чтобы не лишить пользователей их достижений. Без них им вряд ли будет интересно играть именно у вас.
Дата-центры по всему миру
Стабильность сервера оценивается не только отличным железом, но и таким же подключением к интернету. Важно, чтобы игроки не теряли соединение с игровым миром из-за низкой пропускной способности канала или постоянных обрывов связи.
То же касается задержек и зависаний. Важен «пинг» — то есть время, за которое сигнал от пользователя доходит до сервера и возвращается. Чем ниже это значение, тем комфортнее себя чувствует пользователь в виртуальной реальности. Все события, атаки, движения и действия происходят в одно время для всех. Если же пинг увеличивается, то появляется задержка, полностью лишающая игроков паритета в расстановке сил.
Чтобы обеспечить низкий пинг, недостаточно скоростного интернета на стороне хостинга. Иногда решающую роль играет географическое расположение сервера. Если он далеко от игрока, то задержка может быть слишком высокой для комфортной игры. Поэтому лучше иметь выделенные серверы в нескольких частях света, чтобы не ограничиваться аудиторией одного материка.
Техническая поддержка высокого уровня
Даже с лучшими хостингами случаются проблемы. Потому нужна команда специалистов, способная оказать помощь и поправить проблемы на своей стороне и на стороне клиента, если тот недостаточно компетентен.
Грамотные хостинг-провайдеры держат штат профессионалов, отвечающих на запросы пользователей круглосуточно. В их числе, например, Timeweb. Аналогичной опцией хвастаются топовые хостинг-провайдеры, специализирующиеся на играх.
Актуальное программное обеспечение
В зависимости от того, для какой игры будет использоваться сервер, нужно выбирать подходящее программное обеспечение. В первую очередь, речь идет об операционной системе. Это может быть как Linux, так и Windows. Во вторую, о серверной части, отвечающей за поведение персонажей в игре и логику виртуального мира в целом. Причем это может быть как сама игра, так и отдельный набор утилит, созданных исключительно для хостинга игры, а не для участия в ней.
Кроме того, гейммастерам необходимо позаботиться о безопасности игрового пространства:
Удобная панель управления
Есть разница между ПУ, предлагаемыми на обычных хостингах и ориентирующихся на сайты, и теми, что используются при размещении игровых серверов. В игровых можно получить больше подробностей о состоянии «железа» и нагрузке на отдельные компоненты арендованных серверов.
Среди геймастеров пользуются спросом:
Ориентируйтесь на эти три, если нет каких-то существующих предпочтений.
Акцент на околоигровых функциях
В их число входит встроенный сбор статистики о количестве игроков и их успехах. HLTV-сервер для записи игрового процесса, хранения и последующей загрузки на сторонние платформы. Централизованная система управления учетными записями пользователей с возможностью блокировать любому из них доступ к серверу.
Встречаются и другие программные преимущества, облегчающие жизнь гейммастерам. Чем их больше дается в базовом пакете услуг от провайдера, тем лучше.
Хост игровой сервер — процесс оплаты
Перед завершением платежа вы получите обзор конфигурации вашего игрового сервера и ежемесячных затрат на него. В целом все кажется очень прозрачным и понятным. Как только вы завершили процесс оплаты, вот и все — теперь вы являетесь счастливым владельцем собственного игрового сервера!
Zap Одноразовый
Особый вариант для Zap-хостинга, о котором мы хотели бы кратко упомянуть, — это так называемый «ZAP One-Times». Хотя эта опция, к сожалению, недоступна на серверах FiveM, она, например, доступна на очень популярных серверах Minecraft. ZAP One-Times позволяет вам заплатить только один раз за определенные продукты и получить свой собственный игровой сервер на всю жизнь. Этот вариант намного дешевле, чем ежемесячная абонентская плата, особенно в течение длительного периода времени.
Запускаем Minecraft на VDS или выделенном сервере
Сделать сервер Майнкрафт можно через хостинг. Для этого потребуется сервер с достаточно мощным железом. В таком случае нужно будет скачать серверную версию Minecraft и удаленно установить ее на арендованное оборудование.
Из минусов – это не самый простой способ, для его реализации требуются определенные знания и навыки в администрировании. При работе могут возникать какие-либо трудности и нюансы, также вполне допустимо возникновение проблем в процессе запуска и настройки сервера.
Но результат определенно того стоит – пользователь сможет реализовать на таком сервере любые возможности для игры, использовать любые шаблоны, моды и защитное ПО. Такой сервер доступен круглосуточно и не зависит от того, включен ваш компьютер или нет. Такой сервер можно будет использовать для игры с друзьями или продавать.
О том, как создать сервер Minecraft на VDS на базе платформы CentOS 7, ранее было рассказано в другой статье.
Программа реселлинг – перепродажа хостинг услуг
Есть компании с BillManager Corporate, которые позволяют продавать свои услуги, реселер аккаунтам, по типу биллинг-биллинг. Схема работает так:
Можно начинать перепродажи:
На внешнем биллинге есть услуга хостинга за 150 рублей, клиент заходит на ваш биллинг на вашем сервере и делает заказ. На вашем реселлер аккаунте есть счет, и когда клиент делает заказ, он переводится на внешний биллинг, а вы получаете данные по заказу.
Реальный доход, при большом количестве проектов.
Как это работает, лучше посмотреть в программе реселлинга, например, тут: https:///partner/reseller.
Это только самые общие шаги создания своего хостинга. Есть масса других задач: создание правильного домена для хостинга, работа с DNS клиентов, защита от DDoS атак. Несмотря на все проблемы, свой хостинг это такой же бизнес, как и любой другой, с проблемами, задачами и их решениями.