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, 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.

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

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

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

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

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

📝 Примечание
Чтобы баннеры работали в 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.
Реклама за вознаграждение.
InstantGamesBridge.RewardedState

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

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

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

Поделиться #

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Лидерборды #

Поддержка #

Нативный popup #

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

Очки игрока #

Запись #

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

Чтение #

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

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

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

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

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

Поддержка #

Покупка #

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

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

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

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

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

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

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

Поддержка #

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

← JS Core Godot →