Construct

Construct #

Установка #

Скачайте актуальную версию instant-games-bridge.c3addon со страницы релизов на гитхаб или на construct.net. Перейдите в MenuViewAddon Manager и нажмите Install new addon..., выберите скачанный файл и нажмите Install в появившемся окне. Откройте проект, нажмите правой кнопкой мыши на папке Object types и выберите Add new object type. Выберите Instant Games Bridge и нажмите Insert.

Настройка #

Установите значение Use Worker на No в настройках проекта.

Настройте InstantGamesBridge нужным образом.

📝 Примечание
Для работы плагина требуется в проект добавить JS SDK

Вариант №1 (рекомендуемый): Убрать галочку Load SDK from CDN. Скачать файл instant-games-bridge.js той же версии что и плагин со страницы релизов на гитхаб. Импортировать в папку Scripts. Выбрать его и установить Purpose = Main script.

Вариант №2: Поставить галочку Load SDK from CDN. Тогда JS SDK будет грузиться автоматически с гитхаба. В Custom CDN URL можно указать свой URL откуда грузить SDK.

⚠️ Предупреждение
Вариант №2 не будет работать на Yandex.

Инициализация #

Перед использованием плагина — его необходимо инициализировать.

Вариант №1 (рекомендуемый): Установить галочку Initialize On Load в настройках плагина. Тогда иницализация будет происходить автоматически ещё до старта игры.

Вариант №2: Добавить экшн Initialize и дождаться его завершения.

Информация о платформе #

ID платформы #

InstantGamesBridge.PlatformId

Возвращает ID платформы, на которой запущена игра в данный момент. Возможные значения: playgama, vk, ok, yandex, crazy_games, absolute_games, game_distribution, vk_play, mock.

Язык #

InstantGamesBridge.PlatformLanguage

Если платформа предоставляет данные об языке пользователя — то это будет язык, который установлен у пользователя на платформе. Если не предоставляет — это будет язык браузера пользователя.

Формат: ISO 639-1. Пример: ru, en.

Параметр из адресной строки #

InstantGamesBridge.PlatformPayload

С помощью данного параметра можно в ссылку на игру встраивать какую-либо вспомогательную информацию.

Платформа Формат ссылки
Playgama
VK vk.com/app8056947#your-info
OK
Yandex yandex.com/games/play/183100?payload=your-info
Crazy Games crazygames.com/game/example?payload=your-info
Absolute Games
Game Distribution
VK Play
Mock site.com/game?payload=your-info

Информация о домене #

InstantGamesBridge.PlatformTld
Платформа Возможные значения
Playgama null
VK null
OK null
Yandex com, ru, etc.
Crazy Games null
Absolute Games null
Game Distribution null
VK Play null
Mock null

Отправка сообщения платформе #

Сообщение Описание Где поддерживается
Game Ready Игра загрузилась, все загрузочные экраны прошли, игрок может взаимодействовать с игрой. yandex
In-Game Loading Started Началась какая-либо загрузка внутри игры. Например, когда идёт загрузка уровня. crazy_games
In-Game Loading Stopped Загрузка внутри игры окончена. crazy_games
Gameplay Started Начался геймплей. Например, игрок зашёл в уровень с главного меню. crazy_games
Gameplay Stopped Геймплей закончился/приостановился. Например, при выходе с уровня в главное меню, открытии меню паузы и т.д. crazy_games
Player Got Achievement Игрок достиг особенного момента. Например, победил босса, установил рекорд и т.д. crazy_games

Информация о девайсе #

Тип девайса #

InstantGamesBridge.DeviceType

Возвращает тип девайса, с которого пользователь запустил игру. Возможные значения: mobile, tablet, desktop, tv.

Информация об игроке #

Поддержка авторизации #

Платформа Возможные значения
Playgama false
VK true
OK true
Yandex true
Crazy Games false
Absolute Games true
Game Distribution false
VK Play true
Mock false

Авторизован ли игрок в данный момент #

Платформа Возможные значения
Playgama false
VK true
OK true
Yandex true / false
Crazy Games false
Absolute Games true / false
Game Distribution false
VK Play true / false
Mock false

ID игрока #

InstantGamesBridge.PlayerId

Если авторизация поддерживается на платформе и игрок авторизован в данный момент – возвращает его ID на платформе, иначе — null.

Имя игрока #

InstantGamesBridge.PlayerName
Платформа Возможные значения
Playgama null
VK Имя игрока
OK Имя игрока
Yandex Если игрок авторизован и дал игре доступ к личной информации — имя игрока, иначе — null
Crazy Games null
Absolute Games Если игрок авторизован — имя игрока, иначе — null
Game Distribution null
VK Play Если игрок авторизован — имя игрока, иначе — null
Mock null

Аватар игрока #

Количество аватаров #

InstantGamesBridge.PlayerPhotosCount

Получить аватар по индексу #

InstantGamesBridge.PlayerPhoto(index)

Авторизация игрока #

Платформа Возможные значения
Playgama false
VK true
OK true
Yandex Если игрок уже авторизован — true. Если не авторизован — показывается диалоговое окно авторизации. Далее true/ false зависит от того авторизуется игрок или нет.
Crazy Games false
Absolute Games Если игрок уже авторизован или открылось окно авторизации — true. После авторизации происходит релоад страницы.
false в случае ошибки.
Game Distribution false
VK Play Если игрок авторизован — true. Если игрок авторизуется — true (после этого произойдёт перезагрузка страницы). false в случае ошибки.
Mock false

Информация об игре #

Текущее состояние видимости #

InstantGamesBridge.VisibilityState

Возвращает текущее состояние видимости игры (вкладки с игрой). Возможные значения: visible, hidden.

📝 Примечание
Нужно реагировать на изменение состояния видимости. Например, выключать звук в игре при hidden и включать при visible.

Пользовательские данные #

Есть два типа хранилища: локальное local_storage и внутреннее platform_internal. При записи в локальное — данные сохраняются у игрока на конкретном девайсе, при записи во внутреннее — данные сохраняются на серверах платформы.

Тип хранилища по умолчанию #

InstantGamesBridge.DefaultStorageType

Используется автоматически, если при работе с данными не указывать конкретный тип.

Платформа Возможные значения
Playgama local_storage
VK platform_internal
OK Если игрок дал доступ — platform_internal, если нет — local_storage
Yandex Если игрок авторизован — platform_internal, если нет — local_storage
Crazy Games local_storage
Absolute Games Если игрок авторизован — platform_internal, если нет — local_storage
Game Distribution local_storage
VK Play local_storage
Mock local_storage

Проверка на поддержку #

Платформа local_storage platform_internal
Playgama true false
VK true true
OK true true
Yandex true true
Crazy Games true false
Absolute Games true true
Game Distribution true false
VK Play true false
Mock true false

Проверка на доступность #

Платформа local_storage platform_internal
Playgama true false
VK true true
OK true Если игрок дал доступ — true, если нет — false
Yandex true Если игрок авторизован — true, если нет — false
Crazy Games true false
Absolute Games true Если игрок авторизован — true, если нет — false
Game Distribution true false
VK Play true false
Mock true false

Загрузка данных #

Сохранение данных #

Удаление данных #

Платформа Возможные значения
Playgama false
VK true
OK true
Yandex true
Crazy Games true
Absolute Games false
Game Distribution true
VK Play false
Mock false
📝 Примечание
Чтобы баннеры работали в Yandex — необходимо их включить в настройках игры.
📝 Примечание
Чтобы баннеры работали в Crazy Games — необходимо в index.html добавить контейнер <div> нужных размеров и передать его идентификатор в ShowBanner. Подробнее про размеры: https://docs.crazygames.com/sdk/html5/#responsive-banners.
📝 Примечание
Чтобы баннеры работали в Game Distribution — необходимо в index.html добавить контейнер <div> нужных размеров и передать его идентификатор в ShowBanner. Подробнее про размеры: https://github.com/GameDistribution/GD-HTML5/wiki/Display-Ads.
InstantGamesBridge.BannerState

Текущее состояние баннера. Возможные значения: loading, shown, hidden, failed.

Межстраничная реклама. Обычно показывается в момент загрузки уровня/поражения и т.д.

// Значение по умолчанию = 60 секунд
InstantGamesBridge.MinimumDelayBetweenInterstitial

Между показами Interstitial-рекламы нужно соблюдать временные интервалы. Например, Yandex просто не покажет рекламу если вызывать слишком часто, а VK будет показывать так часто, как вызывается метод.

Для удобства, в данном SDK есть встроенный механизм таймера между показами. Вам нужно лишь указать нужный интервал и можно дёргать метод показа рекламы сколько угодно.

InstantGamesBridge.InterstitialState

Текущее состояние рекламы. Возможные значения: loading, opened, closed, failed.

📝 Примечание
Нужно реагировать на изменение состояния рекламы. Например, выключать звук в игре при opened и включать при closed и failed.

Если поставить true, то минимальный интервал между показами будет игнорироваться.

Реклама за вознаграждение.

InstantGamesBridge.RewardedState

Текущее состояние рекламы. Возможные значения: loading, opened, closed, rewarded, failed.

📝 Примечание
Нужно реагировать на изменение состояния рекламы. Например, выключать звук в игре при opened и включать при closed и failed.
⚠️ Предупреждение
Награду игроку нужно выдавать только при наступлении состояния rewarded.

Социальные взаимодействия #

Поделиться #

Поддерживается ли функционал на платформе.

Платформа Возможные значения
Playgama false
VK true
OK false
Yandex false
Crazy Games false
Absolute Games false
Game Distribution false
VK Play false
Mock false

Вступить в сообщество #

Поддерживается ли функционал на платформе.

Платформа Возможные значения
Playgame false
VK true
OK true
Yandex false
Crazy Games false
Absolute Games false
Game Distribution false
VK Play false
Mock false

Пригласить друзей #

Поддерживается ли функционал на платформе.

Платформа Возможные значения
Playgama false
VK true
OK true
Yandex false
Crazy Games false
Absolute Games false
Game Distribution false
VK Play false
Mock false

Опубликовать пост #

Поддерживается ли функционал на платформе.

Платформа Возможные значения
Playgama false
VK true
OK true
Yandex false
Crazy Games false
Absolute Games false
Game Distribution false
VK Play false
Mock false

Добавить в избранное #

Поддерживается ли функционал на платформе.

Платформа Возможные значения
Playgama false
VK true
OK false
Yandex false
Crazy Games false
Absolute Games false
Game Distribution false
VK Play false
Mock false

Добавить на рабочий стол #

Поддерживается ли функционал на платформе.

Платформа Возможные значения
Playgama false
VK Android: true.
Desktop, iOS: false.
OK false
Yandex true / false
Доступность опции зависит от девайса игрока, внутренних правил браузера и ограничений платформы.
Crazy Games false
Absolute Games false
Game Distribution false
VK Play false
Mock false

Оценить игру #

Поддерживается ли функционал на платформе.

Платформа Возможные значения
Playgama false
VK false
OK true
Yandex true
Crazy Games false
Absolute Games false
Game Distribution false
VK Play false
Mock false

Разрешены ли внешние ссылки на платформе.

Платформа Возможные значения
Playgama false
VK true
OK false
Yandex false
Crazy Games true
Absolute Games false
Game Distribution false
VK Play false
Mock false

Лидерборды #

Поддержка #

Платформа Возможные значения
Playgama false
VK true*
OK false
Yandex true
Crazy Games false
Absolute Games false
Game Distribution false
VK Play false
Mock false
⚠️ Предупреждение
* В VK с клиента можно только показать нативный popup, для всего остального потребуется свой сервер.

Нативный popup #

Поддерживается ли нативный popup.

Платформа Возможные значения
Playgama false
VK Android, iOS, Mobile Web: true
Desktop: false
OK false
Yandex false
Crazy Games false
Absolute Games false
Game Distribution false
VK Play false
Mock false

Очки игрока #

Запись #

Поддерживается ли запись очков игрока.

Платформа Возможные значения
Playgama false
VK false
OK false
Yandex true
Crazy Games false
Absolute Games false
Game Distribution false
VK Play false
Mock false

Чтение #

Поддерживается ли чтение очков игрока.

Платформа Возможные значения
Playgama false
VK false
OK false
Yandex true
Crazy Games false
Absolute Games false
Game Distribution false
VK Play false
Mock false

Записи таблицы #

Поддерживается ли чтение полной таблицы.

Платформа Возможные значения
Playgama false
VK false
OK false
Yandex true
Crazy Games false
Absolute Games false
Game Distribution false
VK Play false
Mock false

Внутриигровые покупки #

Существуют два типа покупок — постоянные (например, отключение рекламы) и расходуемые (например, внутриигровые монеты).

Поддержка #

Платформа Возможные значения
Playgama false
VK false
OK false
Yandex true
Crazy Games false
Absolute Games false
Game Distribution false
VK Play false
Mock false

Покупка #

Расходование #

Чтобы израсходовать покупку, нужно передать её токен. Токен можно получить с помощью экшена Get Purchases.

Каталог всех товаров #

Список купленных товаров #

Данный экшн нужен чтобы получить токены покупок. Токен нужной покупки необходимо самостоятельно сохранять, для того чтобы в дальнейшем можно было передать нужный токен в экшн Consume.

Удаленная конфигурация #

С помощью удаленной конфигурации вы можете управлять настройками вашей игры не выпуская обновлений.

Поддержка #

Платформа Возможные значения
Playgama false
VK false
OK false
Yandex true
Crazy Games false
Absolute Games false
Game Distribution false
VK Play false
Mock false

Загрузка значений #

← JS Core Godot →