Лаунчер

Лаунчер Иксолла (Xsolla Launcher) позволяет разработчикам игр доставлять и обновлять продукт, а также предлагает пользователям удобный интерфейс взаимодействия с игрой через настольное приложение. Решение включает в себя:

  • поддержку нескольких игр;
  • поддержку разных способов распространения игр;
  • продажу виртуальных и физических товаров в полноэкранном магазине;
  • встроенный инструмент авторизации с возможностью кастомизации интерфейса и способов аутентификации;
  • кастомизацию интерфейса лаунчера;
  • поддержку платформ Windows и macOS;
  • локализацию пользовательского интерфейса на 20 языков;
  • автоматическую доставку обновлений лаунчера пользователям;
  • доставку пользователям игр и обновлений по сети P2P/CDN;
  • настройку лаунчера из Личного кабинета;
  • управление новостями и баннерами;
  • выбор пользователем региона игры;
  • интеграцию игр с платформами партнеров.

Чтобы узнать больше о технической реализации продукта Лаунчер, перейдите к White Paper.

Note: Если вы уже используете продукты Иксоллы и хотите интегрировать Лаунчер, пожалуйста, обратитесь к аккаунт-менеджеру проекта.

Сценарий интеграции

  1. Зарегистрируйтесь в Личном кабинете Иксолла.
  2. Создайте проект.
  3. Настройте лаунчер.
  4. Кастомизируйте интерфейс лаунчера.
  5. Сгенерируйте установочный файл лаунчера и архив с его сборкой.
  6. Загрузите сборку игры на сервер обновлений Иксоллы.
  7. Раздайте новым пользователям установочный файл лаунчера.

Создание проекта

  1. Перейдите в раздел Проекты и нажмите кнопку Создать проект.
  2. В настройках проекта:
    1. Добавьте Название проекта.
    2. Укажите ссылку на Веб-сайт игры.

Note: Проект в Личном кабинете соответствует одной вашей игре.

Настройка лаунчера

Создайте лаунчер в Личном кабинете:

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

После завершения настроек в Личном кабинете, выполните следующие шаги:

  1. Склонируйте репозиторий лаунчера с GitHub.
  2. Перейдите в папку launcher/win для Windows-версии или /launcher.app/Contents/MacOS для macOS-версии и в файле config.json укажите значения объектов.

ПРИМЕР

Copy
Full screen
Small screen
{
   "launcher_project_id": "8c91ecf3-e7b0-46a8-aaf7-4c419ef8ef4b",
   "login_project_id": "bd2e1104-5494-48f9-ac50-98f230062df1",
   "callback_url": "https://callback_url.com",
   "product_name": "Launcher",
   "link_support": "https://support_example.com",
   "link_community": "https://community_example.com",
   "game_autoupdate": false,
   "hide_peer_seed_info": false,
   "hide_email": false,
   "build_number": 1
}

Кастомизация интерфейса

Способ кастомизации лаунчера зависит от версии продукта, которую вы интегрируете. Описание параметров кастомизации для разных версий доступно по ссылке.

Генерация архива и установочного файла

Скрипт deploy.bat из директории scripts/win генерирует архив со сборкой лаунчера для доставки пользователям обновлений.

Вы можете запустить скрипт deploy.bat одним из способов:

  • Двойным кликом по файлу скрипта. Сборка будет размещена в директории с клонированным проектом в папке target.
  • Из консоли с дополнительным ключом --out <directory>, где <directory> — путь для размещения сборки.

ПРИМЕР

Copy
Full screen
Small screen
deploy.bat --out C:/Target

Чтобы сгенерировать установочный файл лаунчера и получить ссылку для его доставки игрокам:

  1. В Личном кабинете перейдите в раздел Лаунчер > Общие настройки и нажмите Сгенерировать ссылку на установщик для Windows.
  2. В открывшемся окне загрузите архив ZIP со сборкой лаунчера и значок для установочного файла в формате ICO и нажмите Сгенерировать.
  3. Дождитесь завершения генерации установочных файлов, подписанных сертификатом безопасности Иксолла, и их загрузки на CDN Иксоллы.
  4. Скопируйте ссылку для доставки веб-установщика лаунчера игрокам. Чтобы получить ссылку на автономную версию установщика лаунчера, перейдите в выпадающее меню и нажмите Получить ссылку на автономный установщик.

Note: Веб-установщик лаунчера занимает значительно меньше места на диске игрока, чем автономный установщик, но требует подключения к интернету. Автономную версию можно использовать без подключения к интернету.
Notice: Мы рекомендуем использовать только CDN Иксоллы для доставки установочного файла игрокам. Чтобы доставлять установочный файл с помощью других сервисов, свяжитесь с аккаунт-менеджером проекта.

Скрипт deploy.sh из директории scripts/mac генерирует:

  • установочный файл лаунчера для раздачи новым пользователям;
  • архив со сборкой лаунчера для доставки обновлений пользователям;
  • APP файл приложения.

Чтобы система безопасности macOS идентифицировала сборку лаунчера как безопасную для запуска, необходимо:

  1. подписать сборку сертификатом разработчика;
  2. пройти проверку сборки на стороне Apple.
Все действия по подписи и проверке выполняются автоматически при запуске скрипта deploy.sh. Выполните подготовительные работы и запустите скрипт, следуя инструкции ниже.

Подготовка к авторизации

Для подписи и проверки сборки вам потребуются:

Создание пароля для программы

  1. Перейдите на сайт Apple ID.
  2. Пройдите двухфакторную аутентификацию.
  3. Перейдите в раздел Безопасность.
  4. Нажмите Сгенерировать пароль.

  1. Во всплывающем окне введите название пароля и нажмите Создать.

Получение сигнатуры сертификата

  1. Откройте приложение Связка ключей.
    1. В выпадающем меню Связка ключей > Ассистент сертификации выберите Запросить сертификат у бюро сертификации.

    1. В открывшемся окне введите свои данные, выберите пункт Сохранить на диске и нажмите Продолжить.
  1. В открывшемся окне укажите путь к директории, в которую необходимо сохранить сертификат, и нажмите Сохранить.
  2. Авторизуйтесь в аккаунте разработчика Apple.
    1. Откройте пункт меню Certificates, Identifiers & Profiles, перейдите на вкладку Certificates и добавьте новый сертификат.

    1. Выберите тип сертификата Developer ID Application и нажмите Continue.
    2. Выберите файл с сертификатом, который вы сгенерировали ранее, и нажмите Continue.
    3. Нажмите Download, чтобы скачать сертификат разработчика.
  1. Откройте загруженный файл и установите сертификат.
  2. Откройте терминал и выполните команду security find-identity -p basic -v.

Регистрация Bundle ID

  1. Авторизуйтесь в аккаунте разработчика Apple.
    1. Откройте пункт меню Certificates, Identifiers & Profiles, перейдите на вкладку Identifiers и добавьте новый идентификатор.

    1. Выберите тип App IDs и нажмите Continue.
    2. Выберите тип приложения App и нажмите Continue.

    1. Введите Bundle ID, например com.template.launcher. Нажмите Continue.
  1. Внесите изменения в конфигурационный файл Info.plist:
    1. Задайте параметру CFBundleIdentifier значение Bundle ID.
    2. Задайте параметрам CFBundleVersion и CFBundleShortVersionString значение версии приложения.

ПРИМЕР

Copy
Full screen
Small screen
<key>CFBundleIdentifier</key>
<string>com.template.launcher</string>
<key>CFBundleVersion</key>
<string>102</string>
<key>CFBundleShortVersionString</key>
<string>1.0.102</string>

Запуск скрипта подписи

После выполнения шагов по подготовке к подписи, запустите следующие команды в терминале:

Copy
Full screen
Small screen
chmod +x deploy.sh
./deploy.sh --username <username> --password <password> --signature <signature> --teamid <teamid> --apppath <apppath> --appname <appname> --outpath <outpath>

Аргументы команды:
  • apppath — путь к директории сборки лаунчера, которую вы хотите подписать. Обязательный. Значение по умолчанию: ../../launcher/macos.
  • username — имя пользователя аккаунта разработчика Apple. Обязательный. Например:j.smith@email.com.
  • password — пароль для программы. Обязательный.
  • appname — название сборки лаунчера. Опционально. Значение по умолчанию: launcher.signature — сигнатура сертификата. Обязательный. Например: Developer ID Application: John Smith (JWZ3331234).
  • teamid — идентификатор команды. Обязательный. Запустите команду "AC_USERNAME" -p "AC_PASSWORD" для получения идентификатора.
  • bundleid — идентификатор приложения (Bundle ID). Опционально. Значение по умолчанию: com.template.launcher.
  • outpath — путь к директории, в которой будут находиться подписанные APP файл приложения, архив и установочный DMG файл лаунчера. Опционально. Значение по умолчанию: $apppath/../../target/macos.
Если подпись и проверка сборки прошли успешно, в терминале появится сообщение:

Если при выполнении команды вы получите ошибку altool cannot be found, выполните команду xcrun altool. Если ошибка повторяется, выполните команду xcode-select -r.

Загрузка сборки игры

Для загрузки сборки игры на сервер обновлений используется консольная утилита Build Loader. Системные требования для Build Loader:
  • Операционная система: Windows 7/8/10 64-bit, macOS 10.14.0 и выше
  • Процессор (CPU): 1.6 ГГц
  • Свободный объем оперативной памяти (RAM): 100 Мб (или более)
  • Свободный объем жесткого диска: 150% от размера файла сборки игры
Build Loader принимает следующие флаги:
  • --init — инициализация утилиты.
  • --update — отправка сборки игры на сервер.
  • --builds-list — список сборок игры.
  • --descr <build-description> — описание сборки.
  • --api-key <API-key> — ключ API.
  • --game-path <path-to-game>  — путь к сборке игры.
  • --chunk-size <chunk-size> — размер чанков — частей, на которые разбивается архив игры. Измеряется в Мб или Гб. Флаг принимает значение от 10mb до 5120mb или от 1gb до 5gb, по умолчанию 5gb.
  • --retry-timeout <timeout> — интервал между попытками загрузки файлов, измеряется в секундах. Флаг принимает значение от 10 до 60, по умолчанию 20.
  • --retry-count <retry-count> — количество попыток загрузки файлов. Флаг принимает значение от 1 до 10, по умолчанию 3.
Чтобы загрузить сборку игры:
  1. Перейдите в раздел Настройки сборок в Личном кабинете.
  2. Скопируйте ключ API.
  3. Скачайте и установите Build Loader.
  4. Инициализируйте утилиту.
  5. Загрузите сборку игры на сервер.
  6. Разместите сборку игры на stage.
  7. Настройте файлы игры.

Инициализация Build Loader

Для инициализации утилиты передайте ранее скопированный ключ API и путь к сборке игры:
Copy
Full screen
Small screen
> build_loader.exe --init --api-key <api-key> --game-path <path-to-game>

ПРИМЕР

Copy
Full screen
Small screen
> build_loader.exe --init --api-key E51DPZ486S9IUGVF43AH4T48QB7246OQ --game-path C:\Games\LastGameBuild

Copy
Full screen
Small screen
> build_loader --init --api-key <api-key> --game-path <path-to-game>

ПРИМЕР

Copy
Full screen
Small screen
> build_loader --init --api-key E51DPZ486S9IUGVF43AH4T48QB7246OQ --game-path /Games/Yourgame

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

Загрузка на сервер

Для загрузки сборки игры на сервер укажите путь к сборке:
Copy
Full screen
Small screen
> build_loader.exe --update --game-path <path-to-game>

ПРИМЕР

Copy
Full screen
Small screen
    > build_loader.exe --update --game-path C:\Games\LastGameBuild

    Copy
    Full screen
    Small screen
    > build_loader --update --game-path <path-to-game>

    ПРИМЕР

    Copy
    Full screen
    Small screen
      > build_loader --update --game-path /Games/Yourgame

      Если параметр --game-path уже использовался при инициализации или предыдущей загрузке сборки, его можно опустить. При первой загрузке сервер обновлений получает всю сборку игры, при следующих — патчи, сформированные Build Loader.

      Размещение на stage

      Сборки игры, загруженные на сервер, отображаются в Личном кабинете в разделе Настройки проектов > Настройки сборок > Список сборок. Выберите stage для размещения сборки игры:
      • master: игра будет доступна конечным пользователям;
      • test: игра будет доступна только для тестирования.
      Note: Для тестирования игры запустите лаунчер с параметром -game_stage test в консоли. Например: launcher.exe -game_stage test.

      Настройка файлов игры

      Для корректной загрузки игр из лаунчера необходимо настроить и инициализировать файлы загрузки.
      1. В Личном кабинете в разделе Настройки сборок перейдите к блоку Настройки файлов игры.
      2. Введите название и расширение файла, который запускает игру (например, coolgame.exe).
      3. Укажите путь установки игры.
      4. Загрузите распространяемые файлы, необходимые для запуска игры (например, Microsoft Visual C++ 2017 Redistributable).
      Лаунчер передает игре следующие параметры:
      • --xsolla-locale <locale>: язык интерфейса;
      • --xsolla-login-token <token>: Xsolla Login JWT (JSON Web Token).
      ПРИМЕР
      Copy
      Full screen
      Small screen
      game.exe --xsolla-login-token eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJlbWFpbCI6InAudHVnb2x1a292QHhzb2xsYS5jb20iLCJleHAiOjE1ODU1MDYxMTMsImdyb3VwcyI6W10sImlhdCI6MTU4NDY0MjExMywiaXNzIjoiaHR0cHM6Ly9sb2dpbi54c29sbGEuY29tIiwicGFydG5lcl9kYXRhIjp7ImFkbWluIjp0cnVlfSwicGF5bG9hZCI6IiIsInByb21vX2VtYWlsX2FncmVlbWVudCI6dHJ1ZSwicHJvdmlkZXIiOiJ4c29sbGEiLCJyZWRpcmVjdF91cmwiOiIiLCJzdWIiOiIyNmYxNzI5Ni00Nzk5LTExZTgtOTBkMC00MjAxMGE4YTAwMTkiLCJ0eXBlIjoic29jaWFsIiwidXNlcm5hbWUiOiJzb21lX3VzZXJAbWFpbC5jb20iLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6Ikk2QTJrTEZPQ2JkcnUzamIxMjNyT3JmWnNkTnFpdVcxMjNpWTdKcW85OHI5b0hPbyIsInhzb2xsYV9sb2dpbl9wcm9qZWN0X2lkIjoiNDBkYjJlYTQtNWQ0Mi0xMWU2LWEzZmYtMDA1NDU2YTBlMTRhIn0.ZsTNiwY2iPp7HKqHs5g6JXzL2kv_RVuMNBlF-Tn2ccE --xsolla-locale en

      Copy
      Full screen
      Small screen
      game --xsolla-login-token eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJlbWFpbCI6InAudHVnb2x1a292QHhzb2xsYS5jb20iLCJleHAiOjE1ODU1MDYxMTMsImdyb3VwcyI6W10sImlhdCI6MTU4NDY0MjExMywiaXNzIjoiaHR0cHM6Ly9sb2dpbi54c29sbGEuY29tIiwicGFydG5lcl9kYXRhIjp7ImFkbWluIjp0cnVlfSwicGF5bG9hZCI6IiIsInByb21vX2VtYWlsX2FncmVlbWVudCI6dHJ1ZSwicHJvdmlkZXIiOiJ4c29sbGEiLCJyZWRpcmVjdF91cmwiOiIiLCJzdWIiOiIyNmYxNzI5Ni00Nzk5LTExZTgtOTBkMC00MjAxMGE4YTAwMTkiLCJ0eXBlIjoic29jaWFsIiwidXNlcm5hbWUiOiJzb21lX3VzZXJAbWFpbC5jb20iLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6Ikk2QTJrTEZPQ2JkcnUzamIxMjNyT3JmWnNkTnFpdVcxMjNpWTdKcW85OHI5b0hPbyIsInhzb2xsYV9sb2dpbl9wcm9qZWN0X2lkIjoiNDBkYjJlYTQtNWQ0Mi0xMWU2LWEzZmYtMDA1NDU2YTBlMTRhIn0.ZsTNiwY2iPp7HKqHs5g6JXzL2kv_RVuMNBlF-Tn2ccE --xsolla-locale en

      Туториалы

      Системные требования для лаунчера

      Для оптимальной работы лаунчера компьютер конечного пользователя должен соответствовать следующим системным требованиям:
      • Операционная система: Windows 7, Windows 8, Windows 10 — 64-bit или macOS 10.14.0 и выше
      • Процессор (CPU): 1.6 ГГц
      • Свободный объем оперативной памяти (RAM): 300 Мб (или более)
      • Свободный объем жесткого диска: 180 Мб
      • Актуальная версия DirectX

      Рецепты

      Изучите наши рецепты, чтобы попробовать расширенные возможности Лаунчера:

      Частые вопросы

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

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

      В. Сколько стоит Лаунчер Иксолла?

      О. Стоимость доступа к Лаунчеру уже включена в комиссию Иксоллы. Дополнительные расходы возможны при доставке игр и обновлений через CDN Иксоллы ($0.01/Гб игры). Однако за счет использования системы балансирования P2P расходы на доставку снижаются в среднем на 80%.

      В. Должен ли лаунчер быть запущен на протяжении всей игры?

      О. По умолчанию — да. После запуска игры лаунчер сворачивается в область уведомлений и не использует ресурсы компьютера. В процессе игры связи между ней и лаунчером нет, поэтому пользователь может завершить работу лаунчера самостоятельно.

      В. Чем Лаунчер Иксолла отличается от Steam?

      О. Лаунчер Иксолла выполняет функцию "моста" между платформой Steam и игрой.

      В. Как доставлять обновления игры в Steam, если я использую Лаунчер Иксолла?

      О. Вы можете полностью загрузить игру в Лаунчер, а затем отправить Steam. Либо используйте Лаунчер как инструмент доставки обновлений: загружайте только обновленные части игры, а затем отправляйте Steam.

      В. Нужно ли поддерживать две разные сборки игры: не привязанную к платформе и для Steam?

      О. Нет, двух сборок не понадобится. Если вы поддерживаете доставку игры с помощью нескольких платформ, Лаунчер позволит собрать данные пользователей в единую базу. Также Лаунчер поддерживает сквозную регистрацию: если пользователь запускает игру через Steam впервые, он не должен вводить свои данные. При этом пользователь может перейти на ваш сайт вне системы Steam, зайти, используя свой Steam OpenID, и стать членом вашего официального сообщества: писать на форумах, читать новости, находить новые игры и т.д.

      В. Я пользуюсь инструментами Steam, в том числе их лаунчером, и не беспокоюсь о расходах на CDN. Что изменится, если я начну использовать Лаунчер Иксолла?

      О. Вы можете использовать Лаунчер Иксолла в то время, как Steam будет платить за CDN. Просто загрузите игру в Steam с Лаунчером. Вы можете собирать базу данных пользователей, развивать коммуникацию с ними, а также изменять интерфейс запуска игры.

      В. В Лаунчере Иксолла подключены CDN? Нужно ли связаться с компаниями, которые предоставляют CDN, для дополнительной интеграции? Можно ли использовать CDN компании, которая не входит в ваш список?

      О. Иксолла использует следующие сети CDN: G-Core Labs, Akamai. Для использования CDN вам не нужно дополнительно связываться с компанией-поставщиком. Если вы хотите подключить другую CDN, обратитесь к аккаунт-менеджеру проекта.

      В. Почему я не могу просто использовать Solid State Networks?

      О. Основной продукт Solid State Network — CDN, поэтому их лаунчеры не предназначены для оптимизации расходов на CDN.

      В. Поддерживает ли Лаунчер Иксолла межпроцессное взаимодействие (IPC)?

      О. Сейчас нет, так как в Лаунчере нет функций, для которых оно требуется. По мере добавления новых функций, таких как онлайн-стриминг и игровой магазин в режиме overlay, будет добавлено и необходимое для них IPC-взаимодействие.

      В. Как пользователи Лаунчера Иксолла могут получить доступ к играм? Можно ли распространять игры по подписке, купону или промокоду?

      О. На данный момент доступ к играм предоставляется только по игровым ключам.

      В. Могут ли пользователи Лаунчера Иксолла загружать обновления игры, если они не приобрели игровые ключи?

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

      В. Можно ли настроить P2P-соединение для компьютеров в одной локальной сети, чтобы данные передавались только внутри нее?

      О. На данный момент такая возможность недоступна.

      В. Поддерживает ли Лаунчер Иксолла уровни доступа? Например, "alpha"— для тестирования, "beta"— для передачи конечным пользователям.

      О. Да, поддерживает. При загрузке билда игры вы можете разместить его на одном из stage: test (для тестирования) или master (для передачи конечным пользователям). Чтобы запустить лаунчер с играми, размещенными на stage=test, передайте параметр -game_stage test в консоли. Например: launcher.exe -game_stage test.

      В. В списке игр в Лаунчере Иксолла отображаются все добавленные игры или только те, которые приобрел пользователь?

      О. В списке отображаются все добавленные игры. Для купленных игр доступна кнопка Играть, для остальных — Купить.

      В. Можно ли выдавать конкретным пользователям бесплатные игровые ключи? Как они смогут ими воспользоваться?

      О. Да. Выгрузите игровые ключи из Личного кабинета и разошлите любым удобным для вас способом. Пользователи смогут активировать ключи в лаунчере.

      В. Можно ли настроить автоматическую аутентификацию пользователей в игре при входе в лаунчер?

      О. Да, такая настройка возможна. Для передачи данных пользователей из Лаунчера Иксолла в игру используется параметр --xsolla-login-token. Чтобы получить данные пользователей, необходимо декодировать значение параметра (см. рецепт).

      В. Можно ли отправить пользователям ссылку на скачивание лаунчера, например, в инструкции по активации игрового ключа?

      О. Ссылка на скачивание лаунчера не входит в инструкцию по активации ключа. Чтобы отправить ссылку отдельно:

      1. Сгенерируйте установочный файл.
      2. Загрузите установочный файл в настройках игровых ключей в Личном кабинете как дистрибутив для DRM Free.
      После приобретения игры пользователи получат ссылку на скачивание дистрибутива.