Асинхронный мультиплеер

Плагин Construct 3 поддерживает работу с асинхронным мультиплеером. Подробнее см. в разделе HTML 5.

Инициализация мультиплеера

Для начала работы используйте действие Проинициализировать мультиплеер. В нем происходят стартовая инициализация и загрузка игровых сессий оппонентов.

Параметры инициализации:

Параметр

Тип

Описание

Количество сессий

number

Количество сессий для загрузки (не более 10).

Время хода

number

Максимальное время хода оппонента в миллисекундах.

Метаданные

JSON

Объект с данными для выборки сессий.

Подробнее о параметрах см. в основной статье.

После успешной инициализации мультиплеера будет активирован триггер Мультиплеер инициализирован. Чтобы обработать полученные сессии оппонентов, используйте внутри него цикл Для каждого оппонента. В цикле доступны выражения:

  • Данные игрока текущей сессии — данные игрока в текущей сессии по ключу avatar или name.
  • Идентификатор текущей сессии в списке сессий.

Для получения метаданных сессии используйте действие Получить метаданные текущей сессии.

Запись игровой сессии

Доступные действия:

  • Записать транзакцию — используйте для фиксации транзакций. Действие принимает объект JSON с данными.

  • Сохранить сессию — используйте для сохранения сессии. Действие принимает объект JSON c метаданными сессии.

Подробнее см. в основной статье.

Работа с сессиями

В Construct 3 работа с сессиями осуществляется только через события. Для этого используются триггеры Сессионные транзакции получены и Сессия окончена.

В триггере Сессионные транзакции получены доступны:

  • Выражение Идентификатор сессии в событии сессионной транзакции.

  • Цикл Для каждой транзакции — для обработки списка пришедших транзакций оппонента. В цикле доступны выражения:

    • Идентификатор текущей транзакции в списке транзакций.
    • Время текущей транзакции в списке транзакций.

    Для получения данных транзакции используйте действие Получить данные текущей транзакции.

В триггере Сессия окончена доступно выражение Идентификатор сессии в событии окончания.

Чтобы инициировать отправку сессий в обработчики, вызовите действие Отметить начало геймплея. Приостановка осуществляется вызовом Отметить конец геймплея.

Подробнее о работе с сессиями см. в основной статье.

Пример использования

Скриншот Construct 3: экран настройки асинхронного мультиплеера при помощи плагина YandexGamesSDK. Таблица из трех столбцов (в каждой ячейке третьего столбца есть кнопки «+ Добавить действие» и «+ Добавить...») и 8 строк. 1 строка — иконка «OK» и текст «start», «При нажатии», «{:} InitMeta | Парсинг JSON строки "{meta1:{min:7,max:9}}"»  «YandexG... | Инициализация мультиплеера. Количество сессий: 1, время хода: 20000 мс, мета: {:} InitMeta»  иконка настроек «Система | Дождаться завершения предыдущих действий»  «YandexG... | Отметить начало геймплея». 2 строка — «YandexGames…», «Мультиплеер инициализирован», пустая ячейка. 3 строка — «YandexGames…», «Для каждого оппонента», иконка буквы «T» в пунктирном квадрате и текст «Текст2 | Установить текст на YandexGamesSDK.Идентификатор текущей сессии в списке сессий». 4 строка — «YandexGames…», «Сессионные транзакции получены», пустая ячейка. 5 строка — «YandexGames…», «Для каждой транзакции», «YandexG… | Получить данные текущей транзакции и сохранить в {:} payload»  иконка буквы «T» в пунктирном квадрате и текст «Текст2 | Установить текст на payload.Получить("data")». 6 строка — «YandexGames…», «Сессия окончена», иконка буквы «T» в пунктирном квадрате и текст «Текст2 | Установить текст на "Конец"». 7 строка — иконка «OK» и текст «commit», «При нажатии», «иконка настроек «Система» | Вычесть 1 из hp»  «{:} transacti... | Парсинг JSON строки "{data:&hp&}"»  «YandexG... | Записать транзакцию с данными {:} transaction». 8 строка — иконка «OK» и текст «end», «При нажатии», «{:} pushMeta | Парсинг JSON строки "{meta1:8}"»  «YandexG... | Сохранить сессию с метаданными {:} pushMeta».


Примечание

Если при работе с плагином вы столкнулись с проблемой или у вас появился вопрос, обратитесь в сообщество в Телеграме.

Репозиторий
Предыдущая
Следующая