Запуск с локального сервера
Чтобы упростить разработку и тестирование игры, вы можете запустить ее с локального сервера. Тестирование доступно в prod- и dev-окружениях.
После запуска игры на локальном сервере вы можете использовать из нее все функции SDK.
Prod-окружение
Внимание
Требуются регистрация на платформе Яндекс Игры и черновик игры.
Подходит на этапе финальной проверки игры перед отправкой на модерацию. В этом режиме игра взаимодействует с реальной платформой Яндекс Игры.
Особенности:
- Игра открывается по реальному адресу на yandex.ru/games.
- Чтобы отправлять запросы на внешние хосты, их нужно добавить в правила для CSP.
- Показывается настоящая реклама.
- Игрок авторизуется через Яндекс Паспорт.
- Данные игрока и лидербордов сохраняются на сервере.
- Каталог товаров загружается с сервера, покупки обрабатываются на сервере.
- Для отладки можно использовать debug-панель через параметр адресной строки
&debug-mode=16.
Запуск локальной версии игры в prod-окружении можно настроить:
Самостоятельная настройка локального сервера
- Настройте сервер
localhost. - Откройте игру в режиме черновика.
- Добавьте в адрес параметр
?game_url=https://localhost.
Примечание
Из соображений безопасности в параметре game_url поддерживается только домен localhost.
Настройка локального сервера с помощью npm-пакета
-
Установите
npm, следуя инструкциям на сайте Node.JS. -
С помощью
npmустановите пакет @yandex-games/sdk-dev-proxy:npm install -g @yandex-games/sdk-dev-proxy -
Запустите игру. Вы можете:
Проксировать до локального сервераУказать папку с ресурсами игрыnpx @yandex-games/sdk-dev-proxy -h <Адрес локального сервера>npx @yandex-games/sdk-dev-proxy -p <Путь до папки с игрой>Пакет проксирует запросы до ресурсов SDK на том же сервере, на котором будет расположена ваша игра.
Если вы укажете параметр --app-id, то при запуске откроется ваша игра на yandex.ru/games:
npx @yandex-games/sdk-dev-proxy -p <Путь до папки с игрой> --app-id=<ID игры>
Если не указать --app-id, то в консоли появятся шаблонная ссылка на игру на сервисе и ссылка на локальный сервер.
Параметры для запуска
|
Параметр |
Описание |
|
|
Справка. |
|
|
Хост, на котором расположен локальный сервер игры (например, используется для |
|
|
Путь до папки, в которой расположены ресурсы игры. |
|
|
Порт, на котором откроется сервер (по умолчанию 8080). |
|
|
ID черновика игры. |
|
|
Добавляет метатег с |
|
|
Включение логирования запросов в консоль (по умолчанию включено). |
|
|
Меняет домен |
|
|
Если |
Dev-окружение
Примечание
Регистрация на платформе Яндекс Игры и черновик игры не требуются.
Подходит на этапе активной разработки и отладки игровой логики. В этом режиме у игры нет реальной связи с платформой Яндекс Игры, а все вызовы SDK подменены моками, что дает возможность быстро перезагружать страницу и видеть обновления.
Особенности:
- Игра открывается напрямую в
https://localhost. - Нет ограничений по CSP, можно отправлять запросы на любые внешние хосты.
- Вместо рекламы показываются заглушки, при этом все callback-функции отрабатывают аналогично prod-окружению.
- Авторизация игрока работает через мок браузерного диалога.
- Данные игрока и лидербордов сохраняются в
localStorage. - Каталог товаров загружается из локального файла, покупки игрока сохраняются в
localStorage. - Для отладки можно задавать параметры через адресную строку браузера.
- В консоли браузера автоматически логируются все вызовы SDK с разбивкой по модулям.
Запуск в dev-окружении также доступен через npm-пакет @yandex-games/sdk-dev-proxy. Инструкции по настройке аналогичны prod-окружению, только при запуске нужно указать параметр --dev-mode=true.
Вы можете:
npx @yandex-games/sdk-dev-proxy -h <Адрес локального сервера> --dev-mode=true
npx @yandex-games/sdk-dev-proxy -p <Путь до папки с игрой> --dev-mode=true
Доступные параметры для адресной строки браузера
export interface SDKMocks {
/** Разрешено ли добавить ярлык на рабочий стол? */
canShowPrompt?: boolean;
/** Авторизован ли игрок? */
isAuthorized?: boolean;
/** Если у игры заблокирована ориентация. */
lockedOrientation?: ELockedOrientation;
}
/** Заблокированная ориентация игры на мобильном экране. */
export enum ELockedOrientation {
/** Игра поддержана только в landscape. */
LANDSCAPE = 'landscape',
/** Игра поддержана в обеих ориентациях. */
NONE = 'none',
/** Игра поддержана только в portrait. */
PORTRAIT = 'portrait',
}
Пример
localhost:8080?mocks={"canShowPrompt":true,"isAuthorized":true,"lockedOrientation":"landscape"}
Локальное задание каталога товаров
Для эмуляции каталога товаров создайте в корне проекта файл purchases-catalog.json и добавьте в него список покупок — такой же, как вы уже внесли или планируете внести в Консоли разработчика. SDK в dev-режиме будет загружать список покупок из этого файла.
Пример
[
{
"description": "Well styled modern avatar image",
"id": "avatar",
"imageURI": "{path-to-image}",
"price": "100 RUB",
"priceCurrencyCode": "RUB",
"priceValue": "100",
"title": "Premium avatar",
"getPriceCurrencyImage": "return ''"
}
]
В момент вызова покупки будет показан мок диалога с опциями успешной покупки и отмены, чтобы вы могли проверить оба сценария.
Альбомная ориентация.
Портретная ориентация.
Искусственные объекты или функции, имитирующие реальные. Используются для тестирования кода без зависимости от внешних ресурсов или компонентов.
В '' можно подставить путь до изображения.