Привет, коллега!
Часто вижу в чате Яндекс игр, что разработчики, опытные и нет, спрашивают "как можно тестировать свою игру на локальном сервере без выгрузки ее в панель Яндекс игр?"
- Плохая новость – игру придется загрузить в панель Яндекс игр.
- Хорошая новость – это нужно будет сделать один раз.
На этой странице ребята из Яндекса показывают как это сделать быстро, но я расскажу как это сделать еще быстрее. Сразу хочу сказать, что данная статья подойдет скорее всего только пользователям Windows. Итак, поехали!
Установка сервера
Для того, чтобы тестировать свои Яндекс игры на своем ПК нам необходимо установить локальный сервер. Этот сервер или служба ОС Windows является ее компонентом, поэтому нам не нужно скачивать что то, откуда-то, нам необходимо лишь его включить.
Для этого открываем меню Пуск и вводим в поиск "Включение или отключение компонентов Windows" как показано на скриншоте снизу.
Выбираем найденный пункт. Откроется окно включения компонентов Windows.
Нам нужен пункт Службы IIS -> Средства управления веб-сайтам -> Консоль управления IIS.
Ставим флажок и нажимаем кнопку ОК. После установки закрываем окно и в нашем любимом браузере в адресной строке вводим адрес "http://localhost/". Должна открыться страница как показано ниже. Это говорит о том, что ваш IIS компонент был включен правильно.
Вновь открываем меню Пуск. На этот раз вводим в поиске "IIS".
Открываем найденный компонент службы IIS. Перед нами должно открыться окно "Диспетчер служб IIS".
Для нас важна левая часть данного окна. Там у нас находится список наших веб-сайтов.
Сначала создадим сертификат, он нужен для работы нашего сайта, так как Яндекс не позволит запускать игру локально без сертификата. Выберите наше подключение, как показано на скриншоте внизу.
Затем выберите "сертификаты сервера" двойным щелчком мыши. Откроется окно со списком сертификатов, находящихся на вашем компьютере. Нам нужна правая часть данного окна.
Нажимаем справа в панели "Создать самозаверенный сертификат"
В открывшемся окне указываем имя сертификата, можно назвать его например "Yandex Games Cert". В качестве хранилища выбираем "Размещение веб-служб".
Нажимаем ОК. Теперь в списке сертификатов есть тот, что мы только что создали.
Далее для нашей игры нужно создать новый сайт.
Нажимаем правой клавишей мышки по папке "сайты" в левой панели и выбираем пункт "Добавить веб-сайт". Открывается окно, показанное на скриншоте ниже.
Нам нужны следующие пункты:
- Имя сайта - вводите любое имя, которое вам хочется. Если это игра, то введите название игры.
- Физический путь - путь к папке, в которой будет ваша сайт/игра.
- Тип - выбираем https
- IP адрес - оставляем "Все значения"
- Порт ставим в диапазоне от 8080 и выше.
- В списке SSL-сертификат выбираем наш созданный сертификат Yandex Games Cert
Нажимаем ОК. Теперь наш сайт создан и его можно увидеть в списке.
Если выбрать сайт, то справа в панели вы увидите его данные и команды настроек.
В разделе "Обзор веб-сайта" нажмите пункт "Обзор *:8087"( у вас порт может быть другим). Откроется окно браузера скорее всего с ошибкой, так как вы не разместили в папке с игрой саму игру. Давайте это сделаем.
В окне, указанном на скриншоте выше нажмите пункт "Основные настройки". Откроется окно "Изменение сайта".
Посмотрите путь, который вы указали для папки игры и перейдите в эту папку и разместите в ней все файлы вашей игры. Пример на скриншоте ниже это игра собранная в Unity.
Снова открываем наш созданный сайт как описано выше. Теперь у нас должно открыться окно браузера с ошибкой безопасности, как показано ниже на скриншоте.
Данная ошибка показывается один раз для каждого нового сертификата безопасности, созданного с локально при помощи средств IIS. Выбираем пункт "Подробности"(Данное окно показывается в браузере Яндекс, у вас оно может немного отличаться, но суть работы данного окна одна) и нажимаем "Сделать исключение для этого сайта"
Теперь наш сайт открывается как полагается и мы можем перейти к настройке нашего адреса игры. Для этого наша игра должна быть размещена в панели Яндекс игр как черновик. Затем после проверки игры, когда мы получим адрес ее черновика мы добавим параметр к нашему адресу как указано в документации к настройке локального сервера.
Копируем ссылку из нашего черновика, как показано на скриншоте выше и присоединяем к ней новый параметр ?game_url=https://localhost:8087
Например если адрес нашей игры https://yandex.ru/games/app/220910?draft=true&lang=ru, то нам необходимо добавить к нему параметр game_url=https://localhost:8087 и мы получаем.
Как вы наверное заметили я поменял знак вопроса(?) на амперсанд(&). Дело в том, что все параметры перечисляются в адресе сайта через амперсанд, но начинается это перечисление со знака вопроса.
Итак, теперь игра открывается у вас на локальном компьютере, и нет необходимости теперь выгружать ее в панель каждый раз для тестирования. Вы также можете настроить сборку вашего игрового движка прям на папку, которая указана в настройках сайта, чтобы не копировать ее постоянно из папки сборки в папку сайта.
Всем, кто читал данную статью огромная благодарность от меня. По всем вопросам обращайтесь ко мне в телеграм напрямую или же в одно из групп Яндекс игры здесь или здесь.