С помощью Play Games PC SDK вы можете получить доступ к сервисам Google Play для создания и монетизации своей игры на ПК. Продавайте цифровой контент с помощью Play Billing, беспрепятственно входите в систему через Play Games и проверяйте наличие у пользователей действительных прав доступа к вашему приложению с помощью Play Integrity.
Готовы начать?
Предварительные требования
Создайте запись о приложении в Play Console и укажите имя пакета Play.
Скачайте и установите Google Play Games для ПК и войдите в свою учетную запись Google.
Шаг 1 : Добавьте SDK в свой проект.
C++
Скачайте Play Games PC C++ SDK .
Скопируйте папку с заголовками API
includes/в код вашего приложения.Скопируйте распространяемые файлы из каталога
imports/в проект вашего приложения, в зависимости от целевой архитектуры:Для 64-битной системы (x64): скопируйте файлы из
imports/x64/.Для 32-битных систем (x86): скопируйте файлы из
imports/x86/.Свяжите свой проект с файлом
play_pc_sdk.lib, обеспечив доступ к содержимому файлаplay_pc_sdk.dll.
C#
Загрузите Play Games PC C# SDK в формате .unitypackage.
Перетащите этот файл непосредственно в область
Assetsокна Project редактора Unity.Откроется окно
Import Unity Package, оставьте все отмеченные галочками и нажмитеImportSDK установлен, его можно найти в папке
Assets/Plugins/PlayPcSdkManaged
Шаг 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 . Инструкции по подписанию исполняемого файла см. в документации SignTool .
После завершения процесса цифровой подписи вашей игры отправьте информацию о сертификате представителю Google для настройки.
Шаг 4 : Инициализация SDK
Инициализируйте SDK во время запуска игры. Это должно происходить автоматически, без участия пользователя, и рекомендуется проверять успешную инициализацию перед отображением игрового окна. Это обеспечивает наилучшее взаимодействие с пользователем, поскольку ошибки выявляются и устраняются как можно быстрее, а также предотвращает кратковременное появление игрового окна в случаях, когда процесс игры должен завершиться.
Для начала использования SDK вызовите метод GooglePlayInitialize (C++) / GooglePlayInitialization.InitializeAsync (C#) для инициализации API. Это позволит настроить глобальное состояние, установить соединение со средой выполнения SDK и проверить корректность запуска приложения. Перед использованием любого другого API НЕОБХОДИМО вызвать этот метод, и в результате выполнения метода InitializeResult::ok() (C++) / Result.IsOk (C#) должно быть установлено значение true .
C++
// 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.
// ...
}
C#
// SDK Clients
private BillingClient _billingClient;
private IntegrityClient _integrityClient;
// Stored product information
private string _offerToken;
private async void InitializeSDK()
{
// The factory provides the necessary handler for initialization.
var initializationHandler = PlayPcSdkFactory.InitializationHandler;
var result = await GooglePlayInitialization.InitializeAsync(initializationHandler);
if (result.IsOk)
{
// Use the factory to get Unity-compatible instances of the clients
_billingClient = PlayPcSdkFactory.CreateBillingClient();
_integrityClient = PlayPcSdkFactory.CreateIntegrityClient();
// SDK is ready for use
}
else
{
// Handle specific, actionable errors
if (result.Code == InitializationError.ActionRequiredShutdownClientProcess)
{
Log("This game must be launched through the Google Play Games client. Please exit all game processes immediately, GPG will relaunch the game safely.");
Application.Quit();
}
}
}
Если инициализация завершается с ошибкой kActionRequiredShutdownClientProcess (C++) / InitializationError.ActionRequiredShutdownClientProcess (C#), завершите игровой процесс как можно скорее . Среда выполнения SDK попытается помочь пользователю, не требуя от игры никаких дополнительных действий. Например, если у пользователя нет действующей лицензии на игру, Google Play Games предложит ему приобрести копию. При других ошибках также следует завершить игровой процесс, поскольку вы не сможете использовать SDK для выполнения критически важных операций, таких как проверка наличия у пользователя действующей лицензии на вашу игру.
Неудачный ответ может указывать на одно из следующих условий:
Среда выполнения SDK не установлена, не запущена на устройстве или является более старой версией, несовместимой с SDK, интегрированным в вашу игру.
Среда выполнения SDK не смогла проверить подлинность приложения игры. Это может быть связано с некорректным файлом
manifest.xmlили использованием SDK без включения режима разработчика при разработке. Без этого исполняемый файл вашей игры должен быть подписан цифровой подписью с использованием цифрового сертификата, зарегистрированного для имени вашего пакета Play.Запуск игры осуществлялся не через игровой клиент Google Play.
Активный пользователь Google Play Games не владеет лицензией на приложение.
Шаг 5 : (Необязательно) Поддержка нескольких игровых процессов
Выполните эти дополнительные шаги интеграции, если ваша игра использует несколько процессов, и SDK Play Games для ПК используется другим процессом, отличным от того, который запускается Google Play Games на ПК. Например, если Google Play Games на ПК запускает лаунчер вашей игры, а затем ваш лаунчер запускает процесс игры, который будет взаимодействовать с SDK.
Процесс, непосредственно запускаемый Google Play Games для ПК, должен подтвердить успешную инициализацию Play Games PC SDK .
Это обеспечивает наилучшее взаимодействие с пользователем, выявляя ошибки как можно быстрее. Обратите внимание, что дочерний процесс, использующий SDK, должен также выполнять инициализацию в дополнение к непосредственно запущенному процессу.
Для использования Play Games PC SDK в дочернем процессе передайте параметры командной строки запущенному дочернему процессу.
Пример пересылки параметров командной строки:
Processes hierarchy tree: GooglePlayGames.exe └───YourGameLauncher.exe --gpg_args=abc --your_args=123 └───YourGame.exe --gpg_args=abc --your_args=123В этом примере мы видим иерархию процессов, где Google Play Games для ПК (
GooglePlayGames.exe) запускает игру (YourGameLauncher.exe) с некоторыми примерами параметров (--gpg_args=abc --your_args=123). Затем игра запускает дочерний процесс (YourGame.exe), который использует SDK Play Games для ПК. Для этого процесс игры, запущенный Google Play Games для ПК, передаёт дочернему процессу параметры командной строки, которые ему были переданы.Завершите все процессы, когда игра остановится.
Когда пользователь закрывает вашу игру или игра завершается из-за ошибки инициализации SDK, например,
kActionRequiredShutdownClientProcess, закройте все процессы, запущенные вашей игрой. Это гарантирует, что при следующем запуске игры через клиент Google Play Games для ПК новые изменения, такие как переключение на другую активную учетную запись, вступят в силу.
Следующие шаги
Используйте SDK при разработке в вашей IDE:
- Включить режим разработчика
Добавьте в своё приложение функции Google Play для ПК:
- Продавайте цифровые товары с помощью Play Billing.
- Оцените эффективность своего маркетинга с помощью Play Install Referrer.
- Защитите свою игру с помощью Play Integrity для ПК.