Как начать работу с AWS GameLift – CloudSavvy IT
GameLift – это платформа, созданная AWS специально для запуска серверов видеоигр. Он создан для экономии затрат за счет автоматического масштабирования количества экземпляров в зависимости от меняющегося спроса, а также может управлять подбором игроков за вас.
Что такое GameLift?
Каждый матч, сыгранный онлайн, должен иметь работающий сервер для его проведения, что может очень быстро стать дорогим. Что еще хуже, спрос на игровые серверы обычно резко возрастает в течение дня, делая спрос в часы пик намного больше, чем требуется ночью.
GameLift автоматически выполняет масштабирование архитектуры вашего сервера, во многом как автоматическое масштабирование EC2. Он может управлять базовым подбором игроков и сортировать ваших игроков по лобби в зависимости от времени ожидания. GameLift также поддерживает собственные правила подбора игроков, который может сортировать игроков по уровню навыков и избавляет от необходимости создавать и запускать отдельную систему подбора игроков.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
GameLift есть SDK, а также плагины для Unity и Unreal. Вы можете использовать это, чтобы напрямую общаться с GameLift, ставить игроков в очереди или запрашивать новые сеансы из вашей игры.
GameLift имеет два типа серверов: серверы «реального времени» и «пользовательские» игровые серверы. Серверы реального времени предназначены для игр, которым не требуются сложные настраиваемые серверы, на которых работает автономная копия игрового движка. Подумайте о мобильных играх, которым действительно нужна только база данных и некоторая базовая логика. Вы программируете их, используя Сценарий в реальном времени, основанный на C #.
Хотя они и интересны, они также кажутся довольно хлопотными и действительно требуют, чтобы вы построили всю свою игру вокруг них, но это может быть намного дешевле, если ваша игра может быть оснащена для работы на платформе. Опция «Пользовательский» сервер позволяет загружать собственный двоичный файл сервера, что дает вам гораздо больше гибкости. С этим типом серверов GameLift действует как модная версия автомасштабирования EC2, о которой идет речь в этой статье и которую большинство людей, вероятно, будет использовать в любом случае.
Альтернативы GameLift
Если вы не хотите использовать GameLift, у вас есть несколько вариантов. Во-первых, вы можете запускать свои серверы просто на EC2 и вместо этого использовать стандартное автомасштабирование EC2. Если вы не используете пользовательские правила масштабирования GameLift, использование стандартного автомасштабирования EC2 не сильно отличается от GameLift. Однако здесь есть серьезный недостаток – при обычном автоматическом масштабировании EC2 вы хотите использовать спотовые инстансы для минимизации затрат, поскольку они часто в несколько раз дешевле, чем аренда емкости по требованию.
GameLift также использует спотовые инстансы, но в GameLift есть дополнительные меры предосторожности, чтобы гарантировать, что ваш сервер не будет остановлен, если он в настоящее время используется для размещения игры. И, если его действительно необходимо выключить, GameLift может сигнализировать вашему серверу о необходимости корректно завершить процесс выключения. По статистике, прерывания работы спотовых инстансов довольно редки, но с ними лучше справиться в GameLift.
Тем не менее, EC2 Auto-Scaling, вероятно, ваша лучшая альтернатива GameLift на платформе AWS. Если вы знаете базовое количество игроков, которых вам нужно поддерживать, вы можете купить зарезервированные инстансы гораздо дешевле, чем инстансы по требованию, а затем использовать инстансы по требованию для масштабирования в часы пик.
Другой вариант – просто разместить сервер у клиента. В некоторых типах игр, особенно в пошаговых или казуальных играх без рейтинга, один из участников матча может выступать в качестве слушающего сервера, а все остальные подключаются к этому клиенту. Однако это не очень хорошая идея для запуска рейтинговых игр, потому что, если сервер прослушивания закроется, он может прервать соединение со всеми остальными. Это также открывает возможность серьезного обмана, поскольку клиент имеет полный контроль над сервером (если они выбраны для размещения слушающего сервера). Учитывая все обстоятельства, такой вид сети может использоваться для матчей между друзьями или для небольших инди-игр без возможности размещения выделенных серверов для всех.
Создание и загрузка сборки
Первый шаг использования GameLift – это сборка. Вы должны упаковать свой сервер в единую сборку, которую можно загрузить в AWS и запустить на большом количестве серверов. Сборка включает ваши двоичные файлы, зависимости и сценарий установки. Может работать в Windows или Linux; обычно Linux будет дешевле, так как меньше накладных расходов на память и нет затрат на лицензирование. Однако многие игры не созданы для Linux, поэтому вы можете застрять в Windows. Сценарий установки будет файлом в корневом каталоге сборки вашего игрового сервера, который называется install.bat
или install.sh
, в зависимости от платформы. Сам сервер установится на C:game
или /local/game/
,
Вы можете загружать сборки только из интерфейса командной строки AWS. Для этого используйте gamelift upload-build
команда:
aws gamelift upload-build --name--build-version --build-root --operating-system WINDOWS_2012 --region us-east-1
Процесс создания и запуска сборки зависит от конфигурации вашей игры. Итак, если вы просто хотите протестировать функции GameLift, еще не проходя этот процесс, AWS предоставляет образец игрового сервера, который вы можете загрузить с помощью Консоль GameLift,
Дайте вашему образцу сборки имя и нажмите кнопку «Загрузить». Чтобы использовать его, вам нужно создать «Флот», который использует эту сборку. Флоты похожи на группы автомасштабирования – они настроены для запуска вашего игрового сервера и размещения сеансов в отдельных экземплярах. Вы можете создать новый флот, нажав на сборку и выбрав «Создать флот из сборки», или вы можете создать образец флот из пошагового руководства, нажав «Создать флот». И флот, и билд теперь появятся в вашей консоли, хотя флот, скорее всего, займет около получаса на создание и проверку.
Если вы нажмете на флот, вы можете просмотреть информацию о нем, такую как текущее количество сессий и активных игроков, а также все события жизненного цикла флота.
Вы также можете редактировать настройки флота. Вы найдете варианты использования спотовых экземпляров, изменения типа экземпляра и указания исполняемого файла, который запускается (и параметров, с которыми он запускается).
На этой панели настроек вы также можете настроить свой флот для запуска нескольких игровых сессий на одном сервере. Если вы знаете, сколько сеансов может поддерживать данный сервер, вы можете установить его здесь.
После того, как образец парка завершит проверку, вы можете загрузить образец игрового клиента (созданный на игровом движке AWS Lumberyard, форк CryEngine) и подключиться к нему с помощью токена, предоставленного вам в руководстве.
Что касается фактического использования вашего флота, вам нужно создать «Очередь», которая будет сортировать игроков по матчам на основе задержки. Вы можете указать правила, чтобы попытаться найти совпадения с низкой задержкой, прежде чем пытаться найти совпадения с более высокой задержкой, и выбрать группу, к которой вы хотите направлять пользователей.
Чтобы обеспечить хороший подбор игроков для всех, вам нужно иметь серверы по всему миру. Цены на AWS в других регионах могут стать высокими, но если вы будете придерживаться нескольких дешевых, вы сможете сократить свои расходы.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)