Внимание!
Данная документация является устаревшей. Instant Games Bridge теперь называется Playgama Bridge. Актуальная документация доступна по ссылке wiki.playgama.com.
Construct #
Установка #
Скачайте актуальную версию instant-games-bridge.c3addon
со страницы релизов на гитхаб или на construct.net.
Перейдите в Menu
→ View
→ Addon 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
.
📝 Примечание
При обновлении плагина не забывайте обновлять JS файл до одинаковой версии.
Вариант №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
, crazy_games
, game_distribution
, yandex
, wortal
, playdeck
, telegram
, vk
, ok
, vk_play
, absolute_games
, mock
.
Язык #
InstantGamesBridge.PlatformLanguage
Если платформа предоставляет данные об языке пользователя — то это будет язык, который установлен у пользователя на платформе. Если не предоставляет — это будет язык браузера пользователя.
Формат: ISO 639-1. Пример: ru
, en
.
Параметр из адресной строки #
InstantGamesBridge.PlatformPayload
С помощью данного параметра можно в ссылку на игру встраивать какую-либо вспомогательную информацию.
Платформа | Формат ссылки |
---|---|
Playgama | — |
Crazy Games | crazygames.com/game/example?payload=your-info |
Game Distribution | — |
Yandex | yandex.com/games/play/183100?payload=your-info |
Wortal | — |
PlayDeck | — |
Telegram | — |
VK Play | — |
VK | vk.com/app8056947#your-info |
OK | — |
Absolute Games | — |
Mock | site.com/game?payload=your-info |
Информация о домене #
InstantGamesBridge.PlatformTld
Если данных нет –
null
. Если данные есть – com
, ru
, etc.
Отправка сообщения платформе #
Сообщение | Описание |
---|---|
Game Ready |
Игра загрузилась, все загрузочные экраны прошли, игрок может взаимодействовать с игрой. |
In-Game Loading Started |
Началась какая-либо загрузка внутри игры. Например, когда идёт загрузка уровня. |
In-Game Loading Stopped |
Загрузка внутри игры окончена. |
Gameplay Started |
Начался геймплей. Например, игрок зашёл в уровень с главного меню. |
Gameplay Stopped |
Геймплей закончился/приостановился. Например, при выходе с уровня в главное меню, открытии меню паузы и т.д. |
Player Got Achievement |
Игрок достиг особенного момента. Например, победил босса, установил рекорд и т.д. |
Серверное время #
Информация о девайсе #
Тип девайса #
InstantGamesBridge.DeviceType
Возвращает тип девайса, с которого пользователь запустил игру. Возможные значения: mobile
, tablet
, desktop
, tv
.
Информация об игроке #
Поддержка авторизации #
true
,
false
.
Авторизован ли игрок в данный момент #
true
,
false
.
ID игрока #
InstantGamesBridge.PlayerId
Если данных нет –
null
. Если данные есть – данные в формате string
.
Имя игрока #
InstantGamesBridge.PlayerName
Если данных нет –
null
. Если данные есть – данные в формате string
.
Аватар игрока #
Количество аватаров #
InstantGamesBridge.PlayerPhotosCount
Получить аватар по индексу #
InstantGamesBridge.PlayerPhoto(index)
Авторизация игрока #
Информация об игре #
Текущее состояние видимости #
InstantGamesBridge.VisibilityState
Возвращает текущее состояние видимости игры (вкладки с игрой).
Возможные значения: visible
, hidden
.
📝 Примечание
Нужно реагировать на изменение состояния видимости. Например, выключать звук в игре приhidden
и включать приvisible
.
Пользовательские данные #
Есть два типа хранилища: локальноеlocal_storage
и внутреннее platform_internal
. При записи в локальное — данные сохраняются у игрока на конкретном девайсе, при записи во внутреннее — данные сохраняются на серверах платформы.
Тип хранилища по умолчанию #
InstantGamesBridge.DefaultStorageType
Тип хранилища, который используется по-умолчанию в конкретный момент на конкретной платформе. Возможные значения: local_storage
, platform_internal
.
Проверка на поддержку #
Проверка на доступность #
Загрузка данных #
Сохранение данных #
Удаление данных #
Реклама #
Banner #
Поддерживается ли баннер #
📝 Примечание
Чтобы баннеры работали в 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
.
Interstitial #
Межстраничная реклама. Обычно показывается в момент загрузки уровня/поражения и т.д.Минимальный интервал между показами #
// Значение по умолчанию = 60 секунд
InstantGamesBridge.MinimumDelayBetweenInterstitial
Между показами Interstitial-рекламы нужно соблюдать временные интервалы. Например, Yandex просто не покажет рекламу если вызывать слишком часто, а VK будет показывать так часто, как вызывается метод.
Для удобства, в данном SDK есть встроенный механизм таймера между показами. Вам нужно лишь указать нужный интервал и можно дёргать метод показа рекламы сколько угодно.
Состояние рекламы #
InstantGamesBridge.InterstitialState
Текущее состояние рекламы. Возможные значения: loading
, opened
, closed
, failed
.
📝 Примечание
Нужно реагировать на изменение состояния рекламы. Например, выключать звук в игре приopened
и включать приclosed
иfailed
.
Показать рекламу #
Rewarded #
Реклама за вознаграждение.Состояние рекламы #
InstantGamesBridge.RewardedState
Текущее состояние рекламы. Возможные значения: loading
, opened
, closed
, rewarded
, failed
.
📝 Примечание
Нужно реагировать на изменение состояния рекламы. Например, выключать звук в игре приopened
и включать приclosed
иfailed
.
⚠️ Предупреждение
Награду игроку нужно выдавать только при наступлении состоянияrewarded
.
Показать рекламу #
AdBlock #
Проверить включен ли блокировщик рекламы.Социальные взаимодействия #
Поделиться #
Поддерживается ли функционал на платформе.
Вступить в сообщество #
Поддерживается ли функционал на платформе.
Пригласить друзей #
Поддерживается ли функционал на платформе.
Опубликовать пост #
Поддерживается ли функционал на платформе.
Добавить в избранное #
Поддерживается ли функционал на платформе.
Добавить на рабочий стол #
Поддерживается ли функционал на платформе.
Оценить игру #
Поддерживается ли функционал на платформе.
Внешние ссылки #
Разрешены ли внешние ссылки на платформе.
Лидерборды #
Поддержка #
Нативный popup #
Поддерживается ли нативный popup.
Очки игрока #
Запись #
Поддерживается ли запись очков игрока.
Чтение #
Поддерживается ли чтение очков игрока.
Записи таблицы #
Поддерживается ли чтение полной таблицы.
Внутриигровые покупки #
Существуют два типа покупок — постоянные (например, отключение рекламы) и расходуемые (например, внутриигровые монеты).Поддержка #
Покупка #
Расходование #
Чтобы израсходовать покупку, нужно передать её токен. Токен можно получить с помощью экшена Get Purchases
.
Каталог всех товаров #
Список купленных товаров #
Данный экшн нужен чтобы получить токены покупок. Токен нужной покупки необходимо самостоятельно сохранять, для того чтобы в дальнейшем можно было передать нужный токен в экшн Consume Purchase
.