Улучшите свою игру с помощью Play Games PC SDK

С Play Games PC SDK вы можете получить доступ к сервисам Google Play для создания и монетизации своей игры на ПК. Продавайте цифровой контент с помощью Play Billing, беспрепятственно входите в систему с помощью Play Games и гарантируйте своим пользователям действительное право на ваше приложение с помощью Play Integrity.

Готовы начать?

Предпосылки

  • Создайте запись приложения в Play Console и зарегистрируйте имя пакета Play.

  • Загрузите и установите Google Play Games для ПК и войдите в свою учетную запись Google.

Шаг 1 : Добавьте SDK в свой проект

  • Загрузите Play Games PC C++ SDK .

  • Скопируйте папку заголовков API includes/ в кодовую базу вашего приложения.

  • Скопируйте распространяемые файлы из imports/ в проект вашего приложения.

    • Свяжите свой проект с play_pc_sdk.lib разрешив доступ к содержимому play_pc_sdk.dll .

Шаг 2 : Добавьте файл манифеста

Прежде чем вы сможете использовать SDK из своей игры, вам нужно будет связать исполняемый файл игры с именем пакета Play, которое вы указали в Play Console. Это делается путем добавления файла manifest.xml в тот же каталог, что и исполняемый файл вашей игры.

Пример содержимого manifest.xml :

<?xml version="1.0" encoding="utf-8"?>
<Manifest version="1">
    <Application>
        <PackageName>com.example.package</PackageName>
    </Application>
</Manifest>

Пример размещения manifest.xml :

C:\Program Files
└───Example Game
    ├───Game.exe
    └───manifest.xml

Шаг 3 : Подпишите свою игру цифровой подписью

Прежде чем ваша игра сможет использовать SDK, исполняемый файл игры должен быть подписан цифровой подписью Authenticode Digital Signature . Инструкции по подписанию исполняемого файла см. в документации по SignTool .

Шаг 4 : Инициализация SDK

Инициализируйте SDK во время последовательности запуска вашей игры. Это должно быть сделано автоматически, не требуя никакого взаимодействия с пользователем, и рекомендуется проверить успешную инициализацию перед рендерингом вашего игрового окна. Это обеспечивает наилучший пользовательский опыт, выявляя и устраняя ошибки как можно скорее и избегая кратковременного появления вашего игрового окна в случаях, когда ваш игровой процесс должен завершиться.

Начните использовать SDK, вызвав GooglePlayInitialize для инициализации API. Это установит глобальное состояние, подключится к среде выполнения SDK и проверит, что приложение было запущено правильно. Это ДОЛЖНО быть вызвано и иметь завершенный обратный вызов продолжения с InitializeResult::ok() равным true прежде чем можно будет использовать любой другой API.

// Initialize the SDK as part of the startup sequence of your application.
auto promise = std::make_shared<std::promise<InitializeResult>>();
GooglePlayInitialize(
  [promise](InitializeResult result) {
    promise->set_value(std::move(result));
  });

auto initialize_result = promise->get_future().get();
if (initialize_result.ok()) {
  // The SDK succeeded with initialization. Continue with the startup sequence
  // of the game.
  // ...
} else if (initialize_result.code() == InitializationError::kActionRequiredShutdownClientProcess) {
  // The SDK failed to initialize and has requested that your game process exit
  // as soon as possible.
  exit(1);
} else {
  // The SDK failed to initialize for an alternative reason. It is still
  // generally recommended that you exit the game process as soon as possible,
  // because it won't be possible to access any APIs in the SDK. Critical
  // operations such as verifying the user owns a valid license to your game
  // won't be possible.
  // ...
}

Если инициализация завершается неудачно с кодом kActionRequiredShutdownClientProcess , выйдите из игрового процесса как можно скорее . Среда выполнения SDK попытается помочь пользователю без дополнительных действий, требуемых вашей игрой. Например, если у пользователя нет действительной лицензии на игру, Google Play Games предложит пользователю приобрести копию. В случае других ошибок все равно рекомендуется как можно скорее выйти из игрового процесса, поскольку он не будет использовать SDK для выполнения критических операций, таких как проверка того, что у пользователя есть действительная лицензия на вашу игру.

Неуспешный ответ может указывать на одно из следующих состояний:

  • Среда выполнения SDK не установлена, не запущена на устройстве или имеет более старую версию, несовместимую с SDK, интегрированным в вашу игру.

  • Среда выполнения SDK не смогла проверить идентификацию приложения игры. Это могло произойти из-за недопустимого manifest.xml или использования SDK без включения режима разработчика при разработке. Без этого исполняемый файл вашей игры должен иметь цифровую подпись с цифровым сертификатом, зарегистрированным на имя вашего пакета Play.

  • Исполняемый файл игры не был запущен через игровой клиент Google Play.

  • Активный пользователь Google Play Games не владеет лицензией на приложение.

Шаг 5 : (Необязательно) Поддержка нескольких игровых процессов

Если ваша игра использует несколько процессов и планирует использовать Play Games PC SDK из процесса, который не запускается напрямую Google Play Games для ПК, потребуются дополнительные шаги по интеграции:

  1. Процесс, напрямую запущенный Google Play Games для ПК, должен проверить успешную инициализацию Play Games PC SDK .

    Это обеспечивает наилучший пользовательский опыт, выявляя ошибки как можно скорее. Обратите внимание, что дочерний процесс, использующий SDK, должен также выполнять инициализацию в дополнение к непосредственно запущенному процессу.

  2. Чтобы использовать Play Games PC SDK в дочернем процессе, перешлите параметры командной строки в порожденный дочерний процесс.

    Пример пересылки параметров командной строки:

    Processes hierarchy tree:
    
    GooglePlayGames.exe
    └───YourGameLauncher.exe --foo=abc --bar=123
        └───YourGame.exe --foo=abc --bar=123
    

    В этом примере мы видим иерархию процессов, где Google Play Games for PC ( GooglePlayGames.exe ) запускает игру ( YourGameLauncher.exe ) с некоторыми примерами параметров ( --foo=abc --bar=123 ). Затем игра порождает дочерний процесс ( YourGame.exe ), который использует Play Games PC SDK. Чтобы разрешить это, игровой процесс, запущенный Google Play Games for PC, пересылает параметры командной строки, которые были ему предоставлены, дочернему процессу.

  3. Завершите все процессы, когда игра перестанет работать.

    Когда пользователь закрывает вашу игру или игра завершается из-за сбоя инициализации SDK, например, kActionRequiredShutdownClientProcess , закройте все процессы, которые породила ваша игра. Это гарантирует, что при следующем запуске вашей игры клиентом Google Play Games для ПК вступят в силу новые изменения, такие как переключение на другую активную учетную запись.

Следующие шаги

Используйте SDK при разработке в вашей IDE:

Добавьте в свое приложение функции Google Play для ПК:

  • Продавайте цифровые товары с помощью Play Billing
  • Измерьте свой маркетинг с помощью Play Install Referrer