Mit dem Play Games PC SDK können Sie auf Google Play-Dienste zugreifen, um Ihr Spiel für PCs zu entwickeln und zu monetarisieren. Sie können digitale Inhalte über Play Billing verkaufen, sich nahtlos über Play Games anmelden und mit Play Integrity überprüfen, ob Ihre Nutzer eine gültige Berechtigung für Ihre Anwendung haben.
Startbereit?
Vorbereitung
Erstellen Sie einen App-Eintrag in der Play Console und beanspruchen Sie einen Play-Paketnamen.
Laden Sie Google Play Games für PC herunter und installieren Sie die App. Melden Sie sich dann mit Ihrem Google-Konto an.
Schritt 1: SDK zum Projekt hinzufügen
C++
Laden Sie das Play Games PC C++ SDK herunter.
Kopieren Sie den Ordner mit den API-Headern
includes/in den Code Ihrer Anwendung.Kopieren Sie die verteilbaren Dateien aus dem Verzeichnis
imports/in das Projekt Ihrer Anwendung, je nach Zielarchitektur:Für 64-Bit (x64): Kopieren Sie die Dateien aus
imports/x64/.Für 32-Bit-Systeme (x86): Kopieren Sie die Dateien aus
imports/x86/.Verknüpfen Sie Ihr Projekt mit
play_pc_sdk.lib, um auf die Inhalte vonplay_pc_sdk.dllzuzugreifen.
C#
Laden Sie das Play Games PC Unity SDK als Tarball-Datei (.tgz) herunter.
Das SDK wird als Tarball (.tgz) verteilt, der mit dem Unity Package Manager (UPM) kompatibel ist. Informationen zum Importieren des Pakets finden Sie unter UPM-Paket aus einer lokalen TAR-Datei installieren.
Eine detaillierte Dokumentation, Einrichtungsanleitung und weitere Informationen finden Sie auf der Seite Play PC Unity Package.
Schritt 2: Manifestdatei hinzufügen
Bevor Sie das SDK in Ihrem Spiel verwenden können, müssen Sie die ausführbare Datei Ihres Spiels mit dem Play-Paketnamen verknüpfen, den Sie in der Play Console beansprucht haben. Dazu fügen Sie eine manifest.xml-Datei in dasselbe Verzeichnis wie die ausführbare Datei Ihres Spiels ein.
Beispiel für manifest.xml-Inhalte:
<?xml version="1.0" encoding="utf-8"?>
<Manifest version="1">
<Application>
<PackageName>com.example.package</PackageName>
</Application>
</Manifest>
Beispiel für die Platzierung von manifest.xml:
C:\Program Files
└───Example Game
├───Game.exe
└───manifest.xml
Schritt 3: Spiel digital signieren
Bevor Ihr Spiel das SDK verwenden kann, muss die ausführbare Datei des Spiels mit einer digitalen Authenticode-Signatur digital signiert werden. Eine Anleitung zum Signieren einer ausführbaren Datei finden Sie in der Dokumentation zu SignTool .
Wenn Sie das digitale Signieren Ihres Spiels abgeschlossen haben, senden Sie die Zertifikatsinformationen zur Konfiguration an Ihren Google-Ansprechpartner.
Schritt 4: SDK initialisieren
Initialisieren Sie das SDK während der Startsequenz Ihres Spiels. Dies sollte automatisch ohne Nutzerinteraktion erfolgen. Es wird empfohlen, eine erfolgreiche Initialisierung zu bestätigen, bevor das Spielfenster gerendert wird. So wird für eine optimale Nutzerfreundlichkeit gesorgt, da Fehler so schnell wie möglich erkannt und behoben werden. Außerdem wird verhindert, dass das Spielfenster kurzzeitig angezeigt wird, wenn der Spielprozess beendet werden muss.
Rufen Sie GooglePlayInitialize (C++) / GooglePlayInitialization.InitializeAsync (C#) auf, um die API zu initialisieren. Dadurch wird der globale Status eingerichtet, eine Verbindung zur SDK-Laufzeit hergestellt und überprüft, ob die Anwendung korrekt gestartet wurde. Diese Funktion MUSS aufgerufen werden und der Fortsetzungs-Callback muss mit InitializeResult::ok() (C++) / Result.IsOk (C#) gleich true abgeschlossen werden, bevor eine andere API verwendet werden kann.
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();
}
}
}
Wenn die Initialisierung mit dem Code kActionRequiredShutdownClientProcess(C++) / InitializationError.ActionRequiredShutdownClientProcess (C#) fehlschlägt, beenden Sie den Spielprozess so schnell wie möglich. Die Laufzeit des SDK versucht, dem Nutzer zu helfen, ohne dass Ihr Spiel zusätzliche Maßnahmen ergreifen muss. Wenn der Nutzer beispielsweise keine gültige Lizenz für das Spiel hat, wird er in Google Play Games aufgefordert, eine Kopie zu kaufen. Bei anderen Fehlern sollten Sie den Spielprozess ebenfalls beenden, da Sie das SDK nicht für wichtige Vorgänge wie die Bestätigung verwenden können, dass der Nutzer eine gültige Lizenz für Ihr Spiel besitzt.
Eine nicht erfolgreiche Antwort kann auf eine der folgenden Bedingungen hinweisen:
Die SDK-Laufzeit ist nicht installiert, wird nicht auf dem Gerät ausgeführt oder ist eine ältere Version, die nicht mit dem in Ihr Spiel integrierten SDK kompatibel ist.
Die SDK-Laufzeit konnte die Anwendungsidentität des Spiels nicht bestätigen. Das kann an einem ungültigen
manifest.xmloder an der Verwendung des SDK ohne Aktivierung des Entwicklermodus während der Entwicklung liegen. Andernfalls muss die ausführbare Datei Ihres Spiels mit dem digitalen Zertifikat digital signiert werden, das für Ihren Google Play-Paketnamen registriert ist.Die ausführbare Datei des Spiels wurde nicht über den Google Play Games-Client gestartet.
Der aktive Nutzer in Google Play Games hat keine Lizenz für die Anwendung.
Schritt 5 (optional): Mehrere Spielprozesse unterstützen
Führen Sie diese zusätzlichen Integrationsschritte aus, wenn Ihr Spiel mehrere Prozesse verwendet und das Play Games PC SDK von einem anderen Prozess als dem verwendet wird, der von Google Play Games auf dem PC gestartet wird. Das ist beispielsweise der Fall, wenn Google Play Games auf dem PC den Launcher Ihres Spiels startet und dieser dann den Spielprozess startet, der mit dem SDK interagiert.
Der Prozess, der direkt von Google Play Games für PC gestartet wird, muss eine erfolgreiche Initialisierung des Play Games PC SDK bestätigen.
So wird eine optimale Nutzererfahrung gewährleistet, da Fehler so schnell wie möglich angezeigt werden. Hinweis: Auch untergeordnete Prozesse, die das SDK verwenden, müssen initialisiert werden.
Wenn Sie das Play Games PC SDK in einem untergeordneten Prozess verwenden möchten, leiten Sie die Befehlszeilenparameter an den erstellten untergeordneten Prozess weiter.
Beispiel für die Weiterleitung von Befehlszeilenparametern:
Processes hierarchy tree: GooglePlayGames.exe └───YourGameLauncher.exe --gpg_args=abc --your_args=123 └───YourGame.exe --gpg_args=abc --your_args=123In diesem Beispiel sehen wir eine Prozesshierarchie, in der Google Play Games für PC (
GooglePlayGames.exe) das Spiel (YourGameLauncher.exe) mit einigen Beispielparametern (--gpg_args=abc --your_args=123) startet. Das Spiel startet dann einen untergeordneten Prozess (YourGame.exe), der das Play Games PC SDK verwendet. Dazu leitet der von Google Play Games für PC gestartete Spielprozess die ihm zugewiesenen Befehlszeilenparameter an den untergeordneten Prozess weiter.Beenden Sie alle Prozesse, wenn das Spiel nicht mehr ausgeführt wird.
Wenn ein Nutzer Ihr Spiel schließt oder das Spiel aufgrund eines SDK-Initialisierungsfehlers beendet wird, z. B.
kActionRequiredShutdownClientProcess, schließen Sie alle Prozesse, die von Ihrem Spiel gestartet wurden. So wird sichergestellt, dass beim nächsten Start Ihres Spiels über den Google Play Games für PC-Client neue Änderungen wie das Wechseln zu einem anderen aktiven Konto wirksam werden.
Nächste Schritte
So verwenden Sie das SDK während der Entwicklung in Ihrer IDE:
- Entwicklermodus aktivieren
So fügen Sie Ihrer App Google Play-PC-Funktionen hinzu:
- Digitale Waren mit Play Billing verkaufen
- Marketing mit Play Install Referrer analysieren
- Schutz deines Spiels mit Play Integrity für PC