С помощью Play Games PC SDK вы получите доступ к сервисам Google Play для разработки и монетизации своей игры на ПК. Продавайте цифровой контент с помощью Play Billing, легко авторизуйтесь через Play Games и гарантируйте своим пользователям законные права на ваше приложение с помощью Play Integrity.
Готовы начать?
Предпосылки
Создайте запись приложения в Play Console и задайте имя пакета Play.
Загрузите и установите Google Play Игры для ПК и войдите в свою учетную запись Google.
Шаг 1 : Добавьте SDK в свой проект
Загрузите Play Games PC C++ SDK .
Скопируйте папку заголовков API
includes/
в кодовую базу вашего приложения.Скопируйте распространяемые файлы из
imports/
в проект вашего приложения.- Свяжите свой проект с
play_pc_sdk.lib
разрешив доступ к содержимомуplay_pc_sdk.dll
.
- Свяжите свой проект с
Шаг 2 : Добавьте файл манифеста
Прежде чем использовать SDK в игре, необходимо связать исполняемый файл игры с именем пакета Play, которое вы указали в консоли Play. Это можно сделать, добавив файл 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 . Инструкции по подписанию исполняемого файла см . в документации по 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 Games.
Активный пользователь в Google Play Играх не владеет лицензией на приложение.
Шаг 5 : (Необязательно) Поддержка нескольких игровых процессов
Если ваша игра использует несколько процессов и планирует использовать Play Games PC SDK из процесса, который не запускается напрямую Google Play Games для ПК, потребуются дополнительные шаги по интеграции:
Процесс, напрямую запускаемый Google Play Games для ПК, должен проверить успешную инициализацию Play Games PC SDK .
Это обеспечивает наилучший пользовательский опыт, поскольку ошибки выявляются как можно быстрее. Обратите внимание, что дочерний процесс, использующий SDK, также должен выполнять инициализацию в дополнение к непосредственно запущенному процессу.
Чтобы использовать Play Games PC SDK в дочернем процессе, перешлите параметры командной строки в порожденный дочерний процесс.
Пример пересылки параметров командной строки:
Processes hierarchy tree: GooglePlayGames.exe └───YourGameLauncher.exe --foo=abc --bar=123 └───YourGame.exe --foo=abc --bar=123
В этом примере мы видим иерархию процессов, в которой Google Play Games для ПК (
GooglePlayGames.exe
) запускает игру (YourGameLauncher.exe
) с некоторыми примерами параметров (--foo=abc --bar=123
). Затем игра порождает дочерний процесс (YourGame.exe
), который использует Play Games PC SDK. Для этого игровой процесс, запущенный Google Play Games для ПК, пересылает дочернему процессу параметры командной строки, переданные ему.Завершите все процессы, когда игра перестанет работать.
Когда пользователь закрывает игру или игра завершается из-за сбоя инициализации SDK, например,
kActionRequiredShutdownClientProcess
, закройте все процессы, запущенные вашей игрой. Это гарантирует, что при следующем запуске игры через клиент Google Play Games для ПК новые изменения, такие как переключение на другую активную учетную запись, вступят в силу.
Следующие шаги
Используйте SDK при разработке в вашей IDE:
- Включить режим разработчика
Добавьте в свое приложение функции Google Play для ПК:
- Продавайте цифровые товары с помощью Play Billing
- Измерьте свой маркетинг с помощью Play Install Referrer