Launcher / Бесшовная интеграция между браузером и игрой
  На главную

Launcher

Бесшовная интеграция между браузером и игрой

Как это работает

Бесшовная интеграция позволяет настроить отправку данных с вашего веб-сайта в игру в параметрах URL-адреса. Таким способом вы можете передавать авторизационный токен пользователя, данные о маркетинговой кампании или любую другую информацию.

Сценарии пользователя

Существуют следующие сценарии пользователя при реализации бесшовной интеграции:

  • переход по ссылке на установщик лаунчера с веб-сайта;
  • переход по ссылке на лаунчер с веб-сайта, если лаунчер уже установлен на компьютере пользователя;
  • запуск игры из лаунчера.

При переходе по ссылке на установщик лаунчера с веб-сайта:

  1. Пользователь открывает веб-сайт.
  2. Пользователь переходит по ссылке на установщик лаунчера.
  3. Пользователь скачивает установщик лаунчера по ссылке с одноразовым паролем.
  4. Пользователь устанавливает лаунчер.
  5. Лаунчер получает значение параметра common_payload по одноразовому паролю.
  6. Пользователь нажимает Играть в лаунчере.
  7. Лаунчер проверяет наличие и срок жизни параметра common_payload:
    • Если проверка прошла успешно, лаунчер запускает игру с аргументами, полученными из параметра common_payload.
    • Если проверка прошла неуспешно:
      • Если в Личном кабинете настроена передача URL-адрес веб-сайта с игрой в имени исполняемого файла — лаунчер перенаправляет пользователя на этот адрес.
      • Если в настройках в Личном кабинете URL-адрес веб-сайта с игрой не указан — лаунчер запускает игру без аргумента common_payload.

При переходе по ссылке на лаунчер с веб-сайта, если лаунчер уже установлен на компьютере пользователя:

  1. Пользователь открывает веб-сайт.
  2. Пользователь переходит по ссылке на лаунчер.
  3. Лаунчер сохраняет значения параметров payload, common_payload и expires_jn из URL-адреса.
  4. Пользователь нажимает Играть в лаунчере.
  5. Лаунчер проверяет наличие и срок жизни параметров payload и common_payload:
    • Если проверка прошла успешно, лаунчер запускает игру с аргументами, полученными из параметров payload и common_payload.
    • Если проверка прошла неуспешно:
      • Если в Личном кабинете настроена передача URL-адрес веб-сайта с игрой в имени исполняемого файла — лаунчер перенаправляет пользователя на этот адрес.
      • Если в настройках в Личном кабинете URL-адрес веб-сайта с игрой не указан — лаунчер запускает игру без аргументов payload и common_payload.

Запуск игры из лаунчера:

  1. Пользователь открывает лаунчер.
  2. Пользователь нажимает Играть в лаунчере.
  3. Лаунчер проверяет наличие и срок жизни параметров payload и common_payload:
    • Если проверка прошла успешно, лаунчер запускает игру с аргументами, полученными из параметровpayload и common_payload при последнем запуске лаунчера по ссылке с веб-сайта.
    • Если проверка прошла неуспешно:
      • Если в Личном кабинете настроена передача URL-адрес веб-сайта с игрой в имени исполняемого файла — лаунчер перенаправляет пользователя на этот адрес.
      • Если в настройках в Личном кабинете URL-адрес веб-сайта с игрой не указан — лаунчер запускает игру без аргументов payload и common_payload.

Как настроить

Чтобы настроить бесшовную интеграцию между браузером и игрой:

  1. Выполните настройку в Личном кабинете.
  2. Добавьте ссылку на ваш сайт.
  3. Реализуйте обработку данных, полученных в параметре payload на стороне игры.

Настройка в Личном кабинете

  1. Откройте проект в Личном кабинете.
  2. Нажмите Launcher в боковом меню.
  3. Найдите нужный лаунчер на дашборде и нажмите Редактировать.
  4. В разделе Игры нажмите Настроить справа от игры.
  5. Перейдите в раздел Сборки.
  6. Перейдите на вкладку Исполняемые файлы.
  7. Для каждой операционной системы в поле Название исполняемого файла добавьте аргументы --x_payload_url. В значении аргумента передайте URL-адрес веб-сайта, на котором будет расположена ссылка или кнопка. Значение должно быть зашифровано с помощью Base64.

Например, если имя исполняемого файла игры game.exe, а URL-адрес веб-сайта с игрой http://example.com/start_play, тогда укажите в поле Имя исполняемого файла значение game.exe –x_payload_url aHR0cDovL2V4YW1wbGUuY29tL3N0YXJ0X3BsYXk=.

Примечание
После выполнения данной настройки пользователи не смогут запускать игру, не получив данные с веб-сайта игры. Если данные отсутствуют, то при старте игры пользователь будет перенаправлен на веб-сайт игры для их получения.

Добавьте на ваш сайт ссылку или кнопку, которая будет открывать URL-адрес в формате xl-<launcher-id>://game/<game-id>?payload=<payload>&common_payload=<common_payload>&expires_in=<expires_in>, где:

  • <launcher-id> и <game-id> — ID лаунчера и игры, которые вы можете найти в URL-адресе в вашем Личном кабинете: https://publisher.xsolla.com/<merchant-id>/projects/<project-id>/new-launcher/<launcher-id>/game/<game-id>.
  • <payload> — данные, которые необходимо передать игре.
  • <common_payload> — общие для всех игр данные пользователя, которые необходимо передать лаунчеру.
  • <expires_in> — срок жизни данных, переданных в параметрах payload payload и common_payload, в формате Unix time в миллисекундах.
Примечание
Рекомендуется шифровать данные с помощью Base64 или urlencoder.org для безопасной передачи в качестве параметров URL-адреса.
Copy
Full screen
Small screen


function getAuthToken() {
    return 'YOUR DATA HERE';
}

function getDeeplink(launcherID, gameID) {
    const encodedPayload = btoa(getAuthToken());
    const expiresIn = new Date();
    expiresIn.setHours(expiresIn.getHours() + 1); // Payload data will be fresh for 1 hour
 return `xl-${launcherID}://game/${gameID}?payload=${encodedPayload}&expires_in=${expiresIn.getTime()}`;
}

// Put that `href` to button or link address
const href = getDeeplink(123, 4567);

Интеграция на стороне игры

Лаунчер передает данные, полученные в параметре payload, в значении аргумента командной строки –xsolla-payload. Лаунчер также проверяет наличие и срок жизни данных, переданных в параметре common_payload, и передает их в значении аргумента командной строки –xsolla-common-payload как показано в примере ниже.

Пример запуска игры, когда данные зашифрованы с помощью Base64:

Copy
Full screen
Small screen
    game.exe ---xsolla-payload <payload> --xsolla-common-payload <common_payload> WU9VUiBEQVRBIEhFUkU=
    
    Была ли статья полезна?
    Спасибо!
    Что может сделать страницу еще лучше? Сообщение
    Жаль, что так произошло
    Расскажите, почему статья не была полезна. Сообщение
    Спасибо за обратную связь!
    Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.
    Последнее обновление: 22 января 2024

    Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.

    Сообщите о проблеме
    Мы постоянно улучшаем качество нашей документации. Ваш отзыв поможет нам в этом.
    Укажите email-адрес, чтобы мы могли связаться с вами
    Спасибо за обратную связь!